Merge remote-tracking branch 'origin/develop' into brad/webrtc-voice-develop
commit
6393e88ca4
|
|
@ -1,12 +1,6 @@
|
|||
name: Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_run:
|
||||
type: boolean
|
||||
description: Do a release of this build
|
||||
default: false
|
||||
pull_request:
|
||||
push:
|
||||
branches: ["main", "release/*", "project/*"]
|
||||
|
|
@ -231,6 +225,9 @@ jobs:
|
|||
elif [[ "$prefix" == "release" || "$prefix" == "main" ]];
|
||||
then
|
||||
export viewer_channel="Second Life Release"
|
||||
elif [[ "$branch" == "develop" ]];
|
||||
then
|
||||
export viewer_channel="Second Life Develop"
|
||||
else
|
||||
export viewer_channel="Second Life Test"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
name: Tag a Build
|
||||
|
||||
on:
|
||||
# schedule event triggers always run on the default branch
|
||||
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
|
||||
schedule:
|
||||
# run "nightly" builds on default branch every mon/wed/fri
|
||||
- cron: "21 2 * * 2,4,6" # 2:21am UTC tues/thurs/sat == 7:21pm PDT mon/wed/fri -- see https://crontab.guru/#21_01_*_*_2,4,6
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
channel:
|
||||
description: "Channel to configure the build"
|
||||
required: true
|
||||
type: choice
|
||||
default: "Test"
|
||||
options:
|
||||
- "Test"
|
||||
- "Develop"
|
||||
- "Project"
|
||||
- "Release"
|
||||
project:
|
||||
description: "Project Name (used for channel name in project builds, and tag name for all builds)"
|
||||
default: "hippo"
|
||||
# TODO - add an input for selecting another sha to build other than head of branch
|
||||
|
||||
jobs:
|
||||
tag-release:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GITHUB_TAG_TOKEN: ${{ secrets.GITHUB_TAG_TOKEN }}
|
||||
steps:
|
||||
- name: Setup Env Vars
|
||||
run: |
|
||||
CHANNEL="${{ inputs.channel }}"
|
||||
echo VIEWER_CHANNEL="Second_Life_${CHANNEL:-Develop}" >> ${GITHUB_ENV}
|
||||
echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV}
|
||||
- name: Update Tag
|
||||
uses: actions/github-script@v7.0.1
|
||||
if: env.GITHUB_TAG_TOKEN
|
||||
with:
|
||||
github-token: ${{ env.GITHUB_TAG_TOKEN }}
|
||||
script: |
|
||||
github.rest.git.createRef(
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
ref: "refs/tags/${{ env.VIEWER_CHANNEL }}#${{ env.NIGHTLY_DATE }}",
|
||||
sha: context.sha
|
||||
)
|
||||
|
|
@ -876,15 +876,15 @@ std::string LLDir::getTempFilename() const
|
|||
}
|
||||
|
||||
// static
|
||||
std::string LLDir::getScrubbedFileName(const std::string uncleanFileName)
|
||||
std::string LLDir::getScrubbedFileName(std::string_view uncleanFileName)
|
||||
{
|
||||
std::string name(uncleanFileName);
|
||||
const std::string illegalChars(getForbiddenFileChars());
|
||||
// replace any illegal file chars with and underscore '_'
|
||||
for( unsigned int i = 0; i < illegalChars.length(); i++ )
|
||||
for (const char& ch : illegalChars)
|
||||
{
|
||||
std::string::size_type j = -1;
|
||||
while((j = name.find(illegalChars[i])) > std::string::npos)
|
||||
std::string::size_type j{ 0 };
|
||||
while ((j = name.find(ch, j)) != std::string::npos)
|
||||
{
|
||||
name[j] = '_';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ class LLDir
|
|||
static std::string getDumpLogsDirPath(const std::string &file_name = "");
|
||||
|
||||
// For producing safe download file names from potentially unsafe ones
|
||||
static std::string getScrubbedFileName(const std::string uncleanFileName);
|
||||
static std::string getScrubbedFileName(std::string_view uncleanFileName);
|
||||
static std::string getForbiddenFileChars();
|
||||
void setDumpDir( const std::string& path );
|
||||
|
||||
|
|
|
|||
|
|
@ -1099,7 +1099,8 @@ S32 LLGLSLShader::bindTexture(S32 uniform, LLTexture* texture, LLTexUnit::eTextu
|
|||
|
||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform out of range: " << uniform << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << uniform << LL_ENDL;
|
||||
llassert(false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
@ -1120,6 +1121,8 @@ S32 LLGLSLShader::bindTexture(S32 uniform, LLRenderTarget* texture, bool depth,
|
|||
|
||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
||||
{
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << uniform << LL_ENDL;
|
||||
llassert(false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
@ -1167,7 +1170,8 @@ S32 LLGLSLShader::unbindTexture(S32 uniform, LLTexUnit::eTextureType mode)
|
|||
|
||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform out of range: " << uniform << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << uniform << LL_ENDL;
|
||||
llassert(false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
@ -1192,7 +1196,8 @@ S32 LLGLSLShader::enableTexture(S32 uniform, LLTexUnit::eTextureType mode, LLTex
|
|||
|
||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform out of range: " << uniform << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << uniform << LL_ENDL;
|
||||
llassert(false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
@ -1213,7 +1218,8 @@ S32 LLGLSLShader::disableTexture(S32 uniform, LLTexUnit::eTextureType mode, LLTe
|
|||
|
||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform out of range: " << uniform << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << uniform << LL_ENDL;
|
||||
llassert(false);
|
||||
return -1;
|
||||
}
|
||||
S32 index = mTexture[uniform];
|
||||
|
|
@ -1244,7 +1250,8 @@ void LLGLSLShader::uniform1i(U32 index, GLint x)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1269,7 +1276,8 @@ void LLGLSLShader::uniform1f(U32 index, GLfloat x)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1304,7 +1312,8 @@ void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1330,7 +1339,8 @@ void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1356,7 +1366,8 @@ void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1382,7 +1393,8 @@ void LLGLSLShader::uniform1iv(U32 index, U32 count, const GLint* v)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1408,7 +1420,8 @@ void LLGLSLShader::uniform4iv(U32 index, U32 count, const GLint* v)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1435,7 +1448,8 @@ void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1461,7 +1475,8 @@ void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1487,7 +1502,8 @@ void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1513,7 +1529,8 @@ void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v)
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1540,7 +1557,8 @@ void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, c
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1560,7 +1578,8 @@ void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, c
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1580,7 +1599,8 @@ void LLGLSLShader::uniformMatrix3x4fv(U32 index, U32 count, GLboolean transpose,
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1600,7 +1620,8 @@ void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, c
|
|||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
LL_SHADER_UNIFORM_ERRS() << "Uniform index out of bounds." << LL_ENDL;
|
||||
LL_WARNS_ONCE("Shader") << "Uniform index out of bounds. Size: " << (S32)mUniform.size() << " index: " << index << LL_ENDL;
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -548,6 +548,5 @@ glh::matrix4f gl_perspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloa
|
|||
glh::matrix4f gl_lookat(LLVector3 eye, LLVector3 center, LLVector3 up);
|
||||
|
||||
#define LL_SHADER_LOADING_WARNS(...) LL_WARNS()
|
||||
#define LL_SHADER_UNIFORM_ERRS(...) LL_ERRS("Shader")
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -409,7 +409,6 @@ LLWindow* LLWindowManager::createWindow(
|
|||
bool ignore_pixel_depth,
|
||||
U32 fsaa_samples,
|
||||
U32 max_cores,
|
||||
U32 max_vram,
|
||||
F32 max_gl_version)
|
||||
{
|
||||
LLWindow* new_window;
|
||||
|
|
@ -427,11 +426,11 @@ LLWindow* LLWindowManager::createWindow(
|
|||
#elif LL_WINDOWS
|
||||
new_window = new LLWindowWin32(callbacks,
|
||||
title, name, x, y, width, height, flags,
|
||||
fullscreen, clearBg, enable_vsync, use_gl, ignore_pixel_depth, fsaa_samples, max_cores, max_vram, max_gl_version);
|
||||
fullscreen, clearBg, enable_vsync, use_gl, ignore_pixel_depth, fsaa_samples, max_cores, max_gl_version);
|
||||
#elif LL_DARWIN
|
||||
new_window = new LLWindowMacOSX(callbacks,
|
||||
title, name, x, y, width, height, flags,
|
||||
fullscreen, clearBg, enable_vsync, use_gl, ignore_pixel_depth, fsaa_samples, max_vram);
|
||||
fullscreen, clearBg, enable_vsync, use_gl, ignore_pixel_depth, fsaa_samples);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -164,8 +164,6 @@ public:
|
|||
virtual F32 getPixelAspectRatio() = 0;
|
||||
virtual void setNativeAspectRatio(F32 aspect) = 0;
|
||||
|
||||
virtual void setMaxVRAMMegabytes(U32 max_vram) = 0;
|
||||
|
||||
virtual void beforeDialog() {}; // prepare to put up an OS dialog (if special measures are required, such as in fullscreen mode)
|
||||
virtual void afterDialog() {}; // undo whatever was done in beforeDialog()
|
||||
|
||||
|
|
@ -286,14 +284,14 @@ protected:
|
|||
|
||||
// Platform-neutral for accessing the platform specific message box
|
||||
S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type);
|
||||
const U32 OSMB_OK = 0;
|
||||
const U32 OSMB_OKCANCEL = 1;
|
||||
const U32 OSMB_YESNO = 2;
|
||||
constexpr U32 OSMB_OK = 0;
|
||||
constexpr U32 OSMB_OKCANCEL = 1;
|
||||
constexpr U32 OSMB_YESNO = 2;
|
||||
|
||||
const S32 OSBTN_YES = 0;
|
||||
const S32 OSBTN_NO = 1;
|
||||
const S32 OSBTN_OK = 2;
|
||||
const S32 OSBTN_CANCEL = 3;
|
||||
constexpr S32 OSBTN_YES = 0;
|
||||
constexpr S32 OSBTN_NO = 1;
|
||||
constexpr S32 OSBTN_OK = 2;
|
||||
constexpr S32 OSBTN_CANCEL = 3;
|
||||
|
||||
//
|
||||
// LLWindowManager
|
||||
|
|
@ -313,7 +311,6 @@ public:
|
|||
bool ignore_pixel_depth = false,
|
||||
U32 fsaa_samples = 0,
|
||||
U32 max_cores = 0,
|
||||
U32 max_vram = 0,
|
||||
F32 max_gl_version = 4.6f);
|
||||
static bool destroyWindow(LLWindow* window);
|
||||
static bool isWindowValid(LLWindow *window);
|
||||
|
|
@ -329,6 +326,4 @@ extern const S32 gURLProtocolWhitelistCount;
|
|||
extern const std::string gURLProtocolWhitelist[];
|
||||
//extern const std::string gURLProtocolWhitelistHandler[];
|
||||
|
||||
void simpleEscapeString ( std::string& stringIn );
|
||||
|
||||
#endif // _LL_window_h_
|
||||
|
|
|
|||
|
|
@ -101,8 +101,6 @@ public:
|
|||
/*virtual*/ F32 getPixelAspectRatio() override { return 1.0f; }
|
||||
/*virtual*/ void setNativeAspectRatio(F32 ratio) override {}
|
||||
|
||||
void setMaxVRAMMegabytes(U32 max_vram) override {}
|
||||
|
||||
/*virtual*/ void *getPlatformWindow() override { return 0; }
|
||||
/*virtual*/ void bringToFront() override {}
|
||||
|
||||
|
|
|
|||
|
|
@ -122,8 +122,7 @@ LLWindowMacOSX::LLWindowMacOSX(LLWindowCallbacks* callbacks,
|
|||
bool fullscreen, bool clearBg,
|
||||
bool enable_vsync, bool use_gl,
|
||||
bool ignore_pixel_depth,
|
||||
U32 fsaa_samples,
|
||||
U32 max_vram)
|
||||
U32 fsaa_samples)
|
||||
: LLWindow(NULL, fullscreen, flags)
|
||||
{
|
||||
// *HACK: During window construction we get lots of OS events for window
|
||||
|
|
|
|||
|
|
@ -100,8 +100,6 @@ public:
|
|||
F32 getPixelAspectRatio() override;
|
||||
void setNativeAspectRatio(F32 ratio) override { mOverrideAspectRatio = ratio; }
|
||||
|
||||
virtual void setMaxVRAMMegabytes(U32 max_vram) override {}
|
||||
|
||||
void beforeDialog() override;
|
||||
void afterDialog() override;
|
||||
|
||||
|
|
@ -154,8 +152,7 @@ protected:
|
|||
const std::string& title, const std::string& name, int x, int y, int width, int height, U32 flags,
|
||||
bool fullscreen, bool clearBg, bool enable_vsync, bool use_gl,
|
||||
bool ignore_pixel_depth,
|
||||
U32 fsaa_samples,
|
||||
U32 max_vram);
|
||||
U32 fsaa_samples);
|
||||
~LLWindowMacOSX();
|
||||
|
||||
void initCursors();
|
||||
|
|
|
|||
|
|
@ -404,7 +404,6 @@ struct LLWindowWin32::LLWindowWin32Thread : public LL::ThreadPool
|
|||
|
||||
using FuncType = std::function<void()>;
|
||||
// call GetMessage() and pull enqueue messages for later processing
|
||||
void gatherInput();
|
||||
HWND mWindowHandleThrd = NULL;
|
||||
HDC mhDCThrd = 0;
|
||||
|
||||
|
|
@ -412,8 +411,6 @@ struct LLWindowWin32::LLWindowWin32Thread : public LL::ThreadPool
|
|||
// until after some graphics setup. See SL-20177. -Cosmic,2023-09-18
|
||||
bool mGLReady = false;
|
||||
bool mGotGLBuffer = false;
|
||||
|
||||
U32 mMaxVRAM = 0; // maximum amount of vram to allow in the "budget", or 0 for no maximum (see updateVRAMUsage)
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -425,7 +422,6 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
|
|||
bool ignore_pixel_depth,
|
||||
U32 fsaa_samples,
|
||||
U32 max_cores,
|
||||
U32 max_vram,
|
||||
F32 max_gl_version)
|
||||
:
|
||||
LLWindow(callbacks, fullscreen, flags),
|
||||
|
|
@ -434,7 +430,6 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
|
|||
{
|
||||
sMainThreadId = LLThread::currentID();
|
||||
mWindowThread = new LLWindowWin32Thread();
|
||||
mWindowThread->mMaxVRAM = max_vram;
|
||||
|
||||
//MAINT-516 -- force a load of opengl32.dll just in case windows went sideways
|
||||
LoadLibrary(L"opengl32.dll");
|
||||
|
|
@ -4545,15 +4540,6 @@ std::vector<std::string> LLWindowWin32::getDynamicFallbackFontList()
|
|||
// Fonts previously in getFontListSans() have moved to fonts.xml.
|
||||
return std::vector<std::string>();
|
||||
}
|
||||
|
||||
void LLWindowWin32::setMaxVRAMMegabytes(U32 max_vram)
|
||||
{
|
||||
if (mWindowThread)
|
||||
{
|
||||
mWindowThread->mMaxVRAM = max_vram;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // LL_WINDOWS
|
||||
|
||||
inline LLWindowWin32::LLWindowWin32Thread::LLWindowWin32Thread()
|
||||
|
|
|
|||
|
|
@ -108,8 +108,6 @@ public:
|
|||
/*virtual*/ F32 getPixelAspectRatio();
|
||||
/*virtual*/ void setNativeAspectRatio(F32 ratio) { mOverrideAspectRatio = ratio; }
|
||||
|
||||
/*virtual*/ void setMaxVRAMMegabytes(U32 max_vram) override;
|
||||
|
||||
/*virtual*/ bool dialogColorPicker(F32 *r, F32 *g, F32 *b );
|
||||
|
||||
/*virtual*/ void *getPlatformWindow();
|
||||
|
|
@ -142,11 +140,10 @@ protected:
|
|||
LLWindowWin32(LLWindowCallbacks* callbacks,
|
||||
const std::string& title, const std::string& name, int x, int y, int width, int height, U32 flags,
|
||||
bool fullscreen, bool clearBg, bool enable_vsync, bool use_gl,
|
||||
bool ignore_pixel_depth, U32 fsaa_samples, U32 max_cores, U32 max_vram, F32 max_gl_version);
|
||||
bool ignore_pixel_depth, U32 fsaa_samples, U32 max_cores, F32 max_gl_version);
|
||||
~LLWindowWin32();
|
||||
|
||||
void initCursors();
|
||||
void initInputDevices();
|
||||
HCURSOR loadColorCursor(LPCTSTR name);
|
||||
bool isValid();
|
||||
void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size);
|
||||
|
|
@ -163,7 +160,6 @@ protected:
|
|||
|
||||
bool shouldPostQuit() { return mPostQuit; }
|
||||
|
||||
void fillCompositionForm(const LLRect& bounds, COMPOSITIONFORM *form);
|
||||
void fillCandidateForm(const LLCoordGL& caret, const LLRect& bounds, CANDIDATEFORM *form);
|
||||
void fillCharPosition(const LLCoordGL& caret, const LLRect& bounds, const LLRect& control, IMECHARPOSITION *char_position);
|
||||
void fillCompositionLogfont(LOGFONT *logfont);
|
||||
|
|
@ -178,10 +174,8 @@ protected:
|
|||
//
|
||||
|
||||
bool getClientRectInScreenSpace(RECT* rectp);
|
||||
void updateJoystick( );
|
||||
|
||||
static LRESULT CALLBACK mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_param, LPARAM l_param);
|
||||
static bool CALLBACK enumChildWindows(HWND h_wnd, LPARAM l_param);
|
||||
|
||||
|
||||
//
|
||||
|
|
@ -288,8 +282,6 @@ private:
|
|||
extern LLW32MsgCallback gAsyncMsgCallback;
|
||||
extern LPWSTR gIconResource;
|
||||
|
||||
static void handleMessage( const MSG& msg );
|
||||
|
||||
S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 type);
|
||||
|
||||
#endif //LL_LLWINDOWWIN32_H
|
||||
|
|
|
|||
|
|
@ -756,9 +756,12 @@ void LLRenderPass::pushGLTFBatch(LLDrawInfo& params)
|
|||
{
|
||||
auto& mat = params.mGLTFMaterial;
|
||||
|
||||
mat->bind(params.mTexture);
|
||||
if (mat.notNull())
|
||||
{
|
||||
mat->bind(params.mTexture);
|
||||
}
|
||||
|
||||
LLGLDisable cull_face(mat->mDoubleSided ? GL_CULL_FACE : 0);
|
||||
LLGLDisable cull_face(mat.notNull() && mat->mDoubleSided ? GL_CULL_FACE : 0);
|
||||
|
||||
setup_texture_matrix(params);
|
||||
|
||||
|
|
|
|||
|
|
@ -251,32 +251,27 @@ bool LLReflectionMap::getBox(LLMatrix4& box)
|
|||
if (mViewerObject)
|
||||
{
|
||||
LLVolume* volume = mViewerObject->getVolume();
|
||||
if (volume)
|
||||
if (volume && mViewerObject->getReflectionProbeIsBox())
|
||||
{
|
||||
LLVOVolume* vobjp = (LLVOVolume*)mViewerObject;
|
||||
|
||||
if (vobjp->getReflectionProbeIsBox())
|
||||
glh::matrix4f mv(gGLModelView);
|
||||
glh::matrix4f scale;
|
||||
LLVector3 s = mViewerObject->getScale().scaledVec(LLVector3(0.5f, 0.5f, 0.5f));
|
||||
mRadius = s.magVec();
|
||||
scale.set_scale(glh::vec3f(s.mV));
|
||||
if (mViewerObject->mDrawable != nullptr)
|
||||
{
|
||||
glh::matrix4f mv(gGLModelView);
|
||||
glh::matrix4f scale;
|
||||
LLVector3 s = vobjp->getScale().scaledVec(LLVector3(0.5f, 0.5f, 0.5f));
|
||||
mRadius = s.magVec();
|
||||
scale.set_scale(glh::vec3f(s.mV));
|
||||
if (vobjp->mDrawable != nullptr)
|
||||
{
|
||||
// object to agent space (no scale)
|
||||
glh::matrix4f rm((F32*)vobjp->mDrawable->getWorldMatrix().mMatrix);
|
||||
// object to agent space (no scale)
|
||||
glh::matrix4f rm((F32*)mViewerObject->mDrawable->getWorldMatrix().mMatrix);
|
||||
|
||||
// construct object to camera space (with scale)
|
||||
mv = mv * rm * scale;
|
||||
// construct object to camera space (with scale)
|
||||
mv = mv * rm * scale;
|
||||
|
||||
// inverse is camera space to object unit cube
|
||||
mv = mv.inverse();
|
||||
// inverse is camera space to object unit cube
|
||||
mv = mv.inverse();
|
||||
|
||||
box = LLMatrix4(mv.m);
|
||||
box = LLMatrix4(mv.m);
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ LLVersionInfo::ViewerMaturity LLVersionInfo::getViewerMaturity()
|
|||
std::string channel = getChannel();
|
||||
|
||||
static const boost::regex is_test_channel("\\bTest\\b");
|
||||
static const boost::regex is_beta_channel("\\bBeta\\b");
|
||||
static const boost::regex is_beta_channel("\\b(Beta|Develop)\\b"); // Develop is an alias for Beta
|
||||
static const boost::regex is_project_channel("\\bProject\\b");
|
||||
static const boost::regex is_release_channel("\\bRelease\\b");
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,13 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
|
|||
mZoomSubregion = 1;
|
||||
mAverageSpeed = 0.f;
|
||||
mAverageAngularSpeed = 0.f;
|
||||
gSavedSettings.getControl("CameraAngle")->getCommitSignal()->connect(boost::bind(&LLViewerCamera::updateCameraAngle, this, _2));
|
||||
|
||||
mCameraAngleChangedSignal = gSavedSettings.getControl("CameraAngle")->getCommitSignal()->connect(boost::bind(&LLViewerCamera::updateCameraAngle, this, _2));
|
||||
}
|
||||
|
||||
LLViewerCamera::~LLViewerCamera()
|
||||
{
|
||||
mCameraAngleChangedSignal.disconnect();
|
||||
}
|
||||
|
||||
void LLViewerCamera::updateCameraLocation(const LLVector3 ¢er, const LLVector3 &up_direction, const LLVector3 &point_of_interest)
|
||||
|
|
@ -895,10 +901,8 @@ bool LLViewerCamera::isDefaultFOVChanged()
|
|||
return false;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)
|
||||
void LLViewerCamera::updateCameraAngle(const LLSD& value)
|
||||
{
|
||||
LLViewerCamera* self=(LLViewerCamera*)user_data;
|
||||
self->setDefaultFOV(value.asReal());
|
||||
setDefaultFOV(value.asReal());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ class alignas(16) LLViewerCamera : public LLCamera, public LLSimpleton<LLViewerC
|
|||
LL_ALIGN_NEW
|
||||
public:
|
||||
LLViewerCamera();
|
||||
~LLViewerCamera();
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
|
@ -65,7 +66,7 @@ public:
|
|||
const LLVector3 &point_of_interest);
|
||||
|
||||
static void updateFrustumPlanes(LLCamera& camera, bool ortho = false, bool zflip = false, bool no_hacks = false);
|
||||
static void updateCameraAngle(void* user_data, const LLSD& value);
|
||||
void updateCameraAngle(const LLSD& value);
|
||||
void setPerspective(bool for_selection, S32 x, S32 y_from_bot, S32 width, S32 height, bool limit_select_distance, F32 z_near = 0, F32 z_far = 0);
|
||||
|
||||
const LLMatrix4 &getProjection() const;
|
||||
|
|
@ -125,6 +126,8 @@ protected:
|
|||
F32 mZoomFactor;
|
||||
S16 mZoomSubregion;
|
||||
|
||||
boost::signals2::connection mCameraAngleChangedSignal;
|
||||
|
||||
public:
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -266,6 +266,7 @@ public:
|
|||
virtual bool isRiggedMesh() const { return false; }
|
||||
virtual bool hasLightTexture() const { return false; }
|
||||
virtual bool isReflectionProbe() const { return false; }
|
||||
virtual bool getReflectionProbeIsBox() const { return false; }
|
||||
|
||||
// This method returns true if the object is over land owned by
|
||||
// the agent, one of its groups, or it encroaches and
|
||||
|
|
|
|||
|
|
@ -2854,7 +2854,11 @@ bool LLViewerRegion::probeCache(U32 local_id, U32 crc, U32 flags, U8 &cache_miss
|
|||
|
||||
if(entry->isState(LLVOCacheEntry::ACTIVE))
|
||||
{
|
||||
((LLDrawable*)entry->getEntry()->getDrawable())->getVObj()->loadFlags(flags);
|
||||
LLDrawable* drawable = (LLDrawable*)entry->getEntry()->getDrawable();
|
||||
if (drawable && drawable->getVObj())
|
||||
{
|
||||
drawable->getVObj()->loadFlags(flags);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1867,15 +1867,6 @@ LLViewerWindow::LLViewerWindow(const Params& p)
|
|||
U32 max_core_count = gSavedSettings.getU32("EmulateCoreCount");
|
||||
F32 max_gl_version = gSavedSettings.getF32("RenderMaxOpenGLVersion");
|
||||
|
||||
LLControlVariable* vram_control = gSavedSettings.getControl("RenderMaxVRAMBudget");
|
||||
U32 max_vram = vram_control->getValue().asInteger();
|
||||
mMaxVRAMControlConnection = vram_control->getSignal()->connect(
|
||||
[this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
|
||||
{
|
||||
if (mWindow) mWindow->setMaxVRAMMegabytes(new_val.asInteger());
|
||||
});
|
||||
|
||||
|
||||
mWindow = LLWindowManager::createWindow(this,
|
||||
p.title, p.name, p.x, p.y, p.width, p.height, 0,
|
||||
p.fullscreen,
|
||||
|
|
@ -1885,7 +1876,6 @@ LLViewerWindow::LLViewerWindow(const Params& p)
|
|||
p.ignore_pixel_depth,
|
||||
0,
|
||||
max_core_count,
|
||||
max_vram,
|
||||
max_gl_version); //don't use window level anti-aliasing
|
||||
|
||||
if (NULL == mWindow)
|
||||
|
|
@ -2436,8 +2426,6 @@ LLViewerWindow::~LLViewerWindow()
|
|||
LLViewerShaderMgr::releaseInstance();
|
||||
LLViewerShaderMgr::sInitialized = false;
|
||||
}
|
||||
|
||||
mMaxVRAMControlConnection.disconnect();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -550,8 +550,6 @@ private:
|
|||
// Object temporarily hovered over while dragging
|
||||
LLPointer<LLViewerObject> mDragHoveredObject;
|
||||
|
||||
boost::signals2::connection mMaxVRAMControlConnection;
|
||||
|
||||
static LLTrace::SampleStatHandle<> sMouseVelocityStat;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ public:
|
|||
bool isReflectionProbe() const override;
|
||||
F32 getReflectionProbeAmbiance() const;
|
||||
F32 getReflectionProbeNearClip() const;
|
||||
bool getReflectionProbeIsBox() const;
|
||||
bool getReflectionProbeIsBox() const override;
|
||||
bool getReflectionProbeIsDynamic() const;
|
||||
bool getReflectionProbeIsMirror() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -10229,7 +10229,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar, bool preview_avatar, bool
|
|||
result.clear();
|
||||
grabReferences(result);
|
||||
|
||||
if (!avatar || !avatar->mDrawable)
|
||||
if (!avatar || avatar->isDead() || !avatar->mDrawable)
|
||||
{
|
||||
LL_WARNS_ONCE("AvatarRenderPipeline") << "Avatar is " << (avatar ? "not drawable" : "null") << LL_ENDL;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
height="400"
|
||||
height="411"
|
||||
layout="topleft"
|
||||
name="prefs_graphics_advanced"
|
||||
help_topic="Preferences_Graphics_Advanced"
|
||||
|
|
@ -545,7 +545,7 @@
|
|||
</text>
|
||||
<view_border
|
||||
bevel_style="in"
|
||||
height="322"
|
||||
height="357"
|
||||
layout="topleft"
|
||||
left="385"
|
||||
name="vert_border"
|
||||
|
|
@ -889,7 +889,7 @@
|
|||
layout="topleft"
|
||||
left="13"
|
||||
name="horiz_border"
|
||||
top="338"
|
||||
top="373"
|
||||
top_delta="5"
|
||||
width="774"/>
|
||||
<button
|
||||
|
|
@ -899,7 +899,7 @@
|
|||
layout="topleft"
|
||||
left="20"
|
||||
name="Defaults"
|
||||
top_delta="20"
|
||||
top_delta="7"
|
||||
width="210">
|
||||
<button.commit_callback
|
||||
function="Pref.HardwareDefaults" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue