Merge viewer64
commit
547df251e4
|
|
@ -799,9 +799,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ec71ffd68af829bf77fb03fdf39c2461</string>
|
||||
<string>bbdea742f2a89bcd6360e61e01d6be93</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/7820/30257/dullahan-1.1.813_3.3071.1637.gcb6cf75-darwin64-507809.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8207/32592/dullahan-1.1.820_3.3071.1637.gcb6cf75-darwin64-508196.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -811,9 +811,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>234547cab68748f82e429237d5a46783</string>
|
||||
<string>31e11a74e0d3f1e5e4036cb5fea8d944</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/7822/30267/dullahan-1.1.813_3.3071.1634.g9cc59c8-windows-507809.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8209/32599/dullahan-1.1.820_3.3071.1634.g9cc59c8-windows-508196.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -823,9 +823,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>c3bcb52276cb115577e8c0cd053b8fc7</string>
|
||||
<string>f965d244e7921c06ee79b68a4abcea3b</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/7821/30264/dullahan-1.1.813_3.3071.1634.g9cc59c8-windows64-507809.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8208/32602/dullahan-1.1.820_3.3071.1634.g9cc59c8-windows64-508196.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -856,7 +856,7 @@
|
|||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>1.1.813_3.3071.1634.g9cc59c8</string>
|
||||
<string>1.1.820_3.3071.1634.g9cc59c8</string>
|
||||
</map>
|
||||
<key>elfio</key>
|
||||
<map>
|
||||
|
|
@ -3443,9 +3443,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>0a5cc9172214a0a20f2d78f5cb16844d</string>
|
||||
<string>0d65bb763808feffb6308914aa53272b</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8213/32619/viewer_manager-1.0.508202-darwin64-508202.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8942/38652/viewer_manager-1.0.508931-darwin64-508931.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -3467,9 +3467,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ca78e324fe75ac097bdbadb91181cfa7</string>
|
||||
<string>c235c6ef33f52b0130808fe57710fe35</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8216/32625/viewer_manager-1.0.508202-windows-508202.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8943/38658/viewer_manager-1.0.508931-windows-508931.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -3480,7 +3480,7 @@
|
|||
<key>source_type</key>
|
||||
<string>hg</string>
|
||||
<key>version</key>
|
||||
<string>1.0.508202</string>
|
||||
<string>1.0.508931</string>
|
||||
</map>
|
||||
<key>vlc-bin</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -19,9 +19,7 @@ set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
|
|||
include(Variables)
|
||||
|
||||
# We go to some trouble to set LL_BUILD to the set of relevant compiler flags.
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{LL_BUILD_RELEASE}")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "$ENV{LL_BUILD_RELWITHDEBINFO}")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{LL_BUILD_DEBUG}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} $ENV{LL_BUILD}")
|
||||
# Given that, all the flags you see added below are flags NOT present in
|
||||
# https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables.
|
||||
# Before adding new ones here, it's important to ask: can this flag really be
|
||||
|
|
@ -204,6 +202,10 @@ if (DARWIN)
|
|||
set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
|
||||
set(DARWIN_extra_cstar_flags "-Wno-unused-local-typedef -Wno-deprecated-declarations")
|
||||
# Ensure that CMAKE_CXX_FLAGS has the correct -g debug information format --
|
||||
# see Variables.cmake.
|
||||
string(REPLACE "-gdwarf-2" "-g${CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT}"
|
||||
CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
# The viewer code base can now be successfully compiled with -std=c++14. But
|
||||
# turning that on in the generic viewer-build-variables/variables file would
|
||||
# potentially require tweaking each of our ~50 third-party library builds.
|
||||
|
|
|
|||
|
|
@ -158,6 +158,20 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|||
|
||||
string(REGEX MATCH " -g([^ ]*)" scratch "$ENV{LL_BUILD}")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "${CMAKE_MATCH_1}")
|
||||
# -gdwarf-2 is passed in LL_BUILD according to 00-COMPILE-LINK-RUN.txt.
|
||||
# However, when CMake 3.9.2 sees -gdwarf-2, it silently deletes the whole -g
|
||||
# switch, producing no symbols at all! The same thing happens if we specify
|
||||
# plain -g ourselves, i.e. CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT is
|
||||
# the empty string. Specifying -gdwarf-with-dsym or just -gdwarf drives a
|
||||
# different CMake behavior: it substitutes plain -g. As of 2017-09-19,
|
||||
# viewer-build-variables/variables still passes -gdwarf-2, which is the
|
||||
# no-symbols case. Set -gdwarf, triggering CMake to substitute plain -g --
|
||||
# at least that way we should get symbols, albeit mangled ones. It Would Be
|
||||
# Nice if CMake's behavior could be predicted from a consistent mental
|
||||
# model, instead of only observed experimentally.
|
||||
string(REPLACE "dwarf-2" "dwarf"
|
||||
CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT
|
||||
"${CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT}")
|
||||
message(STATUS "CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT = '${CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT}'")
|
||||
|
||||
string(REGEX MATCH "-O([^ ]*)" scratch "$ENV{LL_BUILD}")
|
||||
|
|
|
|||
|
|
@ -43,7 +43,9 @@ import subprocess
|
|||
|
||||
class ManifestError(RuntimeError):
|
||||
"""Use an exception more specific than generic Python RuntimeError"""
|
||||
pass
|
||||
def __init__(self, msg):
|
||||
self.msg = msg
|
||||
super(ManifestError, self).__init__(self.msg)
|
||||
|
||||
class MissingError(ManifestError):
|
||||
"""You specified a file that doesn't exist"""
|
||||
|
|
@ -314,8 +316,11 @@ def main():
|
|||
continue
|
||||
if touch:
|
||||
print 'Creating additional package for "', package_id, '" in ', args['dest']
|
||||
wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args)
|
||||
wm.do(*args['actions'])
|
||||
try:
|
||||
wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args)
|
||||
wm.do(*args['actions'])
|
||||
except Exception as err:
|
||||
sys.exit(str(err))
|
||||
if touch:
|
||||
print 'Created additional package ', wm.package_file, ' for ', package_id
|
||||
faketouch = base_touch_prefix + '/' + package_id + '/' + base_touch_postfix
|
||||
|
|
@ -454,29 +459,17 @@ class LLManifest(object):
|
|||
return path
|
||||
|
||||
def run_command(self, command):
|
||||
""" Runs an external command, and returns the output. Raises
|
||||
an exception if the command returns a nonzero status code. For
|
||||
debugging/informational purposes, prints out the command's
|
||||
output as it is received."""
|
||||
"""
|
||||
Runs an external command.
|
||||
Raises ManifestError exception if the command returns a nonzero status.
|
||||
"""
|
||||
print "Running command:", command
|
||||
sys.stdout.flush()
|
||||
child = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
|
||||
shell=True)
|
||||
lines = []
|
||||
while True:
|
||||
lines.append(child.stdout.readline())
|
||||
if lines[-1] == '':
|
||||
break
|
||||
else:
|
||||
print lines[-1],
|
||||
output = ''.join(lines)
|
||||
child.stdout.close()
|
||||
status = child.wait()
|
||||
if status:
|
||||
raise ManifestError(
|
||||
"Command %s returned non-zero status (%s) \noutput:\n%s"
|
||||
% (command, status, output) )
|
||||
return output
|
||||
try:
|
||||
subprocess.check_call(command, shell=True)
|
||||
except subprocess.CalledProcessError as err:
|
||||
raise ManifestError( "Command %s returned non-zero status (%s)"
|
||||
% (command, err.returncode) )
|
||||
|
||||
def created_path(self, path):
|
||||
""" Declare that you've created a path in order to
|
||||
|
|
@ -626,7 +619,7 @@ class LLManifest(object):
|
|||
if self.includes(src, dst):
|
||||
try:
|
||||
os.unlink(dst)
|
||||
except OSError, err:
|
||||
except OSError as err:
|
||||
if err.errno != errno.ENOENT:
|
||||
raise
|
||||
|
||||
|
|
@ -647,7 +640,7 @@ class LLManifest(object):
|
|||
dstname = os.path.join(dst, name)
|
||||
try:
|
||||
self.ccopymumble(srcname, dstname)
|
||||
except (IOError, os.error), why:
|
||||
except (IOError, os.error) as why:
|
||||
errors.append((srcname, dstname, why))
|
||||
if errors:
|
||||
raise ManifestError, errors
|
||||
|
|
|
|||
|
|
@ -836,7 +836,7 @@ void HttpRequestTestObjectType::test<8>()
|
|||
|
||||
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
|
||||
|
||||
#if defined(WIN32)
|
||||
#if 0 // defined(WIN32)
|
||||
// Can only do this memory test on Windows. On other platforms,
|
||||
// the LL logging system holds on to memory and produces what looks
|
||||
// like memory leaks...
|
||||
|
|
@ -947,7 +947,7 @@ void HttpRequestTestObjectType::test<9>()
|
|||
|
||||
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
|
||||
|
||||
#if defined(WIN32)
|
||||
#if 0 // defined(WIN32)
|
||||
// Can only do this memory test on Windows. On other platforms,
|
||||
// the LL logging system holds on to memory and produces what looks
|
||||
// like memory leaks...
|
||||
|
|
@ -1183,7 +1183,7 @@ void HttpRequestTestObjectType::test<11>()
|
|||
|
||||
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
|
||||
|
||||
#if defined(WIN32)
|
||||
#if 0 // defined(WIN32)
|
||||
// Can only do this memory test on Windows. On other platforms,
|
||||
// the LL logging system holds on to memory and produces what looks
|
||||
// like memory leaks...
|
||||
|
|
@ -1429,7 +1429,7 @@ void HttpRequestTestObjectType::test<13>()
|
|||
|
||||
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
|
||||
|
||||
#if defined(WIN32)
|
||||
#if 0 // defined(WIN32)
|
||||
// Can only do this memory test on Windows. On other platforms,
|
||||
// the LL logging system holds on to memory and produces what looks
|
||||
// like memory leaks...
|
||||
|
|
@ -1663,7 +1663,7 @@ void HttpRequestTestObjectType::test<15>()
|
|||
|
||||
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
|
||||
|
||||
#if defined(WIN32)
|
||||
#if 0 // defined(WIN32)
|
||||
// Can only do this memory test on Windows. On other platforms,
|
||||
// the LL logging system holds on to memory and produces what looks
|
||||
// like memory leaks...
|
||||
|
|
|
|||
|
|
@ -416,7 +416,7 @@ BOOL LLGLSLShader::createShader(std::vector<LLStaticHashedString> * attributes,
|
|||
{
|
||||
GLhandleARB shaderhandle = LLShaderMgr::instance()->loadShaderFile((*fileIter).first, mShaderLevel, (*fileIter).second, &mDefines, mFeatures.mIndexedTextureChannels);
|
||||
LL_DEBUGS("ShaderLoading") << "SHADER FILE: " << (*fileIter).first << " mShaderLevel=" << mShaderLevel << LL_ENDL;
|
||||
if (shaderhandle > 0)
|
||||
if (shaderhandle)
|
||||
{
|
||||
attachObject(shaderhandle);
|
||||
}
|
||||
|
|
@ -1005,7 +1005,7 @@ S32 LLGLSLShader::disableTexture(S32 uniform, LLTexUnit::eTextureType mode)
|
|||
|
||||
void LLGLSLShader::uniform1i(U32 index, GLint x)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1027,7 +1027,7 @@ void LLGLSLShader::uniform1i(U32 index, GLint x)
|
|||
|
||||
void LLGLSLShader::uniform1f(U32 index, GLfloat x)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1049,7 +1049,7 @@ void LLGLSLShader::uniform1f(U32 index, GLfloat x)
|
|||
|
||||
void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1072,7 +1072,7 @@ void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y)
|
|||
|
||||
void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1095,7 +1095,7 @@ void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z)
|
|||
|
||||
void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1118,7 +1118,7 @@ void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat
|
|||
|
||||
void LLGLSLShader::uniform1iv(U32 index, U32 count, const GLint* v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1141,7 +1141,7 @@ void LLGLSLShader::uniform1iv(U32 index, U32 count, const GLint* v)
|
|||
|
||||
void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1164,7 +1164,7 @@ void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v)
|
|||
|
||||
void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1187,7 +1187,7 @@ void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v)
|
|||
|
||||
void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1210,7 +1210,7 @@ void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v)
|
|||
|
||||
void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1233,7 +1233,7 @@ void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v)
|
|||
|
||||
void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1250,7 +1250,7 @@ void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, c
|
|||
|
||||
void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1267,7 +1267,7 @@ void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, c
|
|||
|
||||
void LLGLSLShader::uniformMatrix3x4fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1284,7 +1284,7 @@ void LLGLSLShader::uniformMatrix3x4fv(U32 index, U32 count, GLboolean transpose,
|
|||
|
||||
void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)
|
||||
{
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
if (mUniform.size() <= index)
|
||||
{
|
||||
|
|
@ -1302,7 +1302,7 @@ void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, c
|
|||
GLint LLGLSLShader::getUniformLocation(const LLStaticHashedString& uniform)
|
||||
{
|
||||
GLint ret = -1;
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
LLStaticStringTable<GLint>::iterator iter = mUniformMap.find(uniform);
|
||||
if (iter != mUniformMap.end())
|
||||
|
|
@ -1326,7 +1326,7 @@ GLint LLGLSLShader::getUniformLocation(const LLStaticHashedString& uniform)
|
|||
GLint LLGLSLShader::getUniformLocation(U32 index)
|
||||
{
|
||||
GLint ret = -1;
|
||||
if (mProgramObject > 0)
|
||||
if (mProgramObject)
|
||||
{
|
||||
llassert(index < mUniform.size());
|
||||
return mUniform[index];
|
||||
|
|
|
|||
|
|
@ -581,10 +581,13 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
|
||||
//we can't have any lines longer than 1024 characters
|
||||
//or any shaders longer than 4096 lines... deal - DaveP
|
||||
GLcharARB buff[1024];
|
||||
GLcharARB* text[4096];
|
||||
GLuint count = 0;
|
||||
|
||||
GLcharARB buff[1024];
|
||||
GLcharARB *extra_code_text[1024];
|
||||
GLcharARB *shader_code_text[4096 + LL_ARRAY_SIZE(extra_code_text)] = { NULL };
|
||||
GLuint extra_code_count = 0, shader_code_count = 0;
|
||||
BOOST_STATIC_ASSERT(LL_ARRAY_SIZE(extra_code_text) < LL_ARRAY_SIZE(shader_code_text));
|
||||
|
||||
|
||||
S32 major_version = gGLManager.mGLSLVersionMajor;
|
||||
S32 minor_version = gGLManager.mGLSLVersionMinor;
|
||||
|
||||
|
|
@ -599,20 +602,20 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
|
||||
if (minor_version <= 19)
|
||||
{
|
||||
text[count++] = strdup("#version 110\n");
|
||||
text[count++] = strdup("#define ATTRIBUTE attribute\n");
|
||||
text[count++] = strdup("#define VARYING varying\n");
|
||||
text[count++] = strdup("#define VARYING_FLAT varying\n");
|
||||
shader_code_text[shader_code_count++] = strdup("#version 110\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define ATTRIBUTE attribute\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING varying\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING_FLAT varying\n");
|
||||
}
|
||||
else if (minor_version <= 29)
|
||||
{
|
||||
//set version to 1.20
|
||||
text[count++] = strdup("#version 120\n");
|
||||
text[count++] = strdup("#define FXAA_GLSL_120 1\n");
|
||||
text[count++] = strdup("#define FXAA_FAST_PIXEL_OFFSET 0\n");
|
||||
text[count++] = strdup("#define ATTRIBUTE attribute\n");
|
||||
text[count++] = strdup("#define VARYING varying\n");
|
||||
text[count++] = strdup("#define VARYING_FLAT varying\n");
|
||||
shader_code_text[shader_code_count++] = strdup("#version 120\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define FXAA_GLSL_120 1\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define FXAA_FAST_PIXEL_OFFSET 0\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define ATTRIBUTE attribute\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING varying\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING_FLAT varying\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -620,44 +623,43 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
if (major_version < 4)
|
||||
{
|
||||
//set version to 1.30
|
||||
text[count++] = strdup("#version 130\n");
|
||||
|
||||
shader_code_text[shader_code_count++] = strdup("#version 130\n");
|
||||
//some implementations of GLSL 1.30 require integer precision be explicitly declared
|
||||
text[count++] = strdup("precision mediump int;\n");
|
||||
text[count++] = strdup("precision highp float;\n");
|
||||
extra_code_text[extra_code_count++] = strdup("precision mediump int;\n");
|
||||
extra_code_text[extra_code_count++] = strdup("precision highp float;\n");
|
||||
}
|
||||
else
|
||||
{ //set version to 400
|
||||
text[count++] = strdup("#version 400\n");
|
||||
shader_code_text[shader_code_count++] = strdup("#version 400\n");
|
||||
}
|
||||
|
||||
text[count++] = strdup("#define DEFINE_GL_FRAGCOLOR 1\n");
|
||||
text[count++] = strdup("#define FXAA_GLSL_130 1\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define DEFINE_GL_FRAGCOLOR 1\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define FXAA_GLSL_130 1\n");
|
||||
|
||||
text[count++] = strdup("#define ATTRIBUTE in\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define ATTRIBUTE in\n");
|
||||
|
||||
if (type == GL_VERTEX_SHADER_ARB)
|
||||
{ //"varying" state is "out" in a vertex program, "in" in a fragment program
|
||||
// ("varying" is deprecated after version 1.20)
|
||||
text[count++] = strdup("#define VARYING out\n");
|
||||
text[count++] = strdup("#define VARYING_FLAT flat out\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING out\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING_FLAT flat out\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
text[count++] = strdup("#define VARYING in\n");
|
||||
text[count++] = strdup("#define VARYING_FLAT flat in\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING in\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define VARYING_FLAT flat in\n");
|
||||
}
|
||||
|
||||
//backwards compatibility with legacy texture lookup syntax
|
||||
text[count++] = strdup("#define texture2D texture\n");
|
||||
text[count++] = strdup("#define textureCube texture\n");
|
||||
text[count++] = strdup("#define texture2DLod textureLod\n");
|
||||
text[count++] = strdup("#define shadow2D(a,b) vec2(texture(a,b))\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define texture2D texture\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define textureCube texture\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define texture2DLod textureLod\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define shadow2D(a,b) vec2(texture(a,b))\n");
|
||||
|
||||
if (major_version > 1 || minor_version >= 40)
|
||||
{ //GLSL 1.40 replaces texture2DRect et al with texture
|
||||
text[count++] = strdup("#define texture2DRect texture\n");
|
||||
text[count++] = strdup("#define shadow2DRect(a,b) vec2(texture(a,b))\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define texture2DRect texture\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define shadow2DRect(a,b) vec2(texture(a,b))\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -666,13 +668,13 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
for (boost::unordered_map<std::string,std::string>::iterator iter = defines->begin(); iter != defines->end(); ++iter)
|
||||
{
|
||||
std::string define = "#define " + iter->first + " " + iter->second + "\n";
|
||||
text[count++] = (GLcharARB *) strdup(define.c_str());
|
||||
extra_code_text[extra_code_count++] = (GLcharARB *) strdup(define.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
if( gGLManager.mIsATI )
|
||||
{
|
||||
text[ count++ ] = strdup( "#define IS_AMD_CARD 1\n" );
|
||||
extra_code_text[extra_code_count++] = strdup( "#define IS_AMD_CARD 1\n" );
|
||||
}
|
||||
|
||||
if (texture_index_channels > 0 && type == GL_FRAGMENT_SHADER_ARB)
|
||||
|
|
@ -710,28 +712,28 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
}
|
||||
*/
|
||||
|
||||
text[count++] = strdup("#define HAS_DIFFUSE_LOOKUP 1\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define HAS_DIFFUSE_LOOKUP 1\n");
|
||||
|
||||
//uniform declartion
|
||||
for (S32 i = 0; i < texture_index_channels; ++i)
|
||||
{
|
||||
std::string decl = llformat("uniform sampler2D tex%d;\n", i);
|
||||
text[count++] = strdup(decl.c_str());
|
||||
extra_code_text[extra_code_count++] = strdup(decl.c_str());
|
||||
}
|
||||
|
||||
if (texture_index_channels > 1)
|
||||
{
|
||||
text[count++] = strdup("VARYING_FLAT int vary_texture_index;\n");
|
||||
extra_code_text[extra_code_count++] = strdup("VARYING_FLAT int vary_texture_index;\n");
|
||||
}
|
||||
|
||||
text[count++] = strdup("vec4 diffuseLookup(vec2 texcoord)\n");
|
||||
text[count++] = strdup("{\n");
|
||||
extra_code_text[extra_code_count++] = strdup("vec4 diffuseLookup(vec2 texcoord)\n");
|
||||
extra_code_text[extra_code_count++] = strdup("{\n");
|
||||
|
||||
|
||||
if (texture_index_channels == 1)
|
||||
{ //don't use flow control, that's silly
|
||||
text[count++] = strdup("return texture2D(tex0, texcoord);\n");
|
||||
text[count++] = strdup("}\n");
|
||||
extra_code_text[extra_code_count++] = strdup("return texture2D(tex0, texcoord);\n");
|
||||
extra_code_text[extra_code_count++] = strdup("}\n");
|
||||
}
|
||||
else if (major_version > 1 || minor_version >= 30)
|
||||
{ //switches are supported in GLSL 1.30 and later
|
||||
|
|
@ -740,27 +742,27 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
for (U32 i = 0; i < texture_index_channels; ++i)
|
||||
{
|
||||
std::string if_string = llformat("\t%sif (vary_texture_index == %d) { return texture2D(tex%d, texcoord); }\n", i > 0 ? "else " : "", i, i);
|
||||
text[count++] = strdup(if_string.c_str());
|
||||
extra_code_text[extra_code_count++] = strdup(if_string.c_str());
|
||||
}
|
||||
text[count++] = strdup("\treturn vec4(1,0,1,1);\n");
|
||||
text[count++] = strdup("}\n");
|
||||
extra_code_text[extra_code_count++] = strdup("\treturn vec4(1,0,1,1);\n");
|
||||
extra_code_text[extra_code_count++] = strdup("}\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
text[count++] = strdup("\tvec4 ret = vec4(1,0,1,1);\n");
|
||||
text[count++] = strdup("\tswitch (vary_texture_index)\n");
|
||||
text[count++] = strdup("\t{\n");
|
||||
extra_code_text[extra_code_count++] = strdup("\tvec4 ret = vec4(1,0,1,1);\n");
|
||||
extra_code_text[extra_code_count++] = strdup("\tswitch (vary_texture_index)\n");
|
||||
extra_code_text[extra_code_count++] = strdup("\t{\n");
|
||||
|
||||
//switch body
|
||||
for (S32 i = 0; i < texture_index_channels; ++i)
|
||||
{
|
||||
std::string case_str = llformat("\t\tcase %d: return texture2D(tex%d, texcoord);\n", i, i);
|
||||
text[count++] = strdup(case_str.c_str());
|
||||
extra_code_text[extra_code_count++] = strdup(case_str.c_str());
|
||||
}
|
||||
|
||||
text[count++] = strdup("\t}\n");
|
||||
text[count++] = strdup("\treturn ret;\n");
|
||||
text[count++] = strdup("}\n");
|
||||
extra_code_text[extra_code_count++] = strdup("\t}\n");
|
||||
extra_code_text[extra_code_count++] = strdup("\treturn ret;\n");
|
||||
extra_code_text[extra_code_count++] = strdup("}\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -771,14 +773,89 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
}
|
||||
else
|
||||
{
|
||||
text[count++] = strdup("#define HAS_DIFFUSE_LOOKUP 0\n");
|
||||
extra_code_text[extra_code_count++] = strdup("#define HAS_DIFFUSE_LOOKUP 0\n");
|
||||
}
|
||||
|
||||
|
||||
//copy file into memory
|
||||
while( fgets((char *)buff, 1024, file) != NULL && count < LL_ARRAY_SIZE(text) )
|
||||
enum {
|
||||
flag_write_to_out_of_extra_block_area = 0x01
|
||||
, flag_extra_block_marker_was_found = 0x02
|
||||
};
|
||||
|
||||
unsigned char flags = flag_write_to_out_of_extra_block_area;
|
||||
|
||||
GLuint out_of_extra_block_counter = 0, start_shader_code = shader_code_count, file_lines_count = 0;
|
||||
|
||||
while(NULL != fgets((char *)buff, 1024, file)
|
||||
&& shader_code_count < (LL_ARRAY_SIZE(shader_code_text) - LL_ARRAY_SIZE(extra_code_text)))
|
||||
{
|
||||
text[count++] = (GLcharARB *)strdup((char *)buff);
|
||||
file_lines_count++;
|
||||
|
||||
bool extra_block_area_found = NULL != strstr((const char*)buff, "[EXTRA_CODE_HERE]");
|
||||
|
||||
if(extra_block_area_found && !(flag_extra_block_marker_was_found & flags))
|
||||
{
|
||||
if(!(flag_write_to_out_of_extra_block_area & flags))
|
||||
{
|
||||
//shift
|
||||
for(GLuint to = start_shader_code, from = extra_code_count + start_shader_code;
|
||||
from < shader_code_count; ++to, ++from)
|
||||
{
|
||||
shader_code_text[to] = shader_code_text[from];
|
||||
}
|
||||
|
||||
shader_code_count -= extra_code_count;
|
||||
}
|
||||
|
||||
//copy extra code
|
||||
for(GLuint n = 0; n < extra_code_count
|
||||
&& shader_code_count < (LL_ARRAY_SIZE(shader_code_text) - LL_ARRAY_SIZE(extra_code_text)); ++n)
|
||||
{
|
||||
shader_code_text[shader_code_count++] = extra_code_text[n];
|
||||
}
|
||||
|
||||
extra_code_count = 0;
|
||||
|
||||
flags &= ~flag_write_to_out_of_extra_block_area;
|
||||
flags |= flag_extra_block_marker_was_found;
|
||||
}
|
||||
else
|
||||
{
|
||||
shader_code_text[shader_code_count] = (GLcharARB *)strdup((char *)buff);
|
||||
|
||||
if(flag_write_to_out_of_extra_block_area & flags)
|
||||
{
|
||||
shader_code_text[extra_code_count + start_shader_code + out_of_extra_block_counter]
|
||||
= shader_code_text[shader_code_count];
|
||||
out_of_extra_block_counter++;
|
||||
|
||||
if(out_of_extra_block_counter == extra_code_count)
|
||||
{
|
||||
shader_code_count += extra_code_count;
|
||||
flags &= ~flag_write_to_out_of_extra_block_area;
|
||||
}
|
||||
}
|
||||
|
||||
++shader_code_count;
|
||||
}
|
||||
} //while
|
||||
|
||||
if(!(flag_extra_block_marker_was_found & flags))
|
||||
{
|
||||
for(GLuint n = start_shader_code; n < extra_code_count + start_shader_code; ++n)
|
||||
{
|
||||
shader_code_text[n] = extra_code_text[n - start_shader_code];
|
||||
}
|
||||
|
||||
if (file_lines_count < extra_code_count)
|
||||
{
|
||||
shader_code_count += extra_code_count;
|
||||
}
|
||||
|
||||
extra_code_count = 0;
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
|
||||
//create shader object
|
||||
|
|
@ -793,7 +870,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
}
|
||||
|
||||
//load source
|
||||
glShaderSourceARB(ret, count, (const GLcharARB**) text, NULL);
|
||||
glShaderSourceARB(ret, shader_code_count, (const GLcharARB**) shader_code_text, NULL);
|
||||
|
||||
if (gDebugGL)
|
||||
{
|
||||
|
|
@ -832,9 +909,9 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
#if LL_WINDOWS
|
||||
std::stringstream ostr;
|
||||
//dump shader source for debugging
|
||||
for (GLuint i = 0; i < count; i++)
|
||||
for (GLuint i = 0; i < shader_code_count; i++)
|
||||
{
|
||||
ostr << i << ": " << text[i];
|
||||
ostr << i << ": " << shader_code_text[i];
|
||||
|
||||
if (i % 128 == 0)
|
||||
{ //dump every 128 lines
|
||||
|
|
@ -849,8 +926,8 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
#else
|
||||
std::string str;
|
||||
|
||||
for (GLuint i = 0; i < count; i++) {
|
||||
str.append(text[i]);
|
||||
for (GLuint i = 0; i < shader_code_count; i++) {
|
||||
str.append(shader_code_text[i]);
|
||||
|
||||
if (i % 128 == 0)
|
||||
{
|
||||
|
|
@ -859,7 +936,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
ret = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -871,9 +948,9 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
stop_glerror();
|
||||
|
||||
//free memory
|
||||
for (GLuint i = 0; i < count; i++)
|
||||
for (GLuint i = 0; i < shader_code_count; i++)
|
||||
{
|
||||
free(text[i]);
|
||||
free(shader_code_text[i]);
|
||||
}
|
||||
|
||||
//successfully loaded, save results
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ private:
|
|||
void authResponse(LLPluginMessage &message);
|
||||
|
||||
void keyEvent(dullahan::EKeyEvent key_event, LLSD native_key_data);
|
||||
void unicodeInput(LLSD native_key_data);
|
||||
void unicodeInput(std::string event, LLSD native_key_data);
|
||||
|
||||
void checkEditState();
|
||||
void setVolume();
|
||||
|
|
@ -449,7 +449,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
|
|||
|
||||
dullahan::dullahan_settings settings;
|
||||
settings.accept_language_list = mHostLanguage;
|
||||
settings.background_color = 0xffffff;
|
||||
settings.background_color = 0xffffffff;
|
||||
settings.cache_enabled = true;
|
||||
settings.cache_path = mCachePath;
|
||||
settings.cookie_store_path = mCookiePath;
|
||||
|
|
@ -604,8 +604,9 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
|
|||
}
|
||||
else if (message_name == "text_event")
|
||||
{
|
||||
std::string event = message_in.getValue("event");
|
||||
LLSD native_key_data = message_in.getValueLLSD("native_key_data");
|
||||
unicodeInput(native_key_data);
|
||||
unicodeInput(event, native_key_data);
|
||||
}
|
||||
else if (message_name == "key_event")
|
||||
{
|
||||
|
|
@ -744,9 +745,14 @@ void MediaPluginCEF::keyEvent(dullahan::EKeyEvent key_event, LLSD native_key_dat
|
|||
U32 event_umodchars = native_key_data["event_umodchars"].asInteger();
|
||||
bool event_isrepeat = native_key_data["event_isrepeat"].asBoolean();
|
||||
|
||||
mCEFLib->nativeKeyboardEventOSX(key_event, event_modifiers,
|
||||
event_keycode, event_chars,
|
||||
event_umodchars, event_isrepeat);
|
||||
// adding new code below in unicodeInput means we don't send ascii chars
|
||||
// here too or we get double key presses on a mac.
|
||||
if (((unsigned char)event_chars < 0x20 || (unsigned char)event_chars >= 0x7f ))
|
||||
{
|
||||
mCEFLib->nativeKeyboardEventOSX(key_event, event_modifiers,
|
||||
event_keycode, event_chars,
|
||||
event_umodchars, event_isrepeat);
|
||||
}
|
||||
#elif LL_WINDOWS
|
||||
U32 msg = ll_U32_from_sd(native_key_data["msg"]);
|
||||
U32 wparam = ll_U32_from_sd(native_key_data["w_param"]);
|
||||
|
|
@ -765,13 +771,31 @@ void MediaPluginCEF::keyEvent(dullahan::EKeyEvent key_event, LLSD native_key_dat
|
|||
mCEFLib->nativeKeyboardEvent(key_event, native_scan_code, native_virtual_key, native_modifiers);
|
||||
#endif
|
||||
// </FS:ND>
|
||||
}
|
||||
void MediaPluginCEF::unicodeInput(LLSD native_key_data = LLSD::emptyMap())
|
||||
};
|
||||
|
||||
void MediaPluginCEF::unicodeInput(std::string event, LLSD native_key_data = LLSD::emptyMap())
|
||||
{
|
||||
#if LL_DARWIN
|
||||
// code to send keys here doesn't seem to be required for Darwin - in fact,
|
||||
// not having reliable key event type info here means we don't know what to send anyway
|
||||
// i didn't think this code was needed for macOS but without it, the IME
|
||||
// input in japanese (and likely others too) doesn't work correctly.
|
||||
// see maint-7654
|
||||
U32 event_modifiers = native_key_data["event_modifiers"].asInteger();
|
||||
U32 event_keycode = native_key_data["event_keycode"].asInteger();
|
||||
U32 event_chars = native_key_data["event_chars"].asInteger();
|
||||
U32 event_umodchars = native_key_data["event_umodchars"].asInteger();
|
||||
bool event_isrepeat = native_key_data["event_isrepeat"].asBoolean();
|
||||
|
||||
dullahan::EKeyEvent key_event = dullahan::KE_KEY_UP;
|
||||
if (event == "down")
|
||||
{
|
||||
key_event = dullahan::KE_KEY_DOWN;
|
||||
}
|
||||
|
||||
mCEFLib->nativeKeyboardEventOSX(key_event, event_modifiers,
|
||||
event_keycode, event_chars,
|
||||
event_umodchars, event_isrepeat);
|
||||
#elif LL_WINDOWS
|
||||
event = ""; // not needed here but prevents unused var warning as error
|
||||
U32 msg = ll_U32_from_sd(native_key_data["msg"]);
|
||||
U32 wparam = ll_U32_from_sd(native_key_data["w_param"]);
|
||||
U64 lparam = ll_U32_from_sd(native_key_data["l_param"]);
|
||||
|
|
|
|||
|
|
@ -16495,9 +16495,9 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>UpdaterServiceCheckPeriod</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Default period between update checking.</string>
|
||||
<string>Obsolete; no longer used.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
|
|
@ -16517,7 +16517,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>UpdaterServicePath</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Path on the update server host.</string>
|
||||
<string>Obsolete: no longer used</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#define INDEXED 1
|
||||
#define NON_INDEXED 2
|
||||
#define NON_INDEXED_NO_COLOR 3
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -23,16 +23,20 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//class 1 -- no shadows
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
#define frag_color gl_FragColor
|
||||
#endif
|
||||
|
||||
//class 1 -- no shadows
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
uniform sampler2DRect diffuseRect;
|
||||
uniform sampler2DRect specularRect;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_data[3];
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -23,13 +23,15 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
#define frag_color gl_FragColor
|
||||
#endif
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
uniform sampler2D glowMap;
|
||||
uniform sampler2DRect screenMap;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@
|
|||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
|
|||
if ( ! llHashedUniqueID(hashed_unique_id_string) )
|
||||
{
|
||||
|
||||
LL_WARNS() << "Not providing a unique id in request params" << LL_ENDL;
|
||||
LL_WARNS("LLLogin") << "Not providing a unique id in request params" << LL_ENDL;
|
||||
|
||||
}
|
||||
request_params["start"] = construct_start_string();
|
||||
|
|
@ -262,7 +262,7 @@ bool LLLoginInstance::handleLoginEvent(const LLSD& event)
|
|||
|
||||
if(!(event.has("state") && event.has("change") && event.has("progress")))
|
||||
{
|
||||
LL_ERRS() << "Unknown message from LLLogin: " << event << LL_ENDL;
|
||||
LL_ERRS("LLLogin") << "Unknown message from LLLogin: " << event << LL_ENDL;
|
||||
}
|
||||
|
||||
mLoginState = event["state"].asString();
|
||||
|
|
@ -288,6 +288,9 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
LLSD response = event["data"];
|
||||
std::string reason_response = response["reason"].asString();
|
||||
std::string message_response = response["message"].asString();
|
||||
LL_DEBUGS("LLLogin") << "reason " << reason_response
|
||||
<< " message " << message_response
|
||||
<< LL_ENDL;
|
||||
// For the cases of critical message or TOS agreement,
|
||||
// start the TOS dialog. The dialog response will be handled
|
||||
// by the LLLoginInstance::handleTOSResponse() callback.
|
||||
|
|
@ -295,7 +298,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
// to reconnect or to end the attempt in failure.
|
||||
if(reason_response == "tos")
|
||||
{
|
||||
LL_INFOS() << "LLLoginInstance::handleLoginFailure ToS" << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << " ToS" << LL_ENDL;
|
||||
|
||||
LLSD data(LLSD::emptyMap());
|
||||
data["message"] = message_response;
|
||||
|
|
@ -310,7 +313,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
}
|
||||
else if(reason_response == "critical")
|
||||
{
|
||||
LL_INFOS() << "LLLoginInstance::handleLoginFailure Crit" << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleLoginFailure Crit" << LL_ENDL;
|
||||
|
||||
LLSD data(LLSD::emptyMap());
|
||||
data["message"] = message_response;
|
||||
|
|
@ -337,7 +340,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
// This shouldn't happen - the viewer manager should have forced an update;
|
||||
// possibly the user ran the viewer directly and bypassed the update check
|
||||
std::string required_version = response["message_args"]["VERSION"];
|
||||
LL_WARNS() << "Login failed because an update to version " << required_version << " is required." << LL_ENDL;
|
||||
LL_WARNS("LLLogin") << "Login failed because an update to version " << required_version << " is required." << LL_ENDL;
|
||||
|
||||
if (gViewerWindow)
|
||||
gViewerWindow->setShowProgress(FALSE, FALSE);
|
||||
|
|
@ -346,15 +349,17 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
data["VERSION"] = required_version;
|
||||
LLNotificationsUtil::add("RequiredUpdate", data, LLSD::emptyMap(), boost::bind(&LLLoginInstance::handleLoginDisallowed, this, _1, _2));
|
||||
}
|
||||
else if(reason_response == "key")
|
||||
else if( reason_response == "key"
|
||||
|| reason_response == "presence"
|
||||
|| reason_response == "connect"
|
||||
)
|
||||
{
|
||||
// this is a password problem or other restriction
|
||||
// an appropriate message has already been displayed
|
||||
// these are events that have already been communicated elsewhere
|
||||
attemptComplete();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Login failed for an unknown reason: " << LLSDOStreamer<LLSDNotationFormatter>(response) << LL_ENDL;
|
||||
LL_WARNS("LLLogin") << "Login failed for an unknown reason: " << LLSDOStreamer<LLSDNotationFormatter>(response) << LL_ENDL;
|
||||
|
||||
if (gViewerWindow)
|
||||
gViewerWindow->setShowProgress(FALSE, FALSE);
|
||||
|
|
@ -370,7 +375,7 @@ void LLLoginInstance::handleLoginDisallowed(const LLSD& notification, const LLSD
|
|||
|
||||
void LLLoginInstance::handleLoginSuccess(const LLSD& event)
|
||||
{
|
||||
LL_INFOS() << "LLLoginInstance::handleLoginSuccess" << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleLoginSuccess" << LL_ENDL;
|
||||
|
||||
attemptComplete();
|
||||
}
|
||||
|
|
@ -379,7 +384,7 @@ void LLLoginInstance::handleDisconnect(const LLSD& event)
|
|||
{
|
||||
// placeholder
|
||||
|
||||
LL_INFOS() << "LLLoginInstance::handleDisconnect placeholder " << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleDisconnect placeholder " << LL_ENDL;
|
||||
}
|
||||
|
||||
void LLLoginInstance::handleIndeterminate(const LLSD& event)
|
||||
|
|
@ -393,7 +398,7 @@ void LLLoginInstance::handleIndeterminate(const LLSD& event)
|
|||
LLSD message = event.get("data").get("message");
|
||||
if(message.isDefined())
|
||||
{
|
||||
LL_INFOS() << "LLLoginInstance::handleIndeterminate " << message.asString() << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleIndeterminate " << message.asString() << LL_ENDL;
|
||||
|
||||
LLSD progress_update;
|
||||
progress_update["desc"] = message;
|
||||
|
|
@ -405,7 +410,7 @@ bool LLLoginInstance::handleTOSResponse(bool accepted, const std::string& key)
|
|||
{
|
||||
if(accepted)
|
||||
{
|
||||
LL_INFOS() << "LLLoginInstance::handleTOSResponse: accepted" << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleTOSResponse: accepted" << LL_ENDL;
|
||||
|
||||
// Set the request data to true and retry login.
|
||||
mRequestData["params"][key] = true;
|
||||
|
|
@ -413,7 +418,7 @@ bool LLLoginInstance::handleTOSResponse(bool accepted, const std::string& key)
|
|||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS() << "LLLoginInstance::handleTOSResponse: attemptComplete" << LL_ENDL;
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleTOSResponse: attemptComplete" << LL_ENDL;
|
||||
|
||||
attemptComplete();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,9 +132,9 @@ public:
|
|||
WearableEntry(LLWearableType::EType type,
|
||||
const std::string &title,
|
||||
const std::string &desc_title,
|
||||
U8 num_color_swatches, // number of 'color_swatches'
|
||||
U8 num_texture_pickers, // number of 'texture_pickers'
|
||||
U8 num_subparts, ... ); // number of subparts followed by a list of ETextureIndex and ESubparts
|
||||
const texture_vec_t& color_swatches, // 'color_swatches'
|
||||
const texture_vec_t& texture_pickers, // 'texture_pickers'
|
||||
const subpart_vec_t& subparts); // subparts
|
||||
|
||||
|
||||
const LLWearableType::EType mWearableType;
|
||||
|
|
@ -229,58 +229,40 @@ LLEditWearableDictionary::Wearables::Wearables()
|
|||
// note the subpart that is listed first is treated as "default", regardless of what order is in enum.
|
||||
// Please match the order presented in XUI. -Nyx
|
||||
// this will affect what camera angle is shown when first editing a wearable
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry(LLWearableType::WT_SHAPE,"edit_shape_title","shape_desc_text",0,0,9, SUBPART_SHAPE_WHOLE, SUBPART_SHAPE_HEAD, SUBPART_SHAPE_EYES, SUBPART_SHAPE_EARS, SUBPART_SHAPE_NOSE, SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry(LLWearableType::WT_SKIN,"edit_skin_title","skin_desc_text",0,3,4, TEX_HEAD_BODYPAINT, TEX_UPPER_BODYPAINT, TEX_LOWER_BODYPAINT, SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry(LLWearableType::WT_HAIR,"edit_hair_title","hair_desc_text",0,1,4, TEX_HAIR, SUBPART_HAIR_COLOR, SUBPART_HAIR_STYLE, SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry(LLWearableType::WT_EYES,"edit_eyes_title","eyes_desc_text",0,1,1, TEX_EYES_IRIS, SUBPART_EYES));
|
||||
addEntry(LLWearableType::WT_SHIRT, new WearableEntry(LLWearableType::WT_SHIRT,"edit_shirt_title","shirt_desc_text",1,1,1, TEX_UPPER_SHIRT, TEX_UPPER_SHIRT, SUBPART_SHIRT));
|
||||
addEntry(LLWearableType::WT_PANTS, new WearableEntry(LLWearableType::WT_PANTS,"edit_pants_title","pants_desc_text",1,1,1, TEX_LOWER_PANTS, TEX_LOWER_PANTS, SUBPART_PANTS));
|
||||
addEntry(LLWearableType::WT_SHOES, new WearableEntry(LLWearableType::WT_SHOES,"edit_shoes_title","shoes_desc_text",1,1,1, TEX_LOWER_SHOES, TEX_LOWER_SHOES, SUBPART_SHOES));
|
||||
addEntry(LLWearableType::WT_SOCKS, new WearableEntry(LLWearableType::WT_SOCKS,"edit_socks_title","socks_desc_text",1,1,1, TEX_LOWER_SOCKS, TEX_LOWER_SOCKS, SUBPART_SOCKS));
|
||||
addEntry(LLWearableType::WT_JACKET, new WearableEntry(LLWearableType::WT_JACKET,"edit_jacket_title","jacket_desc_text",1,2,1, TEX_UPPER_JACKET, TEX_UPPER_JACKET, TEX_LOWER_JACKET, SUBPART_JACKET));
|
||||
addEntry(LLWearableType::WT_GLOVES, new WearableEntry(LLWearableType::WT_GLOVES,"edit_gloves_title","gloves_desc_text",1,1,1, TEX_UPPER_GLOVES, TEX_UPPER_GLOVES, SUBPART_GLOVES));
|
||||
addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry(LLWearableType::WT_UNDERSHIRT,"edit_undershirt_title","undershirt_desc_text",1,1,1, TEX_UPPER_UNDERSHIRT, TEX_UPPER_UNDERSHIRT, SUBPART_UNDERSHIRT));
|
||||
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(LLWearableType::WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text",1,1,1, TEX_LOWER_UNDERPANTS, TEX_LOWER_UNDERPANTS, SUBPART_UNDERPANTS));
|
||||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text",1,1,1, TEX_SKIRT, TEX_SKIRT, SUBPART_SKIRT));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text",0,5,1, TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA, SUBPART_ALPHA));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text",1,3,1, TEX_HEAD_TATTOO, TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, SUBPART_TATTOO));
|
||||
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text",0,0,7, SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED));
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry(LLWearableType::WT_SHAPE,"edit_shape_title","shape_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_SHAPE_WHOLE, SUBPART_SHAPE_HEAD, SUBPART_SHAPE_EYES, SUBPART_SHAPE_EARS, SUBPART_SHAPE_NOSE, SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS}));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry(LLWearableType::WT_SKIN,"edit_skin_title","skin_desc_text", texture_vec_t(), texture_vec_t{TEX_HEAD_BODYPAINT, TEX_UPPER_BODYPAINT, TEX_LOWER_BODYPAINT}, subpart_vec_t{SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL}));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry(LLWearableType::WT_HAIR,"edit_hair_title","hair_desc_text", texture_vec_t(), texture_vec_t{TEX_HAIR}, subpart_vec_t{SUBPART_HAIR_COLOR, SUBPART_HAIR_STYLE, SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL}));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry(LLWearableType::WT_EYES,"edit_eyes_title","eyes_desc_text", texture_vec_t(), texture_vec_t{TEX_EYES_IRIS}, subpart_vec_t{SUBPART_EYES}));
|
||||
addEntry(LLWearableType::WT_SHIRT, new WearableEntry(LLWearableType::WT_SHIRT,"edit_shirt_title","shirt_desc_text", texture_vec_t{TEX_UPPER_SHIRT}, texture_vec_t{TEX_UPPER_SHIRT}, subpart_vec_t{SUBPART_SHIRT}));
|
||||
addEntry(LLWearableType::WT_PANTS, new WearableEntry(LLWearableType::WT_PANTS,"edit_pants_title","pants_desc_text", texture_vec_t{TEX_LOWER_PANTS}, texture_vec_t{TEX_LOWER_PANTS}, subpart_vec_t{SUBPART_PANTS}));
|
||||
addEntry(LLWearableType::WT_SHOES, new WearableEntry(LLWearableType::WT_SHOES,"edit_shoes_title","shoes_desc_text", texture_vec_t{TEX_LOWER_SHOES}, texture_vec_t{TEX_LOWER_SHOES}, subpart_vec_t{SUBPART_SHOES}));
|
||||
addEntry(LLWearableType::WT_SOCKS, new WearableEntry(LLWearableType::WT_SOCKS,"edit_socks_title","socks_desc_text", texture_vec_t{TEX_LOWER_SOCKS}, texture_vec_t{TEX_LOWER_SOCKS}, subpart_vec_t{SUBPART_SOCKS}));
|
||||
addEntry(LLWearableType::WT_JACKET, new WearableEntry(LLWearableType::WT_JACKET,"edit_jacket_title","jacket_desc_text", texture_vec_t{TEX_UPPER_JACKET}, texture_vec_t{TEX_UPPER_JACKET, TEX_LOWER_JACKET}, subpart_vec_t{SUBPART_JACKET}));
|
||||
addEntry(LLWearableType::WT_GLOVES, new WearableEntry(LLWearableType::WT_GLOVES,"edit_gloves_title","gloves_desc_text", texture_vec_t{TEX_UPPER_GLOVES}, texture_vec_t{TEX_UPPER_GLOVES}, subpart_vec_t{SUBPART_GLOVES}));
|
||||
addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry(LLWearableType::WT_UNDERSHIRT,"edit_undershirt_title","undershirt_desc_text", texture_vec_t{TEX_UPPER_UNDERSHIRT}, texture_vec_t{TEX_UPPER_UNDERSHIRT}, subpart_vec_t{SUBPART_UNDERSHIRT}));
|
||||
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(LLWearableType::WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text", texture_vec_t{TEX_LOWER_UNDERPANTS}, texture_vec_t{TEX_LOWER_UNDERPANTS}, subpart_vec_t{SUBPART_UNDERPANTS}));
|
||||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text", texture_vec_t{TEX_SKIRT}, texture_vec_t{TEX_SKIRT}, subpart_vec_t{SUBPART_SKIRT}));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text", texture_vec_t(), texture_vec_t{TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA}, subpart_vec_t{SUBPART_ALPHA}));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text", texture_vec_t{TEX_HEAD_TATTOO}, texture_vec_t{TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO}, subpart_vec_t{SUBPART_TATTOO}));
|
||||
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED}));
|
||||
}
|
||||
|
||||
LLEditWearableDictionary::WearableEntry::WearableEntry(LLWearableType::EType type,
|
||||
const std::string &title,
|
||||
const std::string &desc_title,
|
||||
U8 num_color_swatches,
|
||||
U8 num_texture_pickers,
|
||||
U8 num_subparts, ... ) :
|
||||
const texture_vec_t& color_swatches,
|
||||
const texture_vec_t& texture_pickers,
|
||||
const subpart_vec_t& subparts) :
|
||||
LLDictionaryEntry(title),
|
||||
mWearableType(type),
|
||||
mTitle(title),
|
||||
mDescTitle(desc_title)
|
||||
{
|
||||
va_list argp;
|
||||
va_start(argp, num_subparts);
|
||||
|
||||
for (U8 i = 0; i < num_color_swatches; ++i)
|
||||
{
|
||||
ETextureIndex index = (ETextureIndex)va_arg(argp,int);
|
||||
mColorSwatchCtrls.push_back(index);
|
||||
}
|
||||
|
||||
for (U8 i = 0; i < num_texture_pickers; ++i)
|
||||
{
|
||||
ETextureIndex index = (ETextureIndex)va_arg(argp,int);
|
||||
mTextureCtrls.push_back(index);
|
||||
}
|
||||
|
||||
for (U8 i = 0; i < num_subparts; ++i)
|
||||
{
|
||||
ESubpart part = (ESubpart)va_arg(argp,int);
|
||||
mSubparts.push_back(part);
|
||||
}
|
||||
mDescTitle(desc_title),
|
||||
mSubparts(subparts),
|
||||
mColorSwatchCtrls(color_swatches),
|
||||
mTextureCtrls(texture_pickers)
|
||||
{}
|
||||
|
||||
va_end( argp ); // <FS:ND/> Need to clean up
|
||||
}
|
||||
|
||||
LLEditWearableDictionary::Subparts::Subparts()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9206,6 +9206,21 @@ Please check your network and firewall setup.
|
|||
yestext="OK" />
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="NoVoiceConnect-GIAB"
|
||||
type="alertmodal">
|
||||
We're having trouble connecting to your voice server.
|
||||
|
||||
Voice communications will not be available.
|
||||
Please check your network and firewall setup.
|
||||
<tag>voice</tag>
|
||||
<tag>fail</tag>
|
||||
<usetemplate
|
||||
name="okbutton"
|
||||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="AvatarRezLeftNotification"
|
||||
|
|
|
|||
|
|
@ -36,11 +36,12 @@ import re
|
|||
import tarfile
|
||||
import time
|
||||
import random
|
||||
#AO
|
||||
import shlex
|
||||
import subprocess
|
||||
|
||||
#<FS:AO>
|
||||
import shlex
|
||||
import zipfile
|
||||
#/AO
|
||||
#</FS:AO>
|
||||
|
||||
from fs_viewer_manifest import FSViewerManifest #<FS:ND/> Manifest extensions for Firestorm
|
||||
|
||||
|
|
@ -232,6 +233,7 @@ class ViewerManifest(LLManifest,FSViewerManifest):
|
|||
"Channel Base": CHANNEL_VENDOR_BASE,
|
||||
"Channel":self.channel_with_pkg_suffix(),
|
||||
"Platform":self.build_data_json_platform,
|
||||
"Address Size":self.address_size,
|
||||
"Update Service":"https://update.secondlife.com/update",
|
||||
}
|
||||
build_data_dict = self.finish_build_data_dict(build_data_dict)
|
||||
|
|
@ -396,9 +398,9 @@ class WindowsManifest(ViewerManifest):
|
|||
else:
|
||||
test_assembly_binding(src, "Microsoft.VC80.CRT", "")
|
||||
raise Exception("Unknown condition")
|
||||
except NoManifestException, err:
|
||||
except NoManifestException as err:
|
||||
pass
|
||||
except NoMatchingAssemblyException, err:
|
||||
except NoMatchingAssemblyException as err:
|
||||
pass
|
||||
|
||||
self.ccopy(src,dst)
|
||||
|
|
@ -462,14 +464,14 @@ class WindowsManifest(ViewerManifest):
|
|||
self.path('libaprutil-1.dll')
|
||||
self.path('libapriconv-1.dll')
|
||||
|
||||
except RuntimeError, err:
|
||||
except RuntimeError as err:
|
||||
print err.message
|
||||
print "Skipping llcommon.dll (assuming llcommon was linked statically)"
|
||||
|
||||
# Mesh 3rd party libs needed for auto LOD and collada reading
|
||||
try:
|
||||
self.path("glod.dll")
|
||||
except RuntimeError, err:
|
||||
except RuntimeError as err:
|
||||
print err.message
|
||||
print "Skipping GLOD library (assumming linked statically)"
|
||||
|
||||
|
|
@ -825,7 +827,7 @@ class WindowsManifest(ViewerManifest):
|
|||
for attempt in xrange(nsis_attempts):
|
||||
try:
|
||||
self.run_command('"' + NSIS_path + '" /V2 ' + self.dst_path_of(tempfile))
|
||||
except ManifestError, err:
|
||||
except ManifestError as err:
|
||||
if attempt+1 < nsis_attempts:
|
||||
print >> sys.stderr, "nsis failed, waiting %d seconds before retrying" % nsis_retry_wait
|
||||
time.sleep(nsis_retry_wait)
|
||||
|
|
@ -1240,7 +1242,11 @@ class DarwinManifest(ViewerManifest):
|
|||
'vol':volname})
|
||||
|
||||
# mount the image and get the name of the mount point and device node
|
||||
hdi_output = self.run_command('hdiutil attach -private %r' % sparsename)
|
||||
try:
|
||||
hdi_output = subprocess.check_output(['hdiutil', 'attach', '-private', sparsename])
|
||||
except subprocess.CalledProcessError as err:
|
||||
sys.exit("failed to mount image at '%s'" % sparsename)
|
||||
|
||||
try:
|
||||
devfile = re.search("/dev/disk([0-9]+)[^s]", hdi_output).group(0).strip()
|
||||
volpath = re.search('HFS\s+(.+)', hdi_output).group(1).strip()
|
||||
|
|
@ -1373,7 +1379,7 @@ class DarwinManifest(ViewerManifest):
|
|||
'bundle': app_in_dmg
|
||||
})
|
||||
signed=True # if no exception was raised, the codesign worked
|
||||
except ManifestError, err:
|
||||
except ManifestError as err:
|
||||
if sign_attempts:
|
||||
print >> sys.stderr, "codesign failed, waiting %d seconds before retrying" % sign_retry_wait
|
||||
time.sleep(sign_retry_wait)
|
||||
|
|
@ -1875,7 +1881,7 @@ def symlinkf(src, dst):
|
|||
"""
|
||||
try:
|
||||
os.symlink(src, dst)
|
||||
except OSError, err:
|
||||
except OSError as err:
|
||||
if err.errno != errno.EEXIST:
|
||||
raise
|
||||
# We could just blithely attempt to remove and recreate the target
|
||||
|
|
|
|||
Loading…
Reference in New Issue