Merge remote-tracking branch 'origin/develop' into brad/webrtc-voice-develop
commit
6393e88ca4
|
|
@ -1,12 +1,6 @@
|
||||||
name: Build
|
name: Build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
release_run:
|
|
||||||
type: boolean
|
|
||||||
description: Do a release of this build
|
|
||||||
default: false
|
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
branches: ["main", "release/*", "project/*"]
|
branches: ["main", "release/*", "project/*"]
|
||||||
|
|
@ -231,6 +225,9 @@ jobs:
|
||||||
elif [[ "$prefix" == "release" || "$prefix" == "main" ]];
|
elif [[ "$prefix" == "release" || "$prefix" == "main" ]];
|
||||||
then
|
then
|
||||||
export viewer_channel="Second Life Release"
|
export viewer_channel="Second Life Release"
|
||||||
|
elif [[ "$branch" == "develop" ]];
|
||||||
|
then
|
||||||
|
export viewer_channel="Second Life Develop"
|
||||||
else
|
else
|
||||||
export viewer_channel="Second Life Test"
|
export viewer_channel="Second Life Test"
|
||||||
fi
|
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
|
// static
|
||||||
std::string LLDir::getScrubbedFileName(const std::string uncleanFileName)
|
std::string LLDir::getScrubbedFileName(std::string_view uncleanFileName)
|
||||||
{
|
{
|
||||||
std::string name(uncleanFileName);
|
std::string name(uncleanFileName);
|
||||||
const std::string illegalChars(getForbiddenFileChars());
|
const std::string illegalChars(getForbiddenFileChars());
|
||||||
// replace any illegal file chars with and underscore '_'
|
// 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;
|
std::string::size_type j{ 0 };
|
||||||
while((j = name.find(illegalChars[i])) > std::string::npos)
|
while ((j = name.find(ch, j)) != std::string::npos)
|
||||||
{
|
{
|
||||||
name[j] = '_';
|
name[j] = '_';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -178,7 +178,7 @@ class LLDir
|
||||||
static std::string getDumpLogsDirPath(const std::string &file_name = "");
|
static std::string getDumpLogsDirPath(const std::string &file_name = "");
|
||||||
|
|
||||||
// For producing safe download file names from potentially unsafe ones
|
// 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();
|
static std::string getForbiddenFileChars();
|
||||||
void setDumpDir( const std::string& path );
|
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())
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1120,6 +1121,8 @@ S32 LLGLSLShader::bindTexture(S32 uniform, LLRenderTarget* texture, bool depth,
|
||||||
|
|
||||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1167,7 +1170,8 @@ S32 LLGLSLShader::unbindTexture(S32 uniform, LLTexUnit::eTextureType mode)
|
||||||
|
|
||||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1192,7 +1196,8 @@ S32 LLGLSLShader::enableTexture(S32 uniform, LLTexUnit::eTextureType mode, LLTex
|
||||||
|
|
||||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1213,7 +1218,8 @@ S32 LLGLSLShader::disableTexture(S32 uniform, LLTexUnit::eTextureType mode, LLTe
|
||||||
|
|
||||||
if (uniform < 0 || uniform >= (S32)mTexture.size())
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
S32 index = mTexture[uniform];
|
S32 index = mTexture[uniform];
|
||||||
|
|
@ -1244,7 +1250,8 @@ void LLGLSLShader::uniform1i(U32 index, GLint x)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1269,7 +1276,8 @@ void LLGLSLShader::uniform1f(U32 index, GLfloat x)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1304,7 +1312,8 @@ void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1330,7 +1339,8 @@ void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1356,7 +1366,8 @@ void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1382,7 +1393,8 @@ void LLGLSLShader::uniform1iv(U32 index, U32 count, const GLint* v)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1408,7 +1420,8 @@ void LLGLSLShader::uniform4iv(U32 index, U32 count, const GLint* v)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1435,7 +1448,8 @@ void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1461,7 +1475,8 @@ void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1487,7 +1502,8 @@ void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1513,7 +1529,8 @@ void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v)
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1540,7 +1557,8 @@ void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, c
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1560,7 +1578,8 @@ void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, c
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1580,7 +1599,8 @@ void LLGLSLShader::uniformMatrix3x4fv(U32 index, U32 count, GLboolean transpose,
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1600,7 +1620,8 @@ void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, c
|
||||||
{
|
{
|
||||||
if (mUniform.size() <= index)
|
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;
|
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);
|
glh::matrix4f gl_lookat(LLVector3 eye, LLVector3 center, LLVector3 up);
|
||||||
|
|
||||||
#define LL_SHADER_LOADING_WARNS(...) LL_WARNS()
|
#define LL_SHADER_LOADING_WARNS(...) LL_WARNS()
|
||||||
#define LL_SHADER_UNIFORM_ERRS(...) LL_ERRS("Shader")
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -409,7 +409,6 @@ LLWindow* LLWindowManager::createWindow(
|
||||||
bool ignore_pixel_depth,
|
bool ignore_pixel_depth,
|
||||||
U32 fsaa_samples,
|
U32 fsaa_samples,
|
||||||
U32 max_cores,
|
U32 max_cores,
|
||||||
U32 max_vram,
|
|
||||||
F32 max_gl_version)
|
F32 max_gl_version)
|
||||||
{
|
{
|
||||||
LLWindow* new_window;
|
LLWindow* new_window;
|
||||||
|
|
@ -427,11 +426,11 @@ LLWindow* LLWindowManager::createWindow(
|
||||||
#elif LL_WINDOWS
|
#elif LL_WINDOWS
|
||||||
new_window = new LLWindowWin32(callbacks,
|
new_window = new LLWindowWin32(callbacks,
|
||||||
title, name, x, y, width, height, flags,
|
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
|
#elif LL_DARWIN
|
||||||
new_window = new LLWindowMacOSX(callbacks,
|
new_window = new LLWindowMacOSX(callbacks,
|
||||||
title, name, x, y, width, height, flags,
|
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
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -164,8 +164,6 @@ public:
|
||||||
virtual F32 getPixelAspectRatio() = 0;
|
virtual F32 getPixelAspectRatio() = 0;
|
||||||
virtual void setNativeAspectRatio(F32 aspect) = 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 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()
|
virtual void afterDialog() {}; // undo whatever was done in beforeDialog()
|
||||||
|
|
||||||
|
|
@ -286,14 +284,14 @@ protected:
|
||||||
|
|
||||||
// Platform-neutral for accessing the platform specific message box
|
// Platform-neutral for accessing the platform specific message box
|
||||||
S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type);
|
S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type);
|
||||||
const U32 OSMB_OK = 0;
|
constexpr U32 OSMB_OK = 0;
|
||||||
const U32 OSMB_OKCANCEL = 1;
|
constexpr U32 OSMB_OKCANCEL = 1;
|
||||||
const U32 OSMB_YESNO = 2;
|
constexpr U32 OSMB_YESNO = 2;
|
||||||
|
|
||||||
const S32 OSBTN_YES = 0;
|
constexpr S32 OSBTN_YES = 0;
|
||||||
const S32 OSBTN_NO = 1;
|
constexpr S32 OSBTN_NO = 1;
|
||||||
const S32 OSBTN_OK = 2;
|
constexpr S32 OSBTN_OK = 2;
|
||||||
const S32 OSBTN_CANCEL = 3;
|
constexpr S32 OSBTN_CANCEL = 3;
|
||||||
|
|
||||||
//
|
//
|
||||||
// LLWindowManager
|
// LLWindowManager
|
||||||
|
|
@ -313,7 +311,6 @@ public:
|
||||||
bool ignore_pixel_depth = false,
|
bool ignore_pixel_depth = false,
|
||||||
U32 fsaa_samples = 0,
|
U32 fsaa_samples = 0,
|
||||||
U32 max_cores = 0,
|
U32 max_cores = 0,
|
||||||
U32 max_vram = 0,
|
|
||||||
F32 max_gl_version = 4.6f);
|
F32 max_gl_version = 4.6f);
|
||||||
static bool destroyWindow(LLWindow* window);
|
static bool destroyWindow(LLWindow* window);
|
||||||
static bool isWindowValid(LLWindow *window);
|
static bool isWindowValid(LLWindow *window);
|
||||||
|
|
@ -329,6 +326,4 @@ extern const S32 gURLProtocolWhitelistCount;
|
||||||
extern const std::string gURLProtocolWhitelist[];
|
extern const std::string gURLProtocolWhitelist[];
|
||||||
//extern const std::string gURLProtocolWhitelistHandler[];
|
//extern const std::string gURLProtocolWhitelistHandler[];
|
||||||
|
|
||||||
void simpleEscapeString ( std::string& stringIn );
|
|
||||||
|
|
||||||
#endif // _LL_window_h_
|
#endif // _LL_window_h_
|
||||||
|
|
|
||||||
|
|
@ -101,8 +101,6 @@ public:
|
||||||
/*virtual*/ F32 getPixelAspectRatio() override { return 1.0f; }
|
/*virtual*/ F32 getPixelAspectRatio() override { return 1.0f; }
|
||||||
/*virtual*/ void setNativeAspectRatio(F32 ratio) override {}
|
/*virtual*/ void setNativeAspectRatio(F32 ratio) override {}
|
||||||
|
|
||||||
void setMaxVRAMMegabytes(U32 max_vram) override {}
|
|
||||||
|
|
||||||
/*virtual*/ void *getPlatformWindow() override { return 0; }
|
/*virtual*/ void *getPlatformWindow() override { return 0; }
|
||||||
/*virtual*/ void bringToFront() override {}
|
/*virtual*/ void bringToFront() override {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,8 +122,7 @@ LLWindowMacOSX::LLWindowMacOSX(LLWindowCallbacks* callbacks,
|
||||||
bool fullscreen, bool clearBg,
|
bool fullscreen, bool clearBg,
|
||||||
bool enable_vsync, bool use_gl,
|
bool enable_vsync, bool use_gl,
|
||||||
bool ignore_pixel_depth,
|
bool ignore_pixel_depth,
|
||||||
U32 fsaa_samples,
|
U32 fsaa_samples)
|
||||||
U32 max_vram)
|
|
||||||
: LLWindow(NULL, fullscreen, flags)
|
: LLWindow(NULL, fullscreen, flags)
|
||||||
{
|
{
|
||||||
// *HACK: During window construction we get lots of OS events for window
|
// *HACK: During window construction we get lots of OS events for window
|
||||||
|
|
|
||||||
|
|
@ -100,8 +100,6 @@ public:
|
||||||
F32 getPixelAspectRatio() override;
|
F32 getPixelAspectRatio() override;
|
||||||
void setNativeAspectRatio(F32 ratio) override { mOverrideAspectRatio = ratio; }
|
void setNativeAspectRatio(F32 ratio) override { mOverrideAspectRatio = ratio; }
|
||||||
|
|
||||||
virtual void setMaxVRAMMegabytes(U32 max_vram) override {}
|
|
||||||
|
|
||||||
void beforeDialog() override;
|
void beforeDialog() override;
|
||||||
void afterDialog() 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,
|
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 fullscreen, bool clearBg, bool enable_vsync, bool use_gl,
|
||||||
bool ignore_pixel_depth,
|
bool ignore_pixel_depth,
|
||||||
U32 fsaa_samples,
|
U32 fsaa_samples);
|
||||||
U32 max_vram);
|
|
||||||
~LLWindowMacOSX();
|
~LLWindowMacOSX();
|
||||||
|
|
||||||
void initCursors();
|
void initCursors();
|
||||||
|
|
|
||||||
|
|
@ -404,7 +404,6 @@ struct LLWindowWin32::LLWindowWin32Thread : public LL::ThreadPool
|
||||||
|
|
||||||
using FuncType = std::function<void()>;
|
using FuncType = std::function<void()>;
|
||||||
// call GetMessage() and pull enqueue messages for later processing
|
// call GetMessage() and pull enqueue messages for later processing
|
||||||
void gatherInput();
|
|
||||||
HWND mWindowHandleThrd = NULL;
|
HWND mWindowHandleThrd = NULL;
|
||||||
HDC mhDCThrd = 0;
|
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
|
// until after some graphics setup. See SL-20177. -Cosmic,2023-09-18
|
||||||
bool mGLReady = false;
|
bool mGLReady = false;
|
||||||
bool mGotGLBuffer = 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,
|
bool ignore_pixel_depth,
|
||||||
U32 fsaa_samples,
|
U32 fsaa_samples,
|
||||||
U32 max_cores,
|
U32 max_cores,
|
||||||
U32 max_vram,
|
|
||||||
F32 max_gl_version)
|
F32 max_gl_version)
|
||||||
:
|
:
|
||||||
LLWindow(callbacks, fullscreen, flags),
|
LLWindow(callbacks, fullscreen, flags),
|
||||||
|
|
@ -434,7 +430,6 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
|
||||||
{
|
{
|
||||||
sMainThreadId = LLThread::currentID();
|
sMainThreadId = LLThread::currentID();
|
||||||
mWindowThread = new LLWindowWin32Thread();
|
mWindowThread = new LLWindowWin32Thread();
|
||||||
mWindowThread->mMaxVRAM = max_vram;
|
|
||||||
|
|
||||||
//MAINT-516 -- force a load of opengl32.dll just in case windows went sideways
|
//MAINT-516 -- force a load of opengl32.dll just in case windows went sideways
|
||||||
LoadLibrary(L"opengl32.dll");
|
LoadLibrary(L"opengl32.dll");
|
||||||
|
|
@ -4545,15 +4540,6 @@ std::vector<std::string> LLWindowWin32::getDynamicFallbackFontList()
|
||||||
// Fonts previously in getFontListSans() have moved to fonts.xml.
|
// Fonts previously in getFontListSans() have moved to fonts.xml.
|
||||||
return std::vector<std::string>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLWindowWin32::setMaxVRAMMegabytes(U32 max_vram)
|
|
||||||
{
|
|
||||||
if (mWindowThread)
|
|
||||||
{
|
|
||||||
mWindowThread->mMaxVRAM = max_vram;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // LL_WINDOWS
|
#endif // LL_WINDOWS
|
||||||
|
|
||||||
inline LLWindowWin32::LLWindowWin32Thread::LLWindowWin32Thread()
|
inline LLWindowWin32::LLWindowWin32Thread::LLWindowWin32Thread()
|
||||||
|
|
|
||||||
|
|
@ -108,8 +108,6 @@ public:
|
||||||
/*virtual*/ F32 getPixelAspectRatio();
|
/*virtual*/ F32 getPixelAspectRatio();
|
||||||
/*virtual*/ void setNativeAspectRatio(F32 ratio) { mOverrideAspectRatio = ratio; }
|
/*virtual*/ void setNativeAspectRatio(F32 ratio) { mOverrideAspectRatio = ratio; }
|
||||||
|
|
||||||
/*virtual*/ void setMaxVRAMMegabytes(U32 max_vram) override;
|
|
||||||
|
|
||||||
/*virtual*/ bool dialogColorPicker(F32 *r, F32 *g, F32 *b );
|
/*virtual*/ bool dialogColorPicker(F32 *r, F32 *g, F32 *b );
|
||||||
|
|
||||||
/*virtual*/ void *getPlatformWindow();
|
/*virtual*/ void *getPlatformWindow();
|
||||||
|
|
@ -142,11 +140,10 @@ protected:
|
||||||
LLWindowWin32(LLWindowCallbacks* callbacks,
|
LLWindowWin32(LLWindowCallbacks* callbacks,
|
||||||
const std::string& title, const std::string& name, int x, int y, int width, int height, U32 flags,
|
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 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();
|
~LLWindowWin32();
|
||||||
|
|
||||||
void initCursors();
|
void initCursors();
|
||||||
void initInputDevices();
|
|
||||||
HCURSOR loadColorCursor(LPCTSTR name);
|
HCURSOR loadColorCursor(LPCTSTR name);
|
||||||
bool isValid();
|
bool isValid();
|
||||||
void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size);
|
void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size);
|
||||||
|
|
@ -163,7 +160,6 @@ protected:
|
||||||
|
|
||||||
bool shouldPostQuit() { return mPostQuit; }
|
bool shouldPostQuit() { return mPostQuit; }
|
||||||
|
|
||||||
void fillCompositionForm(const LLRect& bounds, COMPOSITIONFORM *form);
|
|
||||||
void fillCandidateForm(const LLCoordGL& caret, const LLRect& bounds, CANDIDATEFORM *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 fillCharPosition(const LLCoordGL& caret, const LLRect& bounds, const LLRect& control, IMECHARPOSITION *char_position);
|
||||||
void fillCompositionLogfont(LOGFONT *logfont);
|
void fillCompositionLogfont(LOGFONT *logfont);
|
||||||
|
|
@ -178,10 +174,8 @@ protected:
|
||||||
//
|
//
|
||||||
|
|
||||||
bool getClientRectInScreenSpace(RECT* rectp);
|
bool getClientRectInScreenSpace(RECT* rectp);
|
||||||
void updateJoystick( );
|
|
||||||
|
|
||||||
static LRESULT CALLBACK mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_param, LPARAM l_param);
|
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 LLW32MsgCallback gAsyncMsgCallback;
|
||||||
extern LPWSTR gIconResource;
|
extern LPWSTR gIconResource;
|
||||||
|
|
||||||
static void handleMessage( const MSG& msg );
|
|
||||||
|
|
||||||
S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 type);
|
S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 type);
|
||||||
|
|
||||||
#endif //LL_LLWINDOWWIN32_H
|
#endif //LL_LLWINDOWWIN32_H
|
||||||
|
|
|
||||||
|
|
@ -756,9 +756,12 @@ void LLRenderPass::pushGLTFBatch(LLDrawInfo& params)
|
||||||
{
|
{
|
||||||
auto& mat = params.mGLTFMaterial;
|
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);
|
setup_texture_matrix(params);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -251,32 +251,27 @@ bool LLReflectionMap::getBox(LLMatrix4& box)
|
||||||
if (mViewerObject)
|
if (mViewerObject)
|
||||||
{
|
{
|
||||||
LLVolume* volume = mViewerObject->getVolume();
|
LLVolume* volume = mViewerObject->getVolume();
|
||||||
if (volume)
|
if (volume && mViewerObject->getReflectionProbeIsBox())
|
||||||
{
|
{
|
||||||
LLVOVolume* vobjp = (LLVOVolume*)mViewerObject;
|
glh::matrix4f mv(gGLModelView);
|
||||||
|
glh::matrix4f scale;
|
||||||
if (vobjp->getReflectionProbeIsBox())
|
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);
|
// object to agent space (no scale)
|
||||||
glh::matrix4f scale;
|
glh::matrix4f rm((F32*)mViewerObject->mDrawable->getWorldMatrix().mMatrix);
|
||||||
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);
|
|
||||||
|
|
||||||
// construct object to camera space (with scale)
|
// construct object to camera space (with scale)
|
||||||
mv = mv * rm * scale;
|
mv = mv * rm * scale;
|
||||||
|
|
||||||
// inverse is camera space to object unit cube
|
// inverse is camera space to object unit cube
|
||||||
mv = mv.inverse();
|
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();
|
std::string channel = getChannel();
|
||||||
|
|
||||||
static const boost::regex is_test_channel("\\bTest\\b");
|
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_project_channel("\\bProject\\b");
|
||||||
static const boost::regex is_release_channel("\\bRelease\\b");
|
static const boost::regex is_release_channel("\\bRelease\\b");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,13 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
|
||||||
mZoomSubregion = 1;
|
mZoomSubregion = 1;
|
||||||
mAverageSpeed = 0.f;
|
mAverageSpeed = 0.f;
|
||||||
mAverageAngularSpeed = 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)
|
void LLViewerCamera::updateCameraLocation(const LLVector3 ¢er, const LLVector3 &up_direction, const LLVector3 &point_of_interest)
|
||||||
|
|
@ -895,10 +901,8 @@ bool LLViewerCamera::isDefaultFOVChanged()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
void LLViewerCamera::updateCameraAngle(const LLSD& value)
|
||||||
void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)
|
|
||||||
{
|
{
|
||||||
LLViewerCamera* self=(LLViewerCamera*)user_data;
|
setDefaultFOV(value.asReal());
|
||||||
self->setDefaultFOV(value.asReal());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ class alignas(16) LLViewerCamera : public LLCamera, public LLSimpleton<LLViewerC
|
||||||
LL_ALIGN_NEW
|
LL_ALIGN_NEW
|
||||||
public:
|
public:
|
||||||
LLViewerCamera();
|
LLViewerCamera();
|
||||||
|
~LLViewerCamera();
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
|
@ -65,7 +66,7 @@ public:
|
||||||
const LLVector3 &point_of_interest);
|
const LLVector3 &point_of_interest);
|
||||||
|
|
||||||
static void updateFrustumPlanes(LLCamera& camera, bool ortho = false, bool zflip = false, bool no_hacks = false);
|
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);
|
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;
|
const LLMatrix4 &getProjection() const;
|
||||||
|
|
@ -125,6 +126,8 @@ protected:
|
||||||
F32 mZoomFactor;
|
F32 mZoomFactor;
|
||||||
S16 mZoomSubregion;
|
S16 mZoomSubregion;
|
||||||
|
|
||||||
|
boost::signals2::connection mCameraAngleChangedSignal;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -266,6 +266,7 @@ public:
|
||||||
virtual bool isRiggedMesh() const { return false; }
|
virtual bool isRiggedMesh() const { return false; }
|
||||||
virtual bool hasLightTexture() const { return false; }
|
virtual bool hasLightTexture() const { return false; }
|
||||||
virtual bool isReflectionProbe() 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
|
// This method returns true if the object is over land owned by
|
||||||
// the agent, one of its groups, or it encroaches and
|
// 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))
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1867,15 +1867,6 @@ LLViewerWindow::LLViewerWindow(const Params& p)
|
||||||
U32 max_core_count = gSavedSettings.getU32("EmulateCoreCount");
|
U32 max_core_count = gSavedSettings.getU32("EmulateCoreCount");
|
||||||
F32 max_gl_version = gSavedSettings.getF32("RenderMaxOpenGLVersion");
|
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,
|
mWindow = LLWindowManager::createWindow(this,
|
||||||
p.title, p.name, p.x, p.y, p.width, p.height, 0,
|
p.title, p.name, p.x, p.y, p.width, p.height, 0,
|
||||||
p.fullscreen,
|
p.fullscreen,
|
||||||
|
|
@ -1885,7 +1876,6 @@ LLViewerWindow::LLViewerWindow(const Params& p)
|
||||||
p.ignore_pixel_depth,
|
p.ignore_pixel_depth,
|
||||||
0,
|
0,
|
||||||
max_core_count,
|
max_core_count,
|
||||||
max_vram,
|
|
||||||
max_gl_version); //don't use window level anti-aliasing
|
max_gl_version); //don't use window level anti-aliasing
|
||||||
|
|
||||||
if (NULL == mWindow)
|
if (NULL == mWindow)
|
||||||
|
|
@ -2436,8 +2426,6 @@ LLViewerWindow::~LLViewerWindow()
|
||||||
LLViewerShaderMgr::releaseInstance();
|
LLViewerShaderMgr::releaseInstance();
|
||||||
LLViewerShaderMgr::sInitialized = false;
|
LLViewerShaderMgr::sInitialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
mMaxVRAMControlConnection.disconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -550,8 +550,6 @@ private:
|
||||||
// Object temporarily hovered over while dragging
|
// Object temporarily hovered over while dragging
|
||||||
LLPointer<LLViewerObject> mDragHoveredObject;
|
LLPointer<LLViewerObject> mDragHoveredObject;
|
||||||
|
|
||||||
boost::signals2::connection mMaxVRAMControlConnection;
|
|
||||||
|
|
||||||
static LLTrace::SampleStatHandle<> sMouseVelocityStat;
|
static LLTrace::SampleStatHandle<> sMouseVelocityStat;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@ public:
|
||||||
bool isReflectionProbe() const override;
|
bool isReflectionProbe() const override;
|
||||||
F32 getReflectionProbeAmbiance() const;
|
F32 getReflectionProbeAmbiance() const;
|
||||||
F32 getReflectionProbeNearClip() const;
|
F32 getReflectionProbeNearClip() const;
|
||||||
bool getReflectionProbeIsBox() const;
|
bool getReflectionProbeIsBox() const override;
|
||||||
bool getReflectionProbeIsDynamic() const;
|
bool getReflectionProbeIsDynamic() const;
|
||||||
bool getReflectionProbeIsMirror() const;
|
bool getReflectionProbeIsMirror() const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10229,7 +10229,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar, bool preview_avatar, bool
|
||||||
result.clear();
|
result.clear();
|
||||||
grabReferences(result);
|
grabReferences(result);
|
||||||
|
|
||||||
if (!avatar || !avatar->mDrawable)
|
if (!avatar || avatar->isDead() || !avatar->mDrawable)
|
||||||
{
|
{
|
||||||
LL_WARNS_ONCE("AvatarRenderPipeline") << "Avatar is " << (avatar ? "not drawable" : "null") << LL_ENDL;
|
LL_WARNS_ONCE("AvatarRenderPipeline") << "Avatar is " << (avatar ? "not drawable" : "null") << LL_ENDL;
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<floater
|
<floater
|
||||||
height="400"
|
height="411"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="prefs_graphics_advanced"
|
name="prefs_graphics_advanced"
|
||||||
help_topic="Preferences_Graphics_Advanced"
|
help_topic="Preferences_Graphics_Advanced"
|
||||||
|
|
@ -545,7 +545,7 @@
|
||||||
</text>
|
</text>
|
||||||
<view_border
|
<view_border
|
||||||
bevel_style="in"
|
bevel_style="in"
|
||||||
height="322"
|
height="357"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
left="385"
|
left="385"
|
||||||
name="vert_border"
|
name="vert_border"
|
||||||
|
|
@ -889,7 +889,7 @@
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
left="13"
|
left="13"
|
||||||
name="horiz_border"
|
name="horiz_border"
|
||||||
top="338"
|
top="373"
|
||||||
top_delta="5"
|
top_delta="5"
|
||||||
width="774"/>
|
width="774"/>
|
||||||
<button
|
<button
|
||||||
|
|
@ -899,7 +899,7 @@
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
left="20"
|
left="20"
|
||||||
name="Defaults"
|
name="Defaults"
|
||||||
top_delta="20"
|
top_delta="7"
|
||||||
width="210">
|
width="210">
|
||||||
<button.commit_callback
|
<button.commit_callback
|
||||||
function="Pref.HardwareDefaults" />
|
function="Pref.HardwareDefaults" />
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue