Merge branch 'master' of https://bitbucket.org/Ansariel/phoenix-firestorm-600
# Conflicts: # indra/llimage/llimage.cpp # indra/llimage/llimage.h # indra/llmath/llvolume.cpp # indra/llmath/llvolume.h # indra/llprimitive/llgltfmaterial.h # indra/llrender/llshadermgr.cpp # indra/newview/lldynamictexture.cpp # indra/newview/llenvironment.cpp # indra/newview/llfetchedgltfmaterial.cpp # indra/newview/llfloaterimagepreview.h # indra/newview/llfloaterregioninfo.cpp # indra/newview/llfloaterregioninfo.h # indra/newview/llmaniprotate.cpp # indra/newview/llmaniptranslate.cpp # indra/newview/llselectmgr.cpp # indra/newview/llselectmgr.h # indra/newview/llsurface.cpp # indra/newview/llsurface.h # indra/newview/llsurfacepatch.cpp # indra/newview/lltexturectrl.cpp # indra/newview/lltexturectrl.h # indra/newview/lltinygltfhelper.cpp # indra/newview/llviewerdisplay.cpp # indra/newview/llviewerregion.cpp # indra/newview/llviewerwindow.cpp # indra/newview/llviewerwindow.h # indra/newview/llvlcomposition.cpp # indra/newview/llvlcomposition.h # indra/newview/llvovolume.cpp # indra/newview/pipeline.cppmaster
commit
508ab2df1c
210
autobuild.xml
210
autobuild.xml
|
|
@ -456,11 +456,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>8539775e0a0783bd252bc548b20b3472a8254c31</string>
|
||||
<string>d8d9e1e15ec09c81acfa9ffb80c3f20435373543</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-boost/releases/download/v1.81-09d25a7/boost-1.81-darwin64-09d25a7.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-boost/releases/download/v1.84.0-r1/boost-1.84-darwin64-8499892512.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -470,11 +470,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>a3bfbdba7e1977e7e65266ec654990bb13994bd3</string>
|
||||
<string>a5552fcd343179c4c7d6dd6289675431a8c0fe8d</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-boost/releases/download/v1.81-3d0d7fc/boost-1.81-linux64-3d0d7fc.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-boost/releases/download/v1.84.0-r1/boost-1.84-linux64-8499892512.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -484,11 +484,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>d40c86fbcb6ce064d546165cbabbf035ea80e07b</string>
|
||||
<string>5af9c69093e171eda552720a7acd570496db17db</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-boost/releases/download/v1.81-09d25a7/boost-1.81-windows64-09d25a7.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-boost/releases/download/v1.84.0-r1/boost-1.84-windows64-8499892512.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -562,11 +562,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>b1bb8a9c8d458d8842d79f9633fb61df12f1b0ad</string>
|
||||
<string>fd656d2478728c4fc268478ec40d33b0ed1b7d83</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3.ab0c124/colladadom-2.3.ab0c124-darwin64-ab0c124.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r4/colladadom-2.3.8500178177-darwin64-8500178177.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -576,11 +576,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>cab0237b5194254c0c0ff6bf77bc6a2f946d4f57</string>
|
||||
<string>aebc0ddcae18852e78143fbac793cd4a32f0f251</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-2f532e1/colladadom-2.3.2f532e1-linux64-2f532e1.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r4/colladadom-2.3.8500178177-linux64-8500178177.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -590,11 +590,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>0df4c05d4efa3019afa4cbf09599df60b586fc5c</string>
|
||||
<string>3b25739b1a923c2edcf19864a1c82aeb5042567b</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3.ab0c124/colladadom-2.3.ab0c124-windows64-ab0c124.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r4/colladadom-2.3.8500178177-windows64-8500178177.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -1121,64 +1121,6 @@
|
|||
<key>description</key>
|
||||
<string>glh - is a platform-indepenedent C++ OpenGL helper library</string>
|
||||
</map>
|
||||
<key>googlemock</key>
|
||||
<map>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>dce3174b12136746f5f910e311e895c1b47bf8fb</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-googlemock/releases/download/v1.7.0.2b109d4/googlemock-1.7.0.2b109d4-darwin64-2b109d4.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
</map>
|
||||
<key>linux64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ff459b58695c76838782847a0b792104</string>
|
||||
<key>url</key>
|
||||
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/9697/45717/googlemock-1.7.0.509686-linux64-509686.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
</map>
|
||||
<key>windows64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>265813f84b04c3b03f3d7d33e149b3d5e3cf31db</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-googlemock/releases/download/v1.7.0.2b109d4/googlemock-1.7.0.2b109d4-windows64-2b109d4.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>BSD</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/gmock.txt</string>
|
||||
<key>copyright</key>
|
||||
<string>Copyright 2008, Google Inc.</string>
|
||||
<key>version</key>
|
||||
<string>1.7.0.2b109d4</string>
|
||||
<key>name</key>
|
||||
<string>googlemock</string>
|
||||
<key>description</key>
|
||||
<string>a library for writing and using C++ mock classes</string>
|
||||
</map>
|
||||
<key>havok-source</key>
|
||||
<map>
|
||||
<key>platforms</key>
|
||||
|
|
@ -1421,66 +1363,6 @@
|
|||
<key>description</key>
|
||||
<string>JPEG encoding, decoding library</string>
|
||||
</map>
|
||||
<key>jsoncpp</key>
|
||||
<map>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>07761ab01e61d5d6b40d303ffafd85ec055ec9f7</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-jsoncpp/releases/download/v0.5.0.bc46e62/jsoncpp-0.5.0.bc46e62-darwin64-bc46e62.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
</map>
|
||||
<key>linux64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>66dce1d0c2fc19dff13db279d973773fc7e2aa13</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-jsoncpp/releases/download/v0.5.0-cc63e92/jsoncpp-0.5.0.cc63e92-linux64-cc63e92.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
</map>
|
||||
<key>windows64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>500e455b210d6bc4985185cef2472987ed3034bf</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-jsoncpp/releases/download/v0.5.0.bc46e62/jsoncpp-0.5.0.bc46e62-windows64-bc46e62.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>public domain</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/jsoncpp.txt</string>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2007-2010 Baptiste Lepilleur</string>
|
||||
<key>version</key>
|
||||
<string>0.5.0.bc46e62</string>
|
||||
<key>name</key>
|
||||
<string>jsoncpp</string>
|
||||
<key>description</key>
|
||||
<string>jsoncpp is an implementation of a JSON (http://json.org) reader and writer in C++.</string>
|
||||
</map>
|
||||
<key>kdu</key>
|
||||
<map>
|
||||
<key>platforms</key>
|
||||
|
|
@ -1944,6 +1826,18 @@
|
|||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
</map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>2e5f1f7046a49d8b0bc295aa878116bc</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/60043/564063/llphysicsextensions_stub-1.0.542456-windows-542456.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>internal</string>
|
||||
|
|
@ -2467,18 +2361,42 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
</map>
|
||||
<key>openal</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (C) 1999-2007 by authors.</string>
|
||||
<key>description</key>
|
||||
<string>OpenAL Soft is a software implementation of the OpenAL 3D audio API.</string>
|
||||
<key>license</key>
|
||||
<string>LGPL2</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/openal-soft.txt</string>
|
||||
<key>name</key>
|
||||
<string>openal</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>191e4ef07a35f7147708415465191ce7622e3012</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-8668009/openal-1.23.1-darwin64-8979520327.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
</map>
|
||||
<key>linux64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>e0fbc4874acc4167a6e2b6489fbb8258d98fd665</string>
|
||||
<string>3bd8c9028ef42bdb43c7422e7d324e213fdb081e</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-linux64-18e315c.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-8668009/openal-1.23.1-linux64-8979520327.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2488,42 +2406,18 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>6ae3b5310eb1988741bc55416681ca9d64f76f85</string>
|
||||
<string>4b849609abec790e89be5fad8ddee3717ee301c4</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-windows64-18e315c.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-8668009/openal-1.23.1-windows64-8979520327.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
<key>darwin64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>4edaef5f03a1122eae8467c4a04d9caccaaaf847</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-darwin64-18e315c.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>LGPL2</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/openal-soft.txt</string>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (C) 1999-2007 by authors.</string>
|
||||
<key>version</key>
|
||||
<string>1.23.1</string>
|
||||
<key>name</key>
|
||||
<string>openal</string>
|
||||
<key>description</key>
|
||||
<string>OpenAL Soft is a software implementation of the OpenAL 3D audio API.</string>
|
||||
</map>
|
||||
<key>openjpeg</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -28,11 +28,9 @@ set(cmake_SOURCE_FILES
|
|||
GLEXT.cmake
|
||||
GLH.cmake
|
||||
GLOD.cmake # <FS:Ansariel> Bring back GLOD
|
||||
GoogleMock.cmake
|
||||
Havok.cmake
|
||||
Hunspell.cmake
|
||||
ICU4C.cmake
|
||||
JsonCpp.cmake
|
||||
LLAddBuildTest.cmake
|
||||
LLAppearance.cmake
|
||||
LLAudio.cmake
|
||||
|
|
|
|||
|
|
@ -226,6 +226,10 @@ elseif(DARWIN)
|
|||
set(release_files ${release_files} libfmod.dylib)
|
||||
endif ()
|
||||
|
||||
if (TARGET ll::openal)
|
||||
list(APPEND release_files libalut.dylib libopenal.dylib)
|
||||
endif ()
|
||||
|
||||
elseif(LINUX)
|
||||
# linux is weird, multiple side by side configurations aren't supported
|
||||
# and we don't seem to have any debug shared libs built yet anyways...
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
# -*- cmake -*-
|
||||
include(Prebuilt)
|
||||
include(Linking)
|
||||
|
||||
include_guard()
|
||||
|
||||
add_library( ll::googlemock INTERFACE IMPORTED )
|
||||
if(USE_CONAN)
|
||||
target_link_libraries( ll::googlemock INTERFACE CONAN_PKG::gtest )
|
||||
|
||||
#Not very nice, but for the moment we need this for tut.hpp
|
||||
target_include_directories( ll::googlemock SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
|
||||
return()
|
||||
endif()
|
||||
|
||||
use_prebuilt_binary(googlemock)
|
||||
|
||||
target_include_directories( ll::googlemock SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
|
||||
|
||||
if (LINUX)
|
||||
# VWR-24366: gmock is underlinked, it needs gtest.
|
||||
target_link_libraries( ll::googlemock INTERFACE gmock gtest)
|
||||
elseif(WINDOWS)
|
||||
target_link_libraries( ll::googlemock INTERFACE gmock)
|
||||
target_include_directories( ll::googlemock SYSTEM INTERFACE
|
||||
${LIBS_PREBUILT_DIR}/include
|
||||
${LIBS_PREBUILT_DIR}/include/gmock)
|
||||
elseif(DARWIN)
|
||||
target_link_libraries( ll::googlemock INTERFACE gmock gtest)
|
||||
endif(LINUX)
|
||||
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# -*- cmake -*-
|
||||
|
||||
include(Prebuilt)
|
||||
include_guard()
|
||||
add_library( ll::jsoncpp INTERFACE IMPORTED )
|
||||
|
||||
use_system_binary(jsoncpp)
|
||||
|
||||
use_prebuilt_binary(jsoncpp)
|
||||
if (WINDOWS)
|
||||
target_link_libraries( ll::jsoncpp INTERFACE json_libmd.lib )
|
||||
elseif (DARWIN)
|
||||
target_link_libraries( ll::jsoncpp INTERFACE libjson_darwin_libmt.a )
|
||||
elseif (LINUX)
|
||||
target_link_libraries( ll::jsoncpp INTERFACE libjson_linux-gcc-11_libmt.a )
|
||||
endif (WINDOWS)
|
||||
target_include_directories( ll::jsoncpp SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
|
||||
|
|
@ -1,11 +1,6 @@
|
|||
# -*- cmake -*-
|
||||
include(00-Common)
|
||||
include(LLTestCommand)
|
||||
|
||||
# <FS:ND> Google Mock/Test is not used
|
||||
#include(GoogleMock)
|
||||
# </FS:ND>
|
||||
|
||||
include(bugsplat)
|
||||
include(Tut)
|
||||
|
||||
|
|
@ -23,10 +18,6 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
|
|||
#
|
||||
# More info and examples at: https://wiki.secondlife.com/wiki/How_to_add_unit_tests_to_indra_code
|
||||
|
||||
# This here looks weird, but is needed. It will inject GoogleMock into projects that forgot to include `this` (LLAddBuildTest.cmake)
|
||||
# But through some other means have access to this macro
|
||||
include(GoogleMock)
|
||||
|
||||
if(LL_TEST_VERBOSE)
|
||||
message("LL_ADD_PROJECT_UNIT_TESTS UNITTEST_PROJECT_${project} sources: ${sources}")
|
||||
endif()
|
||||
|
|
@ -45,7 +36,6 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
|
|||
|
||||
set(alltest_LIBRARIES
|
||||
llcommon
|
||||
ll::googlemock
|
||||
)
|
||||
if(NOT "${project}" STREQUAL "llmath")
|
||||
# add llmath as a dep unless the tested module *is* llmath!
|
||||
|
|
@ -208,7 +198,6 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
|
|||
|
||||
set(libraries
|
||||
${library_dependencies}
|
||||
ll::googlemock
|
||||
)
|
||||
|
||||
# Add test executable build target
|
||||
|
|
|
|||
|
|
@ -6,6 +6,5 @@ include(EXPAT)
|
|||
include(Tracy)
|
||||
include(xxHash)
|
||||
include(ZLIBNG)
|
||||
include(JsonCpp)
|
||||
|
||||
include(XmlRpcEpi)
|
||||
|
|
|
|||
|
|
@ -39,6 +39,9 @@ if (USE_OPENAL)
|
|||
alut
|
||||
)
|
||||
else()
|
||||
message(FATAL_ERROR "OpenAL is not available for this platform")
|
||||
target_link_libraries( ll::openal INTERFACE
|
||||
openal
|
||||
alut
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#
|
||||
# Platform variables:
|
||||
#
|
||||
# DARWIN - Mac OS X
|
||||
# DARWIN - macOS
|
||||
# LINUX - Linux
|
||||
# WINDOWS - Windows
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ BASE_ARGUMENTS=[
|
|||
dict(name='build', description='Build directory.', default=DEFAULT_SRCTREE),
|
||||
dict(name='buildtype', description='Build type (i.e. Debug, Release, RelWithDebInfo).', default=None),
|
||||
dict(name='bundleid',
|
||||
description="""The Mac OS X Bundle identifier.""",
|
||||
description="""The macOS Bundle identifier.""",
|
||||
default="com.secondlife.indra.viewer"),
|
||||
dict(name='channel',
|
||||
description="""The channel to use for updates, packaging, settings name, etc.""",
|
||||
|
|
@ -146,7 +146,7 @@ BASE_ARGUMENTS=[
|
|||
dict(name='signature',
|
||||
description="""This specifies an identity to sign the viewer with, if any.
|
||||
If no value is supplied, the default signature will be used, if any. Currently
|
||||
only used on Mac OS X.""",
|
||||
only used on macOS.""",
|
||||
default=None),
|
||||
dict(name='source',
|
||||
description='Source directory.',
|
||||
|
|
|
|||
|
|
@ -64,19 +64,19 @@ class LLAvatarBoneInfo
|
|||
friend class LLAvatarAppearance;
|
||||
friend class LLAvatarSkeletonInfo;
|
||||
public:
|
||||
LLAvatarBoneInfo() : mIsJoint(FALSE) {}
|
||||
LLAvatarBoneInfo() : mIsJoint(false) {}
|
||||
~LLAvatarBoneInfo()
|
||||
{
|
||||
std::for_each(mChildren.begin(), mChildren.end(), DeletePointer());
|
||||
mChildren.clear();
|
||||
}
|
||||
BOOL parseXml(LLXmlTreeNode* node);
|
||||
bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
private:
|
||||
std::string mName;
|
||||
std::string mSupport;
|
||||
std::string mAliases;
|
||||
BOOL mIsJoint;
|
||||
bool mIsJoint;
|
||||
LLVector3 mPos;
|
||||
LLVector3 mEnd;
|
||||
LLVector3 mRot;
|
||||
|
|
@ -101,7 +101,7 @@ public:
|
|||
std::for_each(mBoneInfoList.begin(), mBoneInfoList.end(), DeletePointer());
|
||||
mBoneInfoList.clear();
|
||||
}
|
||||
BOOL parseXml(LLXmlTreeNode* node);
|
||||
bool parseXml(LLXmlTreeNode* node);
|
||||
S32 getNumBones() const { return mNumBones; }
|
||||
S32 getNumCollisionVolumes() const { return mNumCollisionVolumes; }
|
||||
|
||||
|
|
@ -164,7 +164,7 @@ LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary* LLAvatarAppearance::sAv
|
|||
|
||||
LLAvatarAppearance::LLAvatarAppearance(LLWearableData* wearable_data) :
|
||||
LLCharacter(),
|
||||
mIsDummy(FALSE),
|
||||
mIsDummy(false),
|
||||
mTexSkinColor( NULL ),
|
||||
mTexHairColor( NULL ),
|
||||
mTexEyeColor( NULL ),
|
||||
|
|
@ -175,7 +175,7 @@ LLAvatarAppearance::LLAvatarAppearance(LLWearableData* wearable_data) :
|
|||
mNumBones(0),
|
||||
mNumCollisionVolumes(0),
|
||||
mCollisionVolumes(NULL),
|
||||
mIsBuilt(FALSE),
|
||||
mIsBuilt(false),
|
||||
mInitFlags(0)
|
||||
{
|
||||
llassert_always(mWearableData);
|
||||
|
|
@ -222,14 +222,14 @@ void LLAvatarAppearance::initInstance()
|
|||
mesh->setName(mesh_name);
|
||||
mesh->setMeshID(mesh_index);
|
||||
mesh->setPickName(mesh_dict->mPickName);
|
||||
mesh->setIsTransparent(FALSE);
|
||||
mesh->setIsTransparent(false);
|
||||
switch((S32)mesh_index)
|
||||
{
|
||||
case MESH_ID_HAIR:
|
||||
mesh->setIsTransparent(TRUE);
|
||||
mesh->setIsTransparent(true);
|
||||
break;
|
||||
case MESH_ID_SKIRT:
|
||||
mesh->setIsTransparent(TRUE);
|
||||
mesh->setIsTransparent(true);
|
||||
break;
|
||||
case MESH_ID_EYEBALL_LEFT:
|
||||
case MESH_ID_EYEBALL_RIGHT:
|
||||
|
|
@ -333,7 +333,7 @@ void LLAvatarAppearance::initClass(const std::string& avatar_file_name_arg, cons
|
|||
avatar_file_name = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,AVATAR_DEFAULT_CHAR + "_lad.xml");
|
||||
}
|
||||
LLXmlTree xml_tree;
|
||||
BOOL success = xml_tree.parseFile( avatar_file_name, FALSE );
|
||||
bool success = xml_tree.parseFile( avatar_file_name, false );
|
||||
if (!success)
|
||||
{
|
||||
LL_ERRS() << "Problem reading avatar configuration file:" << avatar_file_name << LL_ENDL;
|
||||
|
|
@ -574,17 +574,17 @@ F32 LLAvatarAppearance::getAvatarOffset() /*const*/
|
|||
//-----------------------------------------------------------------------------
|
||||
// parseSkeletonFile()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::parseSkeletonFile(const std::string& filename, LLXmlTree& skeleton_xml_tree)
|
||||
bool LLAvatarAppearance::parseSkeletonFile(const std::string& filename, LLXmlTree& skeleton_xml_tree)
|
||||
{
|
||||
//-------------------------------------------------------------------------
|
||||
// parse the file
|
||||
//-------------------------------------------------------------------------
|
||||
BOOL parsesuccess = skeleton_xml_tree.parseFile( filename, FALSE );
|
||||
bool parsesuccess = skeleton_xml_tree.parseFile( filename, false );
|
||||
|
||||
if (!parsesuccess)
|
||||
{
|
||||
LL_ERRS() << "Can't parse skeleton file: " << filename << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// now sanity check xml file
|
||||
|
|
@ -592,13 +592,13 @@ BOOL LLAvatarAppearance::parseSkeletonFile(const std::string& filename, LLXmlTre
|
|||
if (!root)
|
||||
{
|
||||
LL_ERRS() << "No root node found in avatar skeleton file: " << filename << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !root->hasName( "linden_skeleton" ) )
|
||||
{
|
||||
LL_ERRS() << "Invalid avatar skeleton file header: " << filename << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string version;
|
||||
|
|
@ -606,16 +606,16 @@ BOOL LLAvatarAppearance::parseSkeletonFile(const std::string& filename, LLXmlTre
|
|||
if( !root->getFastAttributeString( version_string, version ) || ((version != "1.0") && (version != "2.0")))
|
||||
{
|
||||
LL_ERRS() << "Invalid avatar skeleton file version: " << version << " in file: " << filename << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// setupBone()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent, S32 &volume_num, S32 &joint_num)
|
||||
bool LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent, S32 &volume_num, S32 &joint_num)
|
||||
{
|
||||
LLJoint* joint = NULL;
|
||||
|
||||
|
|
@ -631,7 +631,7 @@ BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent
|
|||
if (!joint)
|
||||
{
|
||||
LL_WARNS() << "Too many bones" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
joint->setName( info->mName );
|
||||
}
|
||||
|
|
@ -640,7 +640,7 @@ BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent
|
|||
if (volume_num >= (S32)mNumCollisionVolumes)
|
||||
{
|
||||
LL_WARNS() << "Too many collision volumes" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
joint = (&mCollisionVolumes[volume_num]);
|
||||
joint->setName( info->mName );
|
||||
|
|
@ -680,17 +680,17 @@ BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent
|
|||
{
|
||||
if (!setupBone(child_info, joint, volume_num, joint_num))
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// allocateCharacterJoints()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::allocateCharacterJoints( S32 num )
|
||||
bool LLAvatarAppearance::allocateCharacterJoints( S32 num )
|
||||
{
|
||||
if (mSkeleton.size() != num)
|
||||
{
|
||||
|
|
@ -700,14 +700,14 @@ BOOL LLAvatarAppearance::allocateCharacterJoints( S32 num )
|
|||
mNumBones = num;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// buildSkeleton()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::buildSkeleton(const LLAvatarSkeletonInfo *info)
|
||||
bool LLAvatarAppearance::buildSkeleton(const LLAvatarSkeletonInfo *info)
|
||||
{
|
||||
LL_DEBUGS("BVH") << "numBones " << info->mNumBones << " numCollisionVolumes " << info->mNumCollisionVolumes << LL_ENDL;
|
||||
|
||||
|
|
@ -715,7 +715,7 @@ BOOL LLAvatarAppearance::buildSkeleton(const LLAvatarSkeletonInfo *info)
|
|||
if (!allocateCharacterJoints(info->mNumBones))
|
||||
{
|
||||
LL_ERRS() << "Can't allocate " << info->mNumBones << " joints" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// allocate volumes
|
||||
|
|
@ -724,7 +724,7 @@ BOOL LLAvatarAppearance::buildSkeleton(const LLAvatarSkeletonInfo *info)
|
|||
if (!allocateCollisionVolumes(info->mNumCollisionVolumes))
|
||||
{
|
||||
LL_ERRS() << "Can't allocate " << info->mNumCollisionVolumes << " collision volumes" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -735,11 +735,11 @@ BOOL LLAvatarAppearance::buildSkeleton(const LLAvatarSkeletonInfo *info)
|
|||
if (!setupBone(bone_info, NULL, current_volume_num, current_joint_num))
|
||||
{
|
||||
LL_ERRS() << "Error parsing bone in skeleton file" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -804,7 +804,7 @@ void LLAvatarAppearance::buildCharacter()
|
|||
//-------------------------------------------------------------------------
|
||||
mRoot->removeAllChildren();
|
||||
mJointMap.clear();
|
||||
mIsBuilt = FALSE;
|
||||
mIsBuilt = false;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// clear mesh data
|
||||
|
|
@ -822,10 +822,10 @@ void LLAvatarAppearance::buildCharacter()
|
|||
//-------------------------------------------------------------------------
|
||||
LLTimer timer;
|
||||
|
||||
BOOL status = loadAvatar();
|
||||
bool status = loadAvatar();
|
||||
stop_glerror();
|
||||
|
||||
// gPrintMessagesThisFrame = TRUE;
|
||||
// gPrintMessagesThisFrame = true;
|
||||
LL_DEBUGS() << "Avatar load took " << timer.getElapsedTimeF32() << " seconds." << LL_ENDL;
|
||||
|
||||
if (!status)
|
||||
|
|
@ -895,12 +895,12 @@ void LLAvatarAppearance::buildCharacter()
|
|||
// SL-315
|
||||
mPelvisp->setPosition( LLVector3(0.0f, 0.0f, 0.0f) );
|
||||
|
||||
mIsBuilt = TRUE;
|
||||
mIsBuilt = true;
|
||||
stop_glerror();
|
||||
|
||||
}
|
||||
|
||||
BOOL LLAvatarAppearance::loadAvatar()
|
||||
bool LLAvatarAppearance::loadAvatar()
|
||||
{
|
||||
// LL_RECORD_BLOCK_TIME(FTM_LOAD_AVATAR);
|
||||
|
||||
|
|
@ -908,7 +908,7 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
if( !buildSkeleton(sAvatarSkeletonInfo) )
|
||||
{
|
||||
LL_ERRS() << "avatar file: buildSkeleton() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// initialize mJointAliasMap
|
||||
|
|
@ -918,14 +918,14 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
if( !loadSkeletonNode() )
|
||||
{
|
||||
LL_ERRS() << "avatar file: loadNodeSkeleton() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// avatar_lad.xml : <mesh>
|
||||
if( !loadMeshNodes() )
|
||||
{
|
||||
LL_ERRS() << "avatar file: loadNodeMesh() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// avatar_lad.xml : <global_color>
|
||||
|
|
@ -935,13 +935,13 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
if( !mTexSkinColor->setInfo( sAvatarXmlInfo->mTexSkinColorInfo ) )
|
||||
{
|
||||
LL_ERRS() << "avatar file: mTexSkinColor->setInfo() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_ERRS() << "<global_color> name=\"skin_color\" not found" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if( sAvatarXmlInfo->mTexHairColorInfo )
|
||||
{
|
||||
|
|
@ -949,13 +949,13 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
if( !mTexHairColor->setInfo( sAvatarXmlInfo->mTexHairColorInfo ) )
|
||||
{
|
||||
LL_ERRS() << "avatar file: mTexHairColor->setInfo() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_ERRS() << "<global_color> name=\"hair_color\" not found" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if( sAvatarXmlInfo->mTexEyeColorInfo )
|
||||
{
|
||||
|
|
@ -963,26 +963,26 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
if( !mTexEyeColor->setInfo( sAvatarXmlInfo->mTexEyeColorInfo ) )
|
||||
{
|
||||
LL_ERRS() << "avatar file: mTexEyeColor->setInfo() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_ERRS() << "<global_color> name=\"eye_color\" not found" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// avatar_lad.xml : <layer_set>
|
||||
if (sAvatarXmlInfo->mLayerInfoList.empty())
|
||||
{
|
||||
LL_ERRS() << "avatar file: missing <layer_set> node" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (sAvatarXmlInfo->mMorphMaskInfoList.empty())
|
||||
{
|
||||
LL_ERRS() << "avatar file: missing <morph_masks> node" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// avatar_lad.xml : <morph_masks>
|
||||
|
|
@ -996,7 +996,7 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
morph_param = getVisualParam(name->c_str());
|
||||
if (morph_param)
|
||||
{
|
||||
BOOL invert = info->mInvert;
|
||||
bool invert = info->mInvert;
|
||||
addMaskedMorph(baked, morph_param, invert, info->mLayer);
|
||||
}
|
||||
}
|
||||
|
|
@ -1024,24 +1024,24 @@ BOOL LLAvatarAppearance::loadAvatar()
|
|||
{
|
||||
delete driver_param;
|
||||
LL_WARNS() << "avatar file: driver_param->parseData() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// loadSkeletonNode(): loads <skeleton> node from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::loadSkeletonNode ()
|
||||
bool LLAvatarAppearance::loadSkeletonNode ()
|
||||
{
|
||||
mRoot->addChild( mSkeleton[0] );
|
||||
|
||||
// make meshes children before calling parent version of the function
|
||||
for (LLAvatarJoint* joint : mMeshLOD)
|
||||
{
|
||||
joint->mUpdateXform = FALSE;
|
||||
joint->mUpdateXform = false;
|
||||
joint->setMeshesToChildren();
|
||||
}
|
||||
|
||||
|
|
@ -1078,7 +1078,7 @@ BOOL LLAvatarAppearance::loadSkeletonNode ()
|
|||
if (!param->setInfo(info))
|
||||
{
|
||||
delete param;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1089,13 +1089,13 @@ BOOL LLAvatarAppearance::loadSkeletonNode ()
|
|||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// loadMeshNodes(): loads <mesh> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::loadMeshNodes()
|
||||
bool LLAvatarAppearance::loadMeshNodes()
|
||||
{
|
||||
for (const LLAvatarXmlInfo::LLAvatarMeshInfo* info : sAvatarXmlInfo->mMeshInfoList)
|
||||
{
|
||||
|
|
@ -1104,7 +1104,7 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
|
||||
LLAvatarJointMesh* mesh = NULL;
|
||||
U8 mesh_id = 0;
|
||||
BOOL found_mesh_id = FALSE;
|
||||
bool found_mesh_id = false;
|
||||
|
||||
/* if (type == "hairMesh")
|
||||
switch(lod)
|
||||
|
|
@ -1117,7 +1117,7 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
if (type.compare(mesh_dict->mName) == 0)
|
||||
{
|
||||
mesh_id = mesh_index;
|
||||
found_mesh_id = TRUE;
|
||||
found_mesh_id = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1131,13 +1131,13 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
else
|
||||
{
|
||||
LL_WARNS() << "Avatar file: <mesh> has invalid lod setting " << lod << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Ignoring unrecognized mesh type: " << type << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// LL_INFOS() << "Parsing mesh data for " << type << "..." << LL_ENDL;
|
||||
|
|
@ -1160,7 +1160,7 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
{
|
||||
// This should never happen
|
||||
LL_WARNS("Avatar") << "Could not find avatar mesh: " << info->mReferenceMeshName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1172,7 +1172,7 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
if( !poly_mesh )
|
||||
{
|
||||
LL_WARNS() << "Failed to load mesh of type " << type << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Multimap insert
|
||||
|
|
@ -1187,7 +1187,7 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
if (!param->setInfo((LLPolyMorphTargetInfo*)info_pair.first))
|
||||
{
|
||||
delete param;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1205,15 +1205,15 @@ BOOL LLAvatarAppearance::loadMeshNodes()
|
|||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// loadLayerSets()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::loadLayersets()
|
||||
bool LLAvatarAppearance::loadLayersets()
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
for (LLTexLayerSetInfo* layerset_info : sAvatarXmlInfo->mLayerInfoList)
|
||||
{
|
||||
if (isSelf())
|
||||
|
|
@ -1226,7 +1226,7 @@ BOOL LLAvatarAppearance::loadLayersets()
|
|||
stop_glerror();
|
||||
delete layer_set;
|
||||
LL_WARNS() << "avatar file: layer_set->setInfo() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// scan baked textures and associate the layerset with the appropriate one
|
||||
|
|
@ -1248,7 +1248,7 @@ BOOL LLAvatarAppearance::loadLayersets()
|
|||
{
|
||||
LL_WARNS() << "<layer_set> has invalid body_region attribute" << LL_ENDL;
|
||||
delete layer_set;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// scan morph masks and let any affected layers know they have an associated morph
|
||||
|
|
@ -1257,12 +1257,12 @@ BOOL LLAvatarAppearance::loadLayersets()
|
|||
LLTexLayerInterface* layer = layer_set->findLayerByName(morph->mLayer);
|
||||
if (layer)
|
||||
{
|
||||
layer->setHasMorph(TRUE);
|
||||
layer->setHasMorph(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Could not find layer named " << morph->mLayer << " to set morph flag" << LL_ENDL;
|
||||
success = FALSE;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1355,19 +1355,19 @@ LLPolyMesh* LLAvatarAppearance::getUpperBodyMesh()
|
|||
|
||||
|
||||
// virtual
|
||||
BOOL LLAvatarAppearance::isValid() const
|
||||
bool LLAvatarAppearance::isValid() const
|
||||
{
|
||||
// This should only be called on ourself.
|
||||
if (!isSelf())
|
||||
{
|
||||
LL_ERRS() << "Called LLAvatarAppearance::isValid() on when isSelf() == false" << LL_ENDL;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// adds a morph mask to the appropriate baked texture structure
|
||||
void LLAvatarAppearance::addMaskedMorph(EBakedTextureIndex index, LLVisualParam* morph_target, BOOL invert, std::string layer)
|
||||
void LLAvatarAppearance::addMaskedMorph(EBakedTextureIndex index, LLVisualParam* morph_target, bool invert, std::string layer)
|
||||
{
|
||||
if (index < BAKED_NUM_INDICES)
|
||||
{
|
||||
|
|
@ -1378,7 +1378,7 @@ void LLAvatarAppearance::addMaskedMorph(EBakedTextureIndex index, LLVisualParam*
|
|||
|
||||
|
||||
//static
|
||||
BOOL LLAvatarAppearance::teToColorParams( ETextureIndex te, U32 *param_name )
|
||||
bool LLAvatarAppearance::teToColorParams( ETextureIndex te, U32 *param_name )
|
||||
{
|
||||
switch( te )
|
||||
{
|
||||
|
|
@ -1462,15 +1462,15 @@ BOOL LLAvatarAppearance::teToColorParams( ETextureIndex te, U32 *param_name )
|
|||
|
||||
default:
|
||||
llassert(0);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLAvatarAppearance::setClothesColor( ETextureIndex te, const LLColor4& new_color)
|
||||
void LLAvatarAppearance::setClothesColor( ETextureIndex te, const LLColor4& new_color, BOOL upload_bake)
|
||||
void LLAvatarAppearance::setClothesColor( ETextureIndex te, const LLColor4& new_color, bool upload_bake)
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
{
|
||||
U32 param_name[3];
|
||||
|
|
@ -1529,7 +1529,7 @@ LLColor4 LLAvatarAppearance::getGlobalColor( const std::string& color_name ) con
|
|||
|
||||
// Unlike most wearable functions, this works for both self and other.
|
||||
// virtual
|
||||
BOOL LLAvatarAppearance::isWearingWearableType(LLWearableType::EType type) const
|
||||
bool LLAvatarAppearance::isWearingWearableType(LLWearableType::EType type) const
|
||||
{
|
||||
return mWearableData->getWearableCount(type) > 0;
|
||||
}
|
||||
|
|
@ -1546,7 +1546,7 @@ LLTexLayerSet* LLAvatarAppearance::getAvatarLayerSet(EBakedTextureIndex baked_in
|
|||
//-----------------------------------------------------------------------------
|
||||
// allocateCollisionVolumes()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::allocateCollisionVolumes( U32 num )
|
||||
bool LLAvatarAppearance::allocateCollisionVolumes( U32 num )
|
||||
{
|
||||
if (mNumCollisionVolumes !=num)
|
||||
{
|
||||
|
|
@ -1557,27 +1557,27 @@ BOOL LLAvatarAppearance::allocateCollisionVolumes( U32 num )
|
|||
if (!mCollisionVolumes)
|
||||
{
|
||||
LL_WARNS() << "Failed to allocate collision volumes" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
mNumCollisionVolumes = num;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLAvatarBoneInfo::parseXml()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
if (node->hasName("bone"))
|
||||
{
|
||||
mIsJoint = TRUE;
|
||||
mIsJoint = true;
|
||||
static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
|
||||
if (!node->getFastAttributeString(name_string, mName))
|
||||
{
|
||||
LL_WARNS() << "Bone without name" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle aliases_string = LLXmlTree::addAttributeString("aliases");
|
||||
|
|
@ -1585,7 +1585,7 @@ BOOL LLAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
|
|||
}
|
||||
else if (node->hasName("collision_volume"))
|
||||
{
|
||||
mIsJoint = FALSE;
|
||||
mIsJoint = false;
|
||||
static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
|
||||
if (!node->getFastAttributeString(name_string, mName))
|
||||
{
|
||||
|
|
@ -1595,28 +1595,28 @@ BOOL LLAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
|
|||
else
|
||||
{
|
||||
LL_WARNS() << "Invalid node " << node->getName() << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle pos_string = LLXmlTree::addAttributeString("pos");
|
||||
if (!node->getFastAttributeVector3(pos_string, mPos))
|
||||
{
|
||||
LL_WARNS() << "Bone without position" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle rot_string = LLXmlTree::addAttributeString("rot");
|
||||
if (!node->getFastAttributeVector3(rot_string, mRot))
|
||||
{
|
||||
LL_WARNS() << "Bone without rotation" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle scale_string = LLXmlTree::addAttributeString("scale");
|
||||
if (!node->getFastAttributeVector3(scale_string, mScale))
|
||||
{
|
||||
LL_WARNS() << "Bone without scale" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle end_string = LLXmlTree::addAttributeString("end");
|
||||
|
|
@ -1639,7 +1639,7 @@ BOOL LLAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
|
|||
if (!node->getFastAttributeVector3(pivot_string, mPivot))
|
||||
{
|
||||
LL_WARNS() << "Bone without pivot" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1651,23 +1651,23 @@ BOOL LLAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
|
|||
if (!child_info->parseXml(child))
|
||||
{
|
||||
delete child_info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mChildren.push_back(child_info);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLAvatarSkeletonInfo::parseXml()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarSkeletonInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLAvatarSkeletonInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
static LLStdStringHandle num_bones_string = LLXmlTree::addAttributeString("num_bones");
|
||||
if (!node->getFastAttributeS32(num_bones_string, mNumBones))
|
||||
{
|
||||
LL_WARNS() << "Couldn't find number of bones." << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle num_collision_volumes_string = LLXmlTree::addAttributeString("num_collision_volumes");
|
||||
|
|
@ -1681,11 +1681,11 @@ BOOL LLAvatarSkeletonInfo::parseXml(LLXmlTreeNode* node)
|
|||
{
|
||||
delete info;
|
||||
LL_WARNS() << "Error parsing bone in skeleton file" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mBoneInfoList.push_back(info);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//Make aliases for joint and push to map.
|
||||
|
|
@ -1753,13 +1753,13 @@ const LLAvatarAppearance::joint_alias_map_t& LLAvatarAppearance::getJointAliases
|
|||
//-----------------------------------------------------------------------------
|
||||
// parseXmlSkeletonNode(): parses <skeleton> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* root)
|
||||
bool LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* root)
|
||||
{
|
||||
LLXmlTreeNode* node = root->getChildByName( "skeleton" );
|
||||
if( !node )
|
||||
{
|
||||
LL_WARNS() << "avatar file: missing <skeleton>" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLXmlTreeNode* child;
|
||||
|
|
@ -1779,14 +1779,14 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* ro
|
|||
{
|
||||
LL_WARNS() << "Unknown param type." << LL_ENDL;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLPolySkeletalDistortionInfo *info = new LLPolySkeletalDistortionInfo;
|
||||
if (!info->parseXml(child))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
mSkeletalDistortionInfoList.push_back(info);
|
||||
|
|
@ -1804,7 +1804,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* ro
|
|||
{
|
||||
LL_WARNS() << "No name supplied for attachment point." << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle joint_string = LLXmlTree::addAttributeString("joint");
|
||||
|
|
@ -1812,19 +1812,19 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* ro
|
|||
{
|
||||
LL_WARNS() << "No bone declared in attachment point " << info->mName << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle position_string = LLXmlTree::addAttributeString("position");
|
||||
if (child->getFastAttributeVector3(position_string, info->mPosition))
|
||||
{
|
||||
info->mHasPosition = TRUE;
|
||||
info->mHasPosition = true;
|
||||
}
|
||||
|
||||
static LLStdStringHandle rotation_string = LLXmlTree::addAttributeString("rotation");
|
||||
if (child->getFastAttributeVector3(rotation_string, info->mRotationEuler))
|
||||
{
|
||||
info->mHasRotation = TRUE;
|
||||
info->mHasRotation = true;
|
||||
}
|
||||
static LLStdStringHandle group_string = LLXmlTree::addAttributeString("group");
|
||||
if (child->getFastAttributeS32(group_string, info->mGroup))
|
||||
|
|
@ -1838,7 +1838,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* ro
|
|||
{
|
||||
LL_WARNS() << "No id supplied for attachment point " << info->mName << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle slot_string = LLXmlTree::addAttributeString("pie_slice");
|
||||
|
|
@ -1853,13 +1853,13 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* ro
|
|||
mAttachmentInfoList.push_back(info);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// parseXmlMeshNodes(): parses <mesh> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
||||
bool LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
||||
{
|
||||
for (LLXmlTreeNode* node = root->getChildByName( "mesh" );
|
||||
node;
|
||||
|
|
@ -1873,7 +1873,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
|||
{
|
||||
LL_WARNS() << "Avatar file: <mesh> is missing type attribute. Ignoring element. " << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE; // Ignore this element
|
||||
return false; // Ignore this element
|
||||
}
|
||||
|
||||
static LLStdStringHandle lod_string = LLXmlTree::addAttributeString("lod");
|
||||
|
|
@ -1881,7 +1881,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
|||
{
|
||||
LL_WARNS() << "Avatar file: <mesh> is missing lod attribute. Ignoring element. " << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE; // Ignore this element
|
||||
return false; // Ignore this element
|
||||
}
|
||||
|
||||
static LLStdStringHandle file_name_string = LLXmlTree::addAttributeString("file_name");
|
||||
|
|
@ -1889,7 +1889,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
|||
{
|
||||
LL_WARNS() << "Avatar file: <mesh> is missing file_name attribute. Ignoring: " << info->mType << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE; // Ignore this element
|
||||
return false; // Ignore this element
|
||||
}
|
||||
|
||||
static LLStdStringHandle reference_string = LLXmlTree::addAttributeString("reference");
|
||||
|
|
@ -1924,7 +1924,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
|||
{
|
||||
LL_WARNS() << "Unknown param type." << LL_ENDL;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLPolyMorphTargetInfo *morphinfo = new LLPolyMorphTargetInfo();
|
||||
|
|
@ -1932,9 +1932,9 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
|||
{
|
||||
delete morphinfo;
|
||||
delete info;
|
||||
return -1;
|
||||
return false;
|
||||
}
|
||||
BOOL shared = FALSE;
|
||||
bool shared = false;
|
||||
static LLStdStringHandle shared_string = LLXmlTree::addAttributeString("shared");
|
||||
child->getFastAttributeBOOL(shared_string, shared);
|
||||
|
||||
|
|
@ -1943,13 +1943,13 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
|
|||
|
||||
mMeshInfoList.push_back(info);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// parseXmlColorNodes(): parses <global_color> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
|
||||
bool LLAvatarAppearance::LLAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
|
||||
{
|
||||
for (LLXmlTreeNode* color_node = root->getChildByName( "global_color" );
|
||||
color_node;
|
||||
|
|
@ -1964,14 +1964,14 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root
|
|||
if (mTexSkinColorInfo)
|
||||
{
|
||||
LL_WARNS() << "avatar file: multiple instances of skin_color" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mTexSkinColorInfo = new LLTexGlobalColorInfo;
|
||||
if( !mTexSkinColorInfo->parseXml( color_node ) )
|
||||
{
|
||||
delete_and_clear(mTexSkinColorInfo);
|
||||
LL_WARNS() << "avatar file: mTexSkinColor->parseXml() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if( global_color_name == "hair_color" )
|
||||
|
|
@ -1979,14 +1979,14 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root
|
|||
if (mTexHairColorInfo)
|
||||
{
|
||||
LL_WARNS() << "avatar file: multiple instances of hair_color" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mTexHairColorInfo = new LLTexGlobalColorInfo;
|
||||
if( !mTexHairColorInfo->parseXml( color_node ) )
|
||||
{
|
||||
delete_and_clear(mTexHairColorInfo);
|
||||
LL_WARNS() << "avatar file: mTexHairColor->parseXml() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if( global_color_name == "eye_color" )
|
||||
|
|
@ -1994,24 +1994,24 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root
|
|||
if (mTexEyeColorInfo)
|
||||
{
|
||||
LL_WARNS() << "avatar file: multiple instances of eye_color" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mTexEyeColorInfo = new LLTexGlobalColorInfo;
|
||||
if( !mTexEyeColorInfo->parseXml( color_node ) )
|
||||
{
|
||||
LL_WARNS() << "avatar file: mTexEyeColor->parseXml() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// parseXmlLayerNodes(): parses <layer_set> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root)
|
||||
bool LLAvatarAppearance::LLAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root)
|
||||
{
|
||||
for (LLXmlTreeNode* layer_node = root->getChildByName( "layer_set" );
|
||||
layer_node;
|
||||
|
|
@ -2026,16 +2026,16 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root
|
|||
{
|
||||
delete layer_info;
|
||||
LL_WARNS() << "avatar file: layer_set->parseXml() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// parseXmlDriverNodes(): parses <driver_parameters> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* root)
|
||||
bool LLAvatarAppearance::LLAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* root)
|
||||
{
|
||||
LLXmlTreeNode* driver = root->getChildByName( "driver_parameters" );
|
||||
if( driver )
|
||||
|
|
@ -2055,23 +2055,23 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* roo
|
|||
{
|
||||
delete driver_info;
|
||||
LL_WARNS() << "avatar file: driver_param->parseXml() failed" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// parseXmlDriverNodes(): parses <driver_parameters> nodes from XML tree
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root)
|
||||
bool LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root)
|
||||
{
|
||||
LLXmlTreeNode* masks = root->getChildByName( "morph_masks" );
|
||||
if( !masks )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
for (LLXmlTreeNode* grand_child = masks->getChildByName( "mask" );
|
||||
|
|
@ -2085,7 +2085,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root
|
|||
{
|
||||
LL_WARNS() << "No name supplied for morph mask." << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle region_string = LLXmlTree::addAttributeString("body_region");
|
||||
|
|
@ -2093,7 +2093,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root
|
|||
{
|
||||
LL_WARNS() << "No region supplied for morph mask." << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle layer_string = LLXmlTree::addAttributeString("layer");
|
||||
|
|
@ -2101,7 +2101,7 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root
|
|||
{
|
||||
LL_WARNS() << "No layer supplied for morph mask." << LL_ENDL;
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// optional parameter. don't throw a warning if not present.
|
||||
|
|
@ -2111,12 +2111,12 @@ BOOL LLAvatarAppearance::LLAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root
|
|||
mMorphMaskInfoList.push_back(info);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//virtual
|
||||
LLAvatarAppearance::LLMaskedMorph::LLMaskedMorph(LLVisualParam *morph_target, BOOL invert, std::string layer) :
|
||||
mMorphTarget(morph_target),
|
||||
LLAvatarAppearance::LLMaskedMorph::LLMaskedMorph(LLVisualParam *morph_target, bool invert, std::string layer) :
|
||||
mMorphTarget(morph_target),
|
||||
mInvert(invert),
|
||||
mLayer(layer)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -71,9 +71,9 @@ public:
|
|||
static void cleanupClass(); // Cleanup data that's only init'd once per class.
|
||||
virtual void initInstance(); // Called after construction to initialize the instance.
|
||||
S32 mInitFlags;
|
||||
virtual BOOL loadSkeletonNode();
|
||||
BOOL loadMeshNodes();
|
||||
BOOL loadLayersets();
|
||||
virtual bool loadSkeletonNode();
|
||||
bool loadMeshNodes();
|
||||
bool loadLayersets();
|
||||
|
||||
|
||||
/** Initialization
|
||||
|
|
@ -108,14 +108,14 @@ public:
|
|||
**/
|
||||
public:
|
||||
virtual bool isSelf() const { return false; } // True if this avatar is for this viewer's agent
|
||||
virtual BOOL isValid() const;
|
||||
virtual BOOL isUsingLocalAppearance() const = 0;
|
||||
virtual BOOL isEditingAppearance() const = 0;
|
||||
virtual bool isValid() const;
|
||||
virtual bool isUsingLocalAppearance() const = 0;
|
||||
virtual bool isEditingAppearance() const = 0;
|
||||
|
||||
bool isBuilt() const { return mIsBuilt; }
|
||||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
virtual BOOL isUsingServerBakes() const = 0;
|
||||
virtual bool isUsingServerBakes() const = 0;
|
||||
|
||||
/** State
|
||||
** **
|
||||
|
|
@ -162,21 +162,21 @@ public:
|
|||
|
||||
|
||||
protected:
|
||||
static BOOL parseSkeletonFile(const std::string& filename, LLXmlTree& skeleton_xml_tree);
|
||||
static bool parseSkeletonFile(const std::string& filename, LLXmlTree& skeleton_xml_tree);
|
||||
virtual void buildCharacter();
|
||||
virtual BOOL loadAvatar();
|
||||
virtual bool loadAvatar();
|
||||
// [RLVa:KB] - Checked: 2013-03-03 (RLVa-1.4.8)
|
||||
virtual F32 getAvatarOffset() /*const*/;
|
||||
// [/RLVa:KB]
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
virtual void bodySizeChanged() = 0;
|
||||
|
||||
BOOL setupBone(const LLAvatarBoneInfo* info, LLJoint* parent, S32 ¤t_volume_num, S32 ¤t_joint_num);
|
||||
BOOL allocateCharacterJoints(S32 num);
|
||||
BOOL buildSkeleton(const LLAvatarSkeletonInfo *info);
|
||||
bool setupBone(const LLAvatarBoneInfo* info, LLJoint* parent, S32 ¤t_volume_num, S32 ¤t_joint_num);
|
||||
bool allocateCharacterJoints(S32 num);
|
||||
bool buildSkeleton(const LLAvatarSkeletonInfo *info);
|
||||
|
||||
void clearSkeleton();
|
||||
BOOL mIsBuilt; // state of deferred character building
|
||||
bool mIsBuilt; // state of deferred character building
|
||||
avatar_joint_list_t mSkeleton;
|
||||
LLVector3OverrideMap mPelvisFixups;
|
||||
joint_alias_map_t mJointAliasMap;
|
||||
|
|
@ -240,14 +240,14 @@ public:
|
|||
** RENDERING
|
||||
**/
|
||||
public:
|
||||
BOOL mIsDummy; // for special views and animated object controllers; local to viewer
|
||||
bool mIsDummy; // for special views and animated object controllers; local to viewer
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Morph masks
|
||||
//--------------------------------------------------------------------
|
||||
public:
|
||||
void addMaskedMorph(LLAvatarAppearanceDefines::EBakedTextureIndex index, LLVisualParam* morph_target, BOOL invert, std::string layer);
|
||||
virtual void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLAvatarAppearanceDefines::EBakedTextureIndex index = LLAvatarAppearanceDefines::BAKED_NUM_INDICES) = 0;
|
||||
void addMaskedMorph(LLAvatarAppearanceDefines::EBakedTextureIndex index, LLVisualParam* morph_target, bool invert, std::string layer);
|
||||
virtual void applyMorphMask(const U8* tex_data, S32 width, S32 height, S32 num_components, LLAvatarAppearanceDefines::EBakedTextureIndex index = LLAvatarAppearanceDefines::BAKED_NUM_INDICES) = 0;
|
||||
|
||||
/** Rendering
|
||||
** **
|
||||
|
|
@ -259,7 +259,7 @@ public:
|
|||
public:
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//virtual void invalidateComposite(LLTexLayerSet* layerset) = 0;
|
||||
virtual void invalidateComposite(LLTexLayerSet* layerset, BOOL upload_result) = 0;
|
||||
virtual void invalidateComposite(LLTexLayerSet* layerset, bool upload_result) = 0;
|
||||
|
||||
/********************************************************************************
|
||||
** **
|
||||
|
|
@ -296,10 +296,10 @@ protected:
|
|||
public:
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void setClothesColor(LLAvatarAppearanceDefines::ETextureIndex te, const LLColor4& new_color);
|
||||
void setClothesColor(LLAvatarAppearanceDefines::ETextureIndex te, const LLColor4& new_color, BOOL upload_bake);
|
||||
void setClothesColor(LLAvatarAppearanceDefines::ETextureIndex te, const LLColor4& new_color, bool upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
LLColor4 getClothesColor(LLAvatarAppearanceDefines::ETextureIndex te);
|
||||
static BOOL teToColorParams(LLAvatarAppearanceDefines::ETextureIndex te, U32 *param_name);
|
||||
static bool teToColorParams(LLAvatarAppearanceDefines::ETextureIndex te, U32 *param_name);
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Global colors
|
||||
|
|
@ -308,7 +308,7 @@ public:
|
|||
LLColor4 getGlobalColor(const std::string& color_name ) const;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//virtual void onGlobalColorChanged(const LLTexGlobalColor* global_color) = 0;
|
||||
virtual void onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake) = 0;
|
||||
virtual void onGlobalColorChanged(const LLTexGlobalColor* global_color, bool upload_bake) = 0;
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
protected:
|
||||
LLTexGlobalColor* mTexSkinColor;
|
||||
|
|
@ -332,8 +332,8 @@ public:
|
|||
public:
|
||||
LLWearableData* getWearableData() { return mWearableData; }
|
||||
const LLWearableData* getWearableData() const { return mWearableData; }
|
||||
virtual BOOL isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex te, U32 index = 0 ) const = 0;
|
||||
virtual BOOL isWearingWearableType(LLWearableType::EType type ) const;
|
||||
virtual bool isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex te, U32 index = 0 ) const = 0;
|
||||
virtual bool isWearingWearableType(LLWearableType::EType type ) const;
|
||||
|
||||
private:
|
||||
LLWearableData* mWearableData;
|
||||
|
|
@ -379,7 +379,7 @@ public:
|
|||
S32 mNumCollisionVolumes;
|
||||
LLAvatarJointCollisionVolume* mCollisionVolumes;
|
||||
protected:
|
||||
BOOL allocateCollisionVolumes(U32 num);
|
||||
bool allocateCollisionVolumes(U32 num);
|
||||
|
||||
/** Physics
|
||||
** **
|
||||
|
|
@ -395,16 +395,16 @@ protected:
|
|||
LLAvatarXmlInfo();
|
||||
~LLAvatarXmlInfo();
|
||||
|
||||
BOOL parseXmlSkeletonNode(LLXmlTreeNode* root);
|
||||
BOOL parseXmlMeshNodes(LLXmlTreeNode* root);
|
||||
BOOL parseXmlColorNodes(LLXmlTreeNode* root);
|
||||
BOOL parseXmlLayerNodes(LLXmlTreeNode* root);
|
||||
BOOL parseXmlDriverNodes(LLXmlTreeNode* root);
|
||||
BOOL parseXmlMorphNodes(LLXmlTreeNode* root);
|
||||
bool parseXmlSkeletonNode(LLXmlTreeNode* root);
|
||||
bool parseXmlMeshNodes(LLXmlTreeNode* root);
|
||||
bool parseXmlColorNodes(LLXmlTreeNode* root);
|
||||
bool parseXmlLayerNodes(LLXmlTreeNode* root);
|
||||
bool parseXmlDriverNodes(LLXmlTreeNode* root);
|
||||
bool parseXmlMorphNodes(LLXmlTreeNode* root);
|
||||
|
||||
struct LLAvatarMeshInfo
|
||||
{
|
||||
typedef std::pair<LLViewerVisualParamInfo*,BOOL> morph_info_pair_t; // LLPolyMorphTargetInfo stored here
|
||||
typedef std::pair<LLViewerVisualParamInfo*,bool> morph_info_pair_t; // LLPolyMorphTargetInfo stored here
|
||||
typedef std::vector<morph_info_pair_t> morph_info_list_t;
|
||||
|
||||
LLAvatarMeshInfo() : mLOD(0), mMinPixelArea(.1f) {}
|
||||
|
|
@ -433,8 +433,8 @@ protected:
|
|||
struct LLAvatarAttachmentInfo
|
||||
{
|
||||
LLAvatarAttachmentInfo()
|
||||
: mGroup(-1), mAttachmentID(-1), mPieMenuSlice(-1), mVisibleFirstPerson(FALSE),
|
||||
mIsHUDAttachment(FALSE), mHasPosition(FALSE), mHasRotation(FALSE) {}
|
||||
: mGroup(-1), mAttachmentID(-1), mPieMenuSlice(-1), mVisibleFirstPerson(false),
|
||||
mIsHUDAttachment(false), mHasPosition(false), mHasRotation(false) {}
|
||||
std::string mName;
|
||||
std::string mJointName;
|
||||
LLVector3 mPosition;
|
||||
|
|
@ -442,10 +442,10 @@ protected:
|
|||
S32 mGroup;
|
||||
S32 mAttachmentID;
|
||||
S32 mPieMenuSlice;
|
||||
BOOL mVisibleFirstPerson;
|
||||
BOOL mIsHUDAttachment;
|
||||
BOOL mHasPosition;
|
||||
BOOL mHasRotation;
|
||||
bool mVisibleFirstPerson;
|
||||
bool mIsHUDAttachment;
|
||||
bool mHasPosition;
|
||||
bool mHasRotation;
|
||||
};
|
||||
typedef std::vector<LLAvatarAttachmentInfo*> attachment_info_list_t;
|
||||
attachment_info_list_t mAttachmentInfoList;
|
||||
|
|
@ -463,11 +463,11 @@ protected:
|
|||
struct LLAvatarMorphInfo
|
||||
{
|
||||
LLAvatarMorphInfo()
|
||||
: mInvert(FALSE) {}
|
||||
: mInvert(false) {}
|
||||
std::string mName;
|
||||
std::string mRegion;
|
||||
std::string mLayer;
|
||||
BOOL mInvert;
|
||||
bool mInvert;
|
||||
};
|
||||
|
||||
typedef std::vector<LLAvatarMorphInfo*> morph_info_list_t;
|
||||
|
|
@ -478,10 +478,10 @@ protected:
|
|||
class LLMaskedMorph
|
||||
{
|
||||
public:
|
||||
LLMaskedMorph(LLVisualParam *morph_target, BOOL invert, std::string layer);
|
||||
LLMaskedMorph(LLVisualParam *morph_target, bool invert, std::string layer);
|
||||
|
||||
LLVisualParam *mMorphTarget;
|
||||
BOOL mInvert;
|
||||
bool mInvert;
|
||||
std::string mLayer;
|
||||
};
|
||||
/** Support Classes
|
||||
|
|
|
|||
|
|
@ -39,56 +39,56 @@ using namespace LLAvatarAppearanceDefines;
|
|||
|
||||
LLAvatarAppearanceDictionary::Textures::Textures()
|
||||
{
|
||||
addEntry(TEX_HEAD_BODYPAINT, new TextureEntry("head_bodypaint", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
|
||||
addEntry(TEX_UPPER_SHIRT, new TextureEntry("upper_shirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShirtUUID", LLWearableType::WT_SHIRT));
|
||||
addEntry(TEX_LOWER_PANTS, new TextureEntry("lower_pants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultPantsUUID", LLWearableType::WT_PANTS));
|
||||
addEntry(TEX_EYES_IRIS, new TextureEntry("eyes_iris", TRUE, BAKED_NUM_INDICES, "UIImgDefaultEyesUUID", LLWearableType::WT_EYES));
|
||||
addEntry(TEX_HAIR, new TextureEntry("hair_grain", TRUE, BAKED_NUM_INDICES, "UIImgDefaultHairUUID", LLWearableType::WT_HAIR));
|
||||
addEntry(TEX_UPPER_BODYPAINT, new TextureEntry("upper_bodypaint", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
|
||||
addEntry(TEX_LOWER_BODYPAINT, new TextureEntry("lower_bodypaint", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
|
||||
addEntry(TEX_LOWER_SHOES, new TextureEntry("lower_shoes", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShoesUUID", LLWearableType::WT_SHOES));
|
||||
addEntry(TEX_LOWER_SOCKS, new TextureEntry("lower_socks", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSocksUUID", LLWearableType::WT_SOCKS));
|
||||
addEntry(TEX_UPPER_JACKET, new TextureEntry("upper_jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", LLWearableType::WT_JACKET));
|
||||
addEntry(TEX_LOWER_JACKET, new TextureEntry("lower_jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", LLWearableType::WT_JACKET));
|
||||
addEntry(TEX_UPPER_GLOVES, new TextureEntry("upper_gloves", TRUE, BAKED_NUM_INDICES, "UIImgDefaultGlovesUUID", LLWearableType::WT_GLOVES));
|
||||
addEntry(TEX_UPPER_UNDERSHIRT, new TextureEntry("upper_undershirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", LLWearableType::WT_UNDERSHIRT));
|
||||
addEntry(TEX_LOWER_UNDERPANTS, new TextureEntry("lower_underpants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", LLWearableType::WT_UNDERPANTS));
|
||||
addEntry(TEX_SKIRT, new TextureEntry("skirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSkirtUUID", LLWearableType::WT_SKIRT));
|
||||
addEntry(TEX_HEAD_BODYPAINT, new TextureEntry("head_bodypaint", true, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
|
||||
addEntry(TEX_UPPER_SHIRT, new TextureEntry("upper_shirt", true, BAKED_NUM_INDICES, "UIImgDefaultShirtUUID", LLWearableType::WT_SHIRT));
|
||||
addEntry(TEX_LOWER_PANTS, new TextureEntry("lower_pants", true, BAKED_NUM_INDICES, "UIImgDefaultPantsUUID", LLWearableType::WT_PANTS));
|
||||
addEntry(TEX_EYES_IRIS, new TextureEntry("eyes_iris", true, BAKED_NUM_INDICES, "UIImgDefaultEyesUUID", LLWearableType::WT_EYES));
|
||||
addEntry(TEX_HAIR, new TextureEntry("hair_grain", true, BAKED_NUM_INDICES, "UIImgDefaultHairUUID", LLWearableType::WT_HAIR));
|
||||
addEntry(TEX_UPPER_BODYPAINT, new TextureEntry("upper_bodypaint", true, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
|
||||
addEntry(TEX_LOWER_BODYPAINT, new TextureEntry("lower_bodypaint", true, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
|
||||
addEntry(TEX_LOWER_SHOES, new TextureEntry("lower_shoes", true, BAKED_NUM_INDICES, "UIImgDefaultShoesUUID", LLWearableType::WT_SHOES));
|
||||
addEntry(TEX_LOWER_SOCKS, new TextureEntry("lower_socks", true, BAKED_NUM_INDICES, "UIImgDefaultSocksUUID", LLWearableType::WT_SOCKS));
|
||||
addEntry(TEX_UPPER_JACKET, new TextureEntry("upper_jacket", true, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", LLWearableType::WT_JACKET));
|
||||
addEntry(TEX_LOWER_JACKET, new TextureEntry("lower_jacket", true, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", LLWearableType::WT_JACKET));
|
||||
addEntry(TEX_UPPER_GLOVES, new TextureEntry("upper_gloves", true, BAKED_NUM_INDICES, "UIImgDefaultGlovesUUID", LLWearableType::WT_GLOVES));
|
||||
addEntry(TEX_UPPER_UNDERSHIRT, new TextureEntry("upper_undershirt", true, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", LLWearableType::WT_UNDERSHIRT));
|
||||
addEntry(TEX_LOWER_UNDERPANTS, new TextureEntry("lower_underpants", true, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", LLWearableType::WT_UNDERPANTS));
|
||||
addEntry(TEX_SKIRT, new TextureEntry("skirt", true, BAKED_NUM_INDICES, "UIImgDefaultSkirtUUID", LLWearableType::WT_SKIRT));
|
||||
|
||||
addEntry(TEX_LOWER_ALPHA, new TextureEntry("lower_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_UPPER_ALPHA, new TextureEntry("upper_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_HEAD_ALPHA, new TextureEntry("head_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_EYES_ALPHA, new TextureEntry("eyes_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_HAIR_ALPHA, new TextureEntry("hair_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_LOWER_ALPHA, new TextureEntry("lower_alpha", true, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_UPPER_ALPHA, new TextureEntry("upper_alpha", true, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_HEAD_ALPHA, new TextureEntry("head_alpha", true, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_EYES_ALPHA, new TextureEntry("eyes_alpha", true, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
addEntry(TEX_HAIR_ALPHA, new TextureEntry("hair_alpha", true, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
|
||||
|
||||
addEntry(TEX_HEAD_TATTOO, new TextureEntry("head_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
|
||||
addEntry(TEX_UPPER_TATTOO, new TextureEntry("upper_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
|
||||
addEntry(TEX_LOWER_TATTOO, new TextureEntry("lower_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
|
||||
addEntry(TEX_HEAD_TATTOO, new TextureEntry("head_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
|
||||
addEntry(TEX_UPPER_TATTOO, new TextureEntry("upper_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
|
||||
addEntry(TEX_LOWER_TATTOO, new TextureEntry("lower_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
|
||||
|
||||
addEntry(TEX_HEAD_UNIVERSAL_TATTOO, new TextureEntry("head_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_UPPER_UNIVERSAL_TATTOO, new TextureEntry("upper_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_LOWER_UNIVERSAL_TATTOO, new TextureEntry("lower_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_SKIRT_TATTOO, new TextureEntry("skirt_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_HAIR_TATTOO, new TextureEntry("hair_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_EYES_TATTOO, new TextureEntry("eyes_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_LEFT_ARM_TATTOO, new TextureEntry("leftarm_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_LEFT_LEG_TATTOO, new TextureEntry("leftleg_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_AUX1_TATTOO, new TextureEntry("aux1_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_AUX2_TATTOO, new TextureEntry("aux2_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_AUX3_TATTOO, new TextureEntry("aux3_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_HEAD_UNIVERSAL_TATTOO, new TextureEntry("head_universal_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_UPPER_UNIVERSAL_TATTOO, new TextureEntry("upper_universal_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_LOWER_UNIVERSAL_TATTOO, new TextureEntry("lower_universal_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_SKIRT_TATTOO, new TextureEntry("skirt_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_HAIR_TATTOO, new TextureEntry("hair_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_EYES_TATTOO, new TextureEntry("eyes_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_LEFT_ARM_TATTOO, new TextureEntry("leftarm_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_LEFT_LEG_TATTOO, new TextureEntry("leftleg_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_AUX1_TATTOO, new TextureEntry("aux1_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_AUX2_TATTOO, new TextureEntry("aux2_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
addEntry(TEX_AUX3_TATTOO, new TextureEntry("aux3_tattoo", true, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
|
||||
|
||||
|
||||
addEntry(TEX_HEAD_BAKED, new TextureEntry("head-baked", FALSE, BAKED_HEAD, "head"));
|
||||
addEntry(TEX_UPPER_BAKED, new TextureEntry("upper-baked", FALSE, BAKED_UPPER, "upper"));
|
||||
addEntry(TEX_LOWER_BAKED, new TextureEntry("lower-baked", FALSE, BAKED_LOWER, "lower"));
|
||||
addEntry(TEX_EYES_BAKED, new TextureEntry("eyes-baked", FALSE, BAKED_EYES, "eyes"));
|
||||
addEntry(TEX_HAIR_BAKED, new TextureEntry("hair-baked", FALSE, BAKED_HAIR, "hair"));
|
||||
addEntry(TEX_SKIRT_BAKED, new TextureEntry("skirt-baked", FALSE, BAKED_SKIRT, "skirt"));
|
||||
addEntry(TEX_LEFT_ARM_BAKED, new TextureEntry("leftarm-baked", FALSE, BAKED_LEFT_ARM, "leftarm"));
|
||||
addEntry(TEX_LEFT_LEG_BAKED, new TextureEntry("leftleg-baked", FALSE, BAKED_LEFT_LEG, "leftleg"));
|
||||
addEntry(TEX_AUX1_BAKED, new TextureEntry("aux1-baked", FALSE, BAKED_AUX1, "aux1"));
|
||||
addEntry(TEX_AUX2_BAKED, new TextureEntry("aux2-baked", FALSE, BAKED_AUX2, "aux2"));
|
||||
addEntry(TEX_AUX3_BAKED, new TextureEntry("aux3-baked", FALSE, BAKED_AUX3, "aux3"));
|
||||
addEntry(TEX_HEAD_BAKED, new TextureEntry("head-baked", false, BAKED_HEAD, "head"));
|
||||
addEntry(TEX_UPPER_BAKED, new TextureEntry("upper-baked", false, BAKED_UPPER, "upper"));
|
||||
addEntry(TEX_LOWER_BAKED, new TextureEntry("lower-baked", false, BAKED_LOWER, "lower"));
|
||||
addEntry(TEX_EYES_BAKED, new TextureEntry("eyes-baked", false, BAKED_EYES, "eyes"));
|
||||
addEntry(TEX_HAIR_BAKED, new TextureEntry("hair-baked", false, BAKED_HAIR, "hair"));
|
||||
addEntry(TEX_SKIRT_BAKED, new TextureEntry("skirt-baked", false, BAKED_SKIRT, "skirt"));
|
||||
addEntry(TEX_LEFT_ARM_BAKED, new TextureEntry("leftarm-baked", false, BAKED_LEFT_ARM, "leftarm"));
|
||||
addEntry(TEX_LEFT_LEG_BAKED, new TextureEntry("leftleg-baked", false, BAKED_LEFT_LEG, "leftleg"));
|
||||
addEntry(TEX_AUX1_BAKED, new TextureEntry("aux1-baked", false, BAKED_AUX1, "aux1"));
|
||||
addEntry(TEX_AUX2_BAKED, new TextureEntry("aux2-baked", false, BAKED_AUX2, "aux2"));
|
||||
addEntry(TEX_AUX3_BAKED, new TextureEntry("aux3-baked", false, BAKED_AUX3, "aux3"));
|
||||
}
|
||||
|
||||
LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
|
||||
|
|
@ -305,15 +305,15 @@ LLWearableType::EType LLAvatarAppearanceDictionary::getTEWearableType(ETextureIn
|
|||
}
|
||||
|
||||
// static
|
||||
BOOL LLAvatarAppearanceDictionary::isBakedImageId(const LLUUID& id)
|
||||
bool LLAvatarAppearanceDictionary::isBakedImageId(const LLUUID& id)
|
||||
{
|
||||
if ((id == IMG_USE_BAKED_EYES) || (id == IMG_USE_BAKED_HAIR) || (id == IMG_USE_BAKED_HEAD) || (id == IMG_USE_BAKED_LOWER) || (id == IMG_USE_BAKED_SKIRT) || (id == IMG_USE_BAKED_UPPER)
|
||||
|| (id == IMG_USE_BAKED_LEFTARM) || (id == IMG_USE_BAKED_LEFTLEG) || (id == IMG_USE_BAKED_AUX1) || (id == IMG_USE_BAKED_AUX2) || (id == IMG_USE_BAKED_AUX3) )
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace LLAvatarAppearanceDefines
|
|||
extern const S32 SCRATCH_TEX_WIDTH;
|
||||
extern const S32 SCRATCH_TEX_HEIGHT;
|
||||
|
||||
static const U32 AVATAR_HOVER = 11001;
|
||||
static constexpr U32 AVATAR_HOVER = 11001;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Enums
|
||||
|
|
@ -167,10 +167,10 @@ public:
|
|||
const std::string mDefaultImageName;
|
||||
const LLWearableType::EType mWearableType;
|
||||
// It's either a local texture xor baked
|
||||
BOOL mIsLocalTexture;
|
||||
BOOL mIsBakedTexture;
|
||||
bool mIsLocalTexture;
|
||||
bool mIsBakedTexture;
|
||||
// If it's a local texture, it may be used by a baked texture
|
||||
BOOL mIsUsedByBakedTexture;
|
||||
bool mIsUsedByBakedTexture;
|
||||
EBakedTextureIndex mBakedTextureIndex;
|
||||
};
|
||||
|
||||
|
|
@ -244,7 +244,7 @@ public:
|
|||
// Given a texture entry, determine which wearable type owns it.
|
||||
LLWearableType::EType getTEWearableType(ETextureIndex index) const;
|
||||
|
||||
static BOOL isBakedImageId(const LLUUID& id);
|
||||
static bool isBakedImageId(const LLUUID& id);
|
||||
static EBakedTextureIndex assetIdToBakedTextureIndex(const LLUUID& id);
|
||||
static LLUUID localTextureIndexToMagicId(ETextureIndex t);
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ const F32 DEFAULT_AVATAR_JOINT_LOD = 0.0f;
|
|||
//-----------------------------------------------------------------------------
|
||||
// Static Data
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarJoint::sDisableLOD = FALSE;
|
||||
bool LLAvatarJoint::sDisableLOD = false;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLAvatarJoint()
|
||||
|
|
@ -66,13 +66,13 @@ LLAvatarJoint::LLAvatarJoint(const std::string &name, LLJoint *parent) :
|
|||
|
||||
void LLAvatarJoint::init()
|
||||
{
|
||||
mValid = FALSE;
|
||||
mValid = false;
|
||||
mComponents = SC_JOINT | SC_BONE | SC_AXES;
|
||||
mMinPixelArea = DEFAULT_AVATAR_JOINT_LOD;
|
||||
mPickName = PN_DEFAULT;
|
||||
mVisible = TRUE;
|
||||
mVisible = true;
|
||||
mMeshID = 0;
|
||||
mIsTransparent = FALSE;
|
||||
mIsTransparent = false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -88,7 +88,7 @@ LLAvatarJoint::~LLAvatarJoint()
|
|||
//--------------------------------------------------------------------
|
||||
// setValid()
|
||||
//--------------------------------------------------------------------
|
||||
void LLAvatarJoint::setValid( BOOL valid, BOOL recursive )
|
||||
void LLAvatarJoint::setValid( bool valid, bool recursive )
|
||||
{
|
||||
//----------------------------------------------------------------
|
||||
// set visibility for this joint
|
||||
|
|
@ -103,7 +103,7 @@ void LLAvatarJoint::setValid( BOOL valid, BOOL recursive )
|
|||
for (LLJoint* child : mChildren)
|
||||
{
|
||||
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child);
|
||||
joint->setValid(valid, TRUE);
|
||||
joint->setValid(valid, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -112,7 +112,7 @@ void LLAvatarJoint::setValid( BOOL valid, BOOL recursive )
|
|||
//--------------------------------------------------------------------
|
||||
// setSkeletonComponents()
|
||||
//--------------------------------------------------------------------
|
||||
void LLAvatarJoint::setSkeletonComponents( U32 comp, BOOL recursive )
|
||||
void LLAvatarJoint::setSkeletonComponents( U32 comp, bool recursive )
|
||||
{
|
||||
mComponents = comp;
|
||||
if (recursive)
|
||||
|
|
@ -125,7 +125,7 @@ void LLAvatarJoint::setSkeletonComponents( U32 comp, BOOL recursive )
|
|||
}
|
||||
}
|
||||
|
||||
void LLAvatarJoint::setVisible(BOOL visible, BOOL recursive)
|
||||
void LLAvatarJoint::setVisible(bool visible, bool recursive)
|
||||
{
|
||||
mVisible = visible;
|
||||
|
||||
|
|
@ -148,7 +148,7 @@ void LLAvatarJoint::updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pix
|
|||
}
|
||||
}
|
||||
|
||||
void LLAvatarJoint::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind, bool terse_update)
|
||||
void LLAvatarJoint::updateFaceData(LLFace *face, F32 pixel_area, bool damp_wind, bool terse_update)
|
||||
{
|
||||
for (LLJoint* child : mChildren)
|
||||
{
|
||||
|
|
@ -167,10 +167,10 @@ void LLAvatarJoint::updateJointGeometry()
|
|||
}
|
||||
|
||||
|
||||
BOOL LLAvatarJoint::updateLOD(F32 pixel_area, BOOL activate)
|
||||
bool LLAvatarJoint::updateLOD(F32 pixel_area, bool activate)
|
||||
{
|
||||
BOOL lod_changed = FALSE;
|
||||
BOOL found_lod = FALSE;
|
||||
bool lod_changed = false;
|
||||
bool found_lod = false;
|
||||
|
||||
for (LLJoint* child : mChildren)
|
||||
{
|
||||
|
|
@ -180,18 +180,18 @@ BOOL LLAvatarJoint::updateLOD(F32 pixel_area, BOOL activate)
|
|||
if (found_lod || jointLOD == DEFAULT_AVATAR_JOINT_LOD)
|
||||
{
|
||||
// we've already found a joint to enable, so enable the rest as alternatives
|
||||
lod_changed |= joint->updateLOD(pixel_area, TRUE);
|
||||
lod_changed |= joint->updateLOD(pixel_area, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pixel_area >= jointLOD || sDisableLOD)
|
||||
{
|
||||
lod_changed |= joint->updateLOD(pixel_area, TRUE);
|
||||
found_lod = TRUE;
|
||||
lod_changed |= joint->updateLOD(pixel_area, true);
|
||||
found_lod = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
lod_changed |= joint->updateLOD(pixel_area, FALSE);
|
||||
lod_changed |= joint->updateLOD(pixel_area, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -222,11 +222,11 @@ void LLAvatarJoint::setMeshesToChildren()
|
|||
|
||||
LLAvatarJointCollisionVolume::LLAvatarJointCollisionVolume()
|
||||
{
|
||||
mUpdateXform = FALSE;
|
||||
mUpdateXform = false;
|
||||
}
|
||||
|
||||
/*virtual*/
|
||||
U32 LLAvatarJointCollisionVolume::render( F32 pixelArea, BOOL first_pass, BOOL is_dummy )
|
||||
U32 LLAvatarJointCollisionVolume::render( F32 pixelArea, bool first_pass, bool is_dummy )
|
||||
{
|
||||
LL_ERRS() << "Cannot call render() on LLAvatarJointCollisionVolume" << LL_ENDL;
|
||||
return 0;
|
||||
|
|
@ -234,7 +234,7 @@ U32 LLAvatarJointCollisionVolume::render( F32 pixelArea, BOOL first_pass, BOOL i
|
|||
|
||||
LLVector3 LLAvatarJointCollisionVolume::getVolumePos(LLVector3 &offset)
|
||||
{
|
||||
mUpdateXform = TRUE;
|
||||
mUpdateXform = true;
|
||||
|
||||
LLVector3 result = offset;
|
||||
result.scaleVec(getScale());
|
||||
|
|
|
|||
|
|
@ -52,17 +52,17 @@ public:
|
|||
virtual ~LLAvatarJoint();
|
||||
|
||||
// Gets the validity of this joint
|
||||
BOOL getValid() { return mValid; }
|
||||
bool getValid() { return mValid; }
|
||||
|
||||
// Sets the validity of this joint
|
||||
virtual void setValid( BOOL valid, BOOL recursive=FALSE );
|
||||
virtual void setValid( bool valid, bool recursive=false );
|
||||
|
||||
// Returns true if this object is transparent.
|
||||
// This is used to determine in which order to draw objects.
|
||||
virtual BOOL isTransparent() { return mIsTransparent; }
|
||||
virtual bool isTransparent() { return mIsTransparent; }
|
||||
|
||||
// Returns true if this object should inherit scale modifiers from its immediate parent
|
||||
virtual BOOL inheritScale() { return FALSE; }
|
||||
virtual bool inheritScale() { return false; }
|
||||
|
||||
enum Components
|
||||
{
|
||||
|
|
@ -72,7 +72,7 @@ public:
|
|||
};
|
||||
|
||||
// Selects which skeleton components to draw
|
||||
void setSkeletonComponents( U32 comp, BOOL recursive = TRUE );
|
||||
void setSkeletonComponents( U32 comp, bool recursive = true );
|
||||
|
||||
// Returns which skeleton components are enables for drawing
|
||||
U32 getSkeletonComponents() { return mComponents; }
|
||||
|
|
@ -90,34 +90,34 @@ public:
|
|||
void setPickName(LLJointPickName name) { mPickName = name; }
|
||||
LLJointPickName getPickName() { return mPickName; }
|
||||
|
||||
void setVisible( BOOL visible, BOOL recursive );
|
||||
void setVisible( bool visible, bool recursive );
|
||||
|
||||
// Takes meshes in mMeshParts and sets each one as a child joint
|
||||
void setMeshesToChildren();
|
||||
|
||||
// LLViewerJoint interface
|
||||
virtual U32 render( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE ) = 0;
|
||||
virtual U32 render( F32 pixelArea, bool first_pass = true, bool is_dummy = false ) = 0;
|
||||
virtual void updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pixel_area);
|
||||
virtual void updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind = FALSE, bool terse_update = false);
|
||||
virtual BOOL updateLOD(F32 pixel_area, BOOL activate);
|
||||
virtual void updateFaceData(LLFace *face, F32 pixel_area, bool damp_wind = false, bool terse_update = false);
|
||||
virtual bool updateLOD(F32 pixel_area, bool activate);
|
||||
virtual void updateJointGeometry();
|
||||
virtual void dump();
|
||||
|
||||
|
||||
public:
|
||||
static BOOL sDisableLOD;
|
||||
static bool sDisableLOD;
|
||||
avatar_joint_mesh_list_t mMeshParts; //LLViewerJointMesh*
|
||||
void setMeshID( S32 id ) {mMeshID = id;}
|
||||
|
||||
protected:
|
||||
void init();
|
||||
|
||||
BOOL mValid;
|
||||
BOOL mIsTransparent;
|
||||
bool mValid;
|
||||
bool mIsTransparent;
|
||||
U32 mComponents;
|
||||
F32 mMinPixelArea;
|
||||
LLJointPickName mPickName;
|
||||
BOOL mVisible;
|
||||
bool mVisible;
|
||||
S32 mMeshID;
|
||||
};
|
||||
|
||||
|
|
@ -127,8 +127,8 @@ public:
|
|||
LLAvatarJointCollisionVolume();
|
||||
virtual ~LLAvatarJointCollisionVolume() {};
|
||||
|
||||
/*virtual*/ BOOL inheritScale() { return TRUE; }
|
||||
/*virtual*/ U32 render( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE );
|
||||
/*virtual*/ bool inheritScale() { return true; }
|
||||
/*virtual*/ U32 render( F32 pixelArea, bool first_pass = true, bool is_dummy = false );
|
||||
|
||||
void renderCollision();
|
||||
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ LLSkinJoint::~LLSkinJoint()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLSkinJoint::setupSkinJoint()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLSkinJoint::setupSkinJoint( LLAvatarJoint *joint)
|
||||
bool LLSkinJoint::setupSkinJoint( LLAvatarJoint *joint)
|
||||
{
|
||||
// find the named joint
|
||||
mJoint = joint;
|
||||
|
|
@ -119,7 +119,7 @@ BOOL LLSkinJoint::setupSkinJoint( LLAvatarJoint *joint)
|
|||
mRootToParentJointSkinOffset = totalSkinOffset(getBaseSkeletonAncestor(joint));
|
||||
mRootToParentJointSkinOffset = -mRootToParentJointSkinOffset;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -129,7 +129,7 @@ BOOL LLSkinJoint::setupSkinJoint( LLAvatarJoint *joint)
|
|||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLAvatarJointMesh::sPipelineRender = FALSE;
|
||||
bool LLAvatarJointMesh::sPipelineRender = false;
|
||||
U32 LLAvatarJointMesh::sClothingMaskImageName = 0;
|
||||
LLColor4 LLAvatarJointMesh::sClothingInnerColor;
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ LLAvatarJointMesh::LLAvatarJointMesh()
|
|||
mColor[2] = 1.0f;
|
||||
mColor[3] = 1.0f;
|
||||
mShiny = 0.0f;
|
||||
mCullBackFaces = TRUE;
|
||||
mCullBackFaces = true;
|
||||
|
||||
mMesh = NULL;
|
||||
|
||||
|
|
@ -159,11 +159,11 @@ LLAvatarJointMesh::LLAvatarJointMesh()
|
|||
mFace = NULL;
|
||||
|
||||
mMeshID = 0;
|
||||
mUpdateXform = FALSE;
|
||||
mUpdateXform = false;
|
||||
|
||||
mValid = FALSE;
|
||||
mValid = false;
|
||||
|
||||
mIsTransparent = FALSE;
|
||||
mIsTransparent = false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -182,11 +182,11 @@ LLAvatarJointMesh::~LLAvatarJointMesh()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLAvatarJointMesh::allocateSkinData()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLAvatarJointMesh::allocateSkinData( U32 numSkinJoints )
|
||||
bool LLAvatarJointMesh::allocateSkinData( U32 numSkinJoints )
|
||||
{
|
||||
mSkinJoints = new LLSkinJoint[ numSkinJoints ];
|
||||
mNumSkinJoints = numSkinJoints;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -247,12 +247,12 @@ void LLAvatarJointMesh::setTexture( LLGLTexture *texture )
|
|||
{
|
||||
mLayerSet = NULL;
|
||||
//texture->bindTexture(0);
|
||||
//texture->setClamp(TRUE, TRUE);
|
||||
//texture->setClamp(true, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BOOL LLAvatarJointMesh::hasGLTexture() const
|
||||
bool LLAvatarJointMesh::hasGLTexture() const
|
||||
{
|
||||
return mTexture.notNull() && mTexture->hasGLTexture();
|
||||
}
|
||||
|
|
@ -272,7 +272,7 @@ void LLAvatarJointMesh::setLayerSet( LLTexLayerSet* layer_set )
|
|||
}
|
||||
}
|
||||
|
||||
BOOL LLAvatarJointMesh::hasComposite() const
|
||||
bool LLAvatarJointMesh::hasComposite() const
|
||||
{
|
||||
return (mLayerSet && mLayerSet->hasComposite());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class LLSkinJoint
|
|||
public:
|
||||
LLSkinJoint();
|
||||
~LLSkinJoint();
|
||||
BOOL setupSkinJoint( LLAvatarJoint *joint);
|
||||
bool setupSkinJoint( LLAvatarJoint *joint);
|
||||
|
||||
LLAvatarJoint *mJoint;
|
||||
LLVector3 mRootToJointSkinOffset;
|
||||
|
|
@ -69,7 +69,7 @@ protected:
|
|||
LLTexLayerSet* mLayerSet; // ptr to a layer set owned by the avatar
|
||||
U32 mTestImageName; // handle to a temporary texture for previewing uploads
|
||||
LLPolyMesh* mMesh; // ptr to a global polymesh
|
||||
BOOL mCullBackFaces; // true by default
|
||||
bool mCullBackFaces; // true by default
|
||||
LLFace* mFace; // ptr to a face w/ AGP copy of mesh
|
||||
|
||||
U32 mFaceIndexCount;
|
||||
|
|
@ -79,7 +79,7 @@ protected:
|
|||
S32 mMeshID;
|
||||
|
||||
public:
|
||||
static BOOL sPipelineRender;
|
||||
static bool sPipelineRender;
|
||||
//RN: this is here for testing purposes
|
||||
static U32 sClothingMaskImageName;
|
||||
static LLColor4 sClothingInnerColor;
|
||||
|
|
@ -104,14 +104,14 @@ public:
|
|||
// Sets the shape texture
|
||||
void setTexture( LLGLTexture *texture );
|
||||
|
||||
BOOL hasGLTexture() const;
|
||||
bool hasGLTexture() const;
|
||||
|
||||
void setTestTexture( U32 name ) { mTestImageName = name; }
|
||||
|
||||
// Sets layer set responsible for a dynamic shape texture (takes precedence over normal texture)
|
||||
void setLayerSet( LLTexLayerSet* layer_set );
|
||||
|
||||
BOOL hasComposite() const;
|
||||
bool hasComposite() const;
|
||||
|
||||
// Gets the poly mesh
|
||||
LLPolyMesh *getMesh();
|
||||
|
|
@ -122,20 +122,17 @@ public:
|
|||
// Sets up joint matrix data for rendering
|
||||
void setupJoint(LLAvatarJoint* current_joint);
|
||||
|
||||
// Render time method to upload batches of joint matrices
|
||||
void uploadJointMatrices();
|
||||
|
||||
// Sets ID for picking
|
||||
void setMeshID( S32 id ) {mMeshID = id;}
|
||||
|
||||
// Gets ID for picking
|
||||
S32 getMeshID() { return mMeshID; }
|
||||
|
||||
void setIsTransparent(BOOL is_transparent) { mIsTransparent = is_transparent; }
|
||||
void setIsTransparent(bool is_transparent) { mIsTransparent = is_transparent; }
|
||||
|
||||
private:
|
||||
// Allocate skin data
|
||||
BOOL allocateSkinData( U32 numSkinJoints );
|
||||
bool allocateSkinData( U32 numSkinJoints );
|
||||
|
||||
// Free skin data
|
||||
void freeSkinData();
|
||||
|
|
|
|||
|
|
@ -41,16 +41,16 @@ LLDriverParamInfo::LLDriverParamInfo() :
|
|||
{
|
||||
}
|
||||
|
||||
BOOL LLDriverParamInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLDriverParamInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
llassert( node->hasName( "param" ) && node->getChildByName( "param_driver" ) );
|
||||
|
||||
if( !LLViewerVisualParamInfo::parseXml( node ))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
LLXmlTreeNode* param_driver_node = node->getChildByName( "param_driver" );
|
||||
if( !param_driver_node )
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
for (LLXmlTreeNode* child = param_driver_node->getChildByName( "driven" );
|
||||
child;
|
||||
|
|
@ -90,10 +90,10 @@ BOOL LLDriverParamInfo::parseXml(LLXmlTreeNode* node)
|
|||
else
|
||||
{
|
||||
LL_ERRS() << "<driven> Unable to resolve driven parameter: " << driven_id << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -187,20 +187,20 @@ LLDriverParam::~LLDriverParam()
|
|||
{
|
||||
}
|
||||
|
||||
BOOL LLDriverParam::setInfo(LLDriverParamInfo *info)
|
||||
bool LLDriverParam::setInfo(LLDriverParamInfo *info)
|
||||
{
|
||||
llassert(mInfo == NULL);
|
||||
if (info->mID < 0)
|
||||
return FALSE;
|
||||
return false;
|
||||
mInfo = info;
|
||||
mID = info->mID;
|
||||
info->mDriverParam = this;
|
||||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(getDefaultWeight());
|
||||
setWeight(getDefaultWeight(), FALSE );
|
||||
setWeight(getDefaultWeight(), false );
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*virtual*/ LLViewerVisualParam* LLDriverParam::cloneParam(LLWearable* wearable) const
|
||||
|
|
@ -211,7 +211,7 @@ BOOL LLDriverParam::setInfo(LLDriverParamInfo *info)
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLDriverParam::setWeight(F32 weight)
|
||||
void LLDriverParam::setWeight(F32 weight, BOOL upload_bake)
|
||||
void LLDriverParam::setWeight(F32 weight, bool upload_bake)
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
{
|
||||
F32 min_weight = getMinWeight();
|
||||
|
|
@ -454,7 +454,7 @@ const LLViewerVisualParam* LLDriverParam::getDrivenParam(S32 index) const
|
|||
//void LLDriverParam::setAnimationTarget( F32 target_value)
|
||||
//{
|
||||
// LLVisualParam::setAnimationTarget(target_value);
|
||||
void LLDriverParam::setAnimationTarget( F32 target_value, BOOL upload_bake )
|
||||
void LLDriverParam::setAnimationTarget( F32 target_value, bool upload_bake )
|
||||
{
|
||||
LLVisualParam::setAnimationTarget(target_value, upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
|
@ -480,32 +480,32 @@ void LLDriverParam::setAnimationTarget( F32 target_value, BOOL upload_bake )
|
|||
//void LLDriverParam::stopAnimating()
|
||||
//{
|
||||
// LLVisualParam::stopAnimating();
|
||||
void LLDriverParam::stopAnimating(BOOL upload_bake)
|
||||
void LLDriverParam::stopAnimating(bool upload_bake)
|
||||
{
|
||||
LLVisualParam::stopAnimating(upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
||||
for(LLDrivenEntry& driven : mDriven)
|
||||
{
|
||||
driven.mParam->setAnimating(FALSE);
|
||||
driven.mParam->setAnimating(false);
|
||||
}
|
||||
}
|
||||
|
||||
/*virtual*/
|
||||
BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params)
|
||||
bool LLDriverParam::linkDrivenParams(visual_param_mapper mapper, bool only_cross_params)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
for (LLDrivenEntryInfo& driven_info : getInfo()->mDrivenInfoList)
|
||||
{
|
||||
S32 driven_id = driven_info.mDrivenID;
|
||||
|
||||
// check for already existing links. Do not overwrite.
|
||||
BOOL found = FALSE;
|
||||
bool found = false;
|
||||
for (auto& driven : mDriven)
|
||||
{
|
||||
if (driven.mInfo->mDrivenID == driven_id)
|
||||
{
|
||||
found = TRUE;
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -520,7 +520,7 @@ BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross
|
|||
}
|
||||
else
|
||||
{
|
||||
success = FALSE;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public:
|
|||
LLDriverParamInfo();
|
||||
/*virtual*/ ~LLDriverParamInfo() {};
|
||||
|
||||
/*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
|
||||
/*virtual*/ bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
/*virtual*/ void toStream(std::ostream &out);
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ public:
|
|||
// Special: These functions are overridden by child classes
|
||||
LLDriverParamInfo* getInfo() const { return (LLDriverParamInfo*)mInfo; }
|
||||
// This sets mInfo and calls initialization functions
|
||||
BOOL setInfo(LLDriverParamInfo* info);
|
||||
bool setInfo(LLDriverParamInfo* info);
|
||||
|
||||
LLAvatarAppearance* getAvatarAppearance() { return mAvatarAppearance; }
|
||||
const LLAvatarAppearance* getAvatarAppearance() const { return mAvatarAppearance; }
|
||||
|
|
@ -105,11 +105,11 @@ public:
|
|||
///*virtual*/ void setWeight(F32 weight);
|
||||
///*virtual*/ void setAnimationTarget(F32 target_value);
|
||||
///*virtual*/ void stopAnimating();
|
||||
/*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
|
||||
/*virtual*/ void setAnimationTarget(F32 target_value, BOOL upload_bake);
|
||||
/*virtual*/ void stopAnimating(BOOL upload_bake);
|
||||
/*virtual*/ void setWeight(F32 weight, bool upload_bake);
|
||||
/*virtual*/ void setAnimationTarget(F32 target_value, bool upload_bake);
|
||||
/*virtual*/ void stopAnimating(bool upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
/*virtual*/ BOOL linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params);
|
||||
/*virtual*/ bool linkDrivenParams(visual_param_mapper mapper, bool only_cross_params);
|
||||
/*virtual*/ void resetDrivenParams();
|
||||
|
||||
// LLViewerVisualParam Virtual functions
|
||||
|
|
|
|||
|
|
@ -36,14 +36,14 @@
|
|||
|
||||
|
||||
LLLocalTextureObject::LLLocalTextureObject() :
|
||||
mIsBakedReady(FALSE),
|
||||
mIsBakedReady(false),
|
||||
mDiscard(MAX_DISCARD_LEVEL+1)
|
||||
{
|
||||
mImage = NULL;
|
||||
}
|
||||
|
||||
LLLocalTextureObject::LLLocalTextureObject(LLGLTexture* image, const LLUUID& id) :
|
||||
mIsBakedReady(FALSE),
|
||||
mIsBakedReady(false),
|
||||
mDiscard(MAX_DISCARD_LEVEL+1)
|
||||
{
|
||||
mImage = image;
|
||||
|
|
@ -122,7 +122,7 @@ S32 LLLocalTextureObject::getDiscard() const
|
|||
return mDiscard;
|
||||
}
|
||||
|
||||
BOOL LLLocalTextureObject::getBakedReady() const
|
||||
bool LLLocalTextureObject::getBakedReady() const
|
||||
{
|
||||
return mIsBakedReady;
|
||||
}
|
||||
|
|
@ -132,11 +132,11 @@ void LLLocalTextureObject::setImage(LLGLTexture* new_image)
|
|||
mImage = new_image;
|
||||
}
|
||||
|
||||
BOOL LLLocalTextureObject::setTexLayer(LLTexLayer *new_tex_layer, U32 index)
|
||||
bool LLLocalTextureObject::setTexLayer(LLTexLayer *new_tex_layer, U32 index)
|
||||
{
|
||||
if (index >= getNumTexLayers() )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (new_tex_layer == NULL)
|
||||
|
|
@ -153,47 +153,47 @@ BOOL LLLocalTextureObject::setTexLayer(LLTexLayer *new_tex_layer, U32 index)
|
|||
}
|
||||
mTexLayers[index] = layer;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLLocalTextureObject::addTexLayer(LLTexLayer *new_tex_layer, LLWearable *wearable)
|
||||
bool LLLocalTextureObject::addTexLayer(LLTexLayer *new_tex_layer, LLWearable *wearable)
|
||||
{
|
||||
if (new_tex_layer == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLTexLayer *layer = new LLTexLayer(*new_tex_layer, wearable);
|
||||
layer->setLTO(this);
|
||||
mTexLayers.push_back(layer);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLLocalTextureObject::addTexLayer(LLTexLayerTemplate *new_tex_layer, LLWearable *wearable)
|
||||
bool LLLocalTextureObject::addTexLayer(LLTexLayerTemplate *new_tex_layer, LLWearable *wearable)
|
||||
{
|
||||
if (new_tex_layer == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLTexLayer *layer = new LLTexLayer(*new_tex_layer, this, wearable);
|
||||
layer->setLTO(this);
|
||||
mTexLayers.push_back(layer);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLLocalTextureObject::removeTexLayer(U32 index)
|
||||
bool LLLocalTextureObject::removeTexLayer(U32 index)
|
||||
{
|
||||
if (index >= getNumTexLayers())
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
tex_layer_vec_t::iterator iter = mTexLayers.begin();
|
||||
iter += index;
|
||||
|
||||
delete *iter;
|
||||
mTexLayers.erase(iter);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLLocalTextureObject::setID(LLUUID new_id)
|
||||
|
|
@ -206,7 +206,7 @@ void LLLocalTextureObject::setDiscard(S32 new_discard)
|
|||
mDiscard = new_discard;
|
||||
}
|
||||
|
||||
void LLLocalTextureObject::setBakedReady(BOOL ready)
|
||||
void LLLocalTextureObject::setBakedReady(bool ready)
|
||||
{
|
||||
mIsBakedReady = ready;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,17 +53,17 @@ public:
|
|||
U32 getNumTexLayers() const;
|
||||
LLUUID getID() const;
|
||||
S32 getDiscard() const;
|
||||
BOOL getBakedReady() const;
|
||||
bool getBakedReady() const;
|
||||
|
||||
void setImage(LLGLTexture* new_image);
|
||||
BOOL setTexLayer(LLTexLayer *new_tex_layer, U32 index);
|
||||
BOOL addTexLayer(LLTexLayer *new_tex_layer, LLWearable *wearable);
|
||||
BOOL addTexLayer(LLTexLayerTemplate *new_tex_layer, LLWearable *wearable);
|
||||
BOOL removeTexLayer(U32 index);
|
||||
bool setTexLayer(LLTexLayer *new_tex_layer, U32 index);
|
||||
bool addTexLayer(LLTexLayer *new_tex_layer, LLWearable *wearable);
|
||||
bool addTexLayer(LLTexLayerTemplate *new_tex_layer, LLWearable *wearable);
|
||||
bool removeTexLayer(U32 index);
|
||||
|
||||
void setID(LLUUID new_id);
|
||||
void setDiscard(S32 new_discard);
|
||||
void setBakedReady(BOOL ready);
|
||||
void setBakedReady(bool ready);
|
||||
|
||||
protected:
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ private:
|
|||
|
||||
LLUUID mID;
|
||||
|
||||
BOOL mIsBakedReady;
|
||||
bool mIsBakedReady;
|
||||
S32 mDiscard;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -72,8 +72,8 @@ LLPolyMeshSharedData::LLPolyMeshSharedData()
|
|||
mTexCoords = NULL;
|
||||
mDetailTexCoords = NULL;
|
||||
mWeights = NULL;
|
||||
mHasWeights = FALSE;
|
||||
mHasDetailTexCoords = FALSE;
|
||||
mHasWeights = false;
|
||||
mHasDetailTexCoords = false;
|
||||
|
||||
mNumFaces = 0;
|
||||
mFaces = NULL;
|
||||
|
|
@ -225,7 +225,7 @@ U32 LLPolyMeshSharedData::getNumKB()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLPolyMeshSharedData::allocateVertexData()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMeshSharedData::allocateVertexData( U32 numVertices )
|
||||
bool LLPolyMeshSharedData::allocateVertexData( U32 numVertices )
|
||||
{
|
||||
U32 i;
|
||||
mBaseCoords = (LLVector4a*) ll_aligned_malloc_16(numVertices*sizeof(LLVector4a));
|
||||
|
|
@ -243,34 +243,34 @@ BOOL LLPolyMeshSharedData::allocateVertexData( U32 numVertices )
|
|||
mWeights[i] = 0.f;
|
||||
}
|
||||
mNumVertices = numVertices;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLPolyMeshSharedData::allocateFaceData()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMeshSharedData::allocateFaceData( U32 numFaces )
|
||||
bool LLPolyMeshSharedData::allocateFaceData( U32 numFaces )
|
||||
{
|
||||
mFaces = new LLPolyFace[ numFaces ];
|
||||
mNumFaces = numFaces;
|
||||
mNumTriangleIndices = mNumFaces * 3;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLPolyMeshSharedData::allocateJointNames()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMeshSharedData::allocateJointNames( U32 numJointNames )
|
||||
bool LLPolyMeshSharedData::allocateJointNames( U32 numJointNames )
|
||||
{
|
||||
mJointNames = new std::string[ numJointNames ];
|
||||
mNumJointNames = numJointNames;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// LLPolyMeshSharedData::loadMesh()
|
||||
//--------------------------------------------------------------------
|
||||
BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
||||
bool LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
||||
{
|
||||
//-------------------------------------------------------------------------
|
||||
// Open the file
|
||||
|
|
@ -278,13 +278,13 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if(fileName.empty())
|
||||
{
|
||||
LL_ERRS() << "Filename is Empty!" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
LLFILE* fp = LLFile::fopen(fileName, "rb"); /*Flawfinder: ignore*/
|
||||
if (!fp)
|
||||
{
|
||||
LL_ERRS() << "can't open: " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -299,7 +299,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
//-------------------------------------------------------------------------
|
||||
// Check for proper binary header
|
||||
//-------------------------------------------------------------------------
|
||||
BOOL status = FALSE;
|
||||
bool status = false;
|
||||
if ( strncmp(header, HEADER_BINARY, strlen(HEADER_BINARY)) == 0 ) /*Flawfinder: ignore*/
|
||||
{
|
||||
LL_DEBUGS() << "Loading " << fileName << LL_ENDL;
|
||||
|
|
@ -317,11 +317,11 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read HasWeights flag from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if (!isLOD())
|
||||
{
|
||||
mHasWeights = (hasWeights==0) ? FALSE : TRUE;
|
||||
mHasWeights = hasWeights > 0;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------
|
||||
|
|
@ -332,7 +332,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read HasDetailTexCoords flag from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------
|
||||
|
|
@ -344,7 +344,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << "can't read Position from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
setPosition( position );
|
||||
|
||||
|
|
@ -357,7 +357,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << "can't read RotationAngles from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
U8 rotationOrder;
|
||||
|
|
@ -366,7 +366,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read RotationOrder from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
rotationOrder = 0;
|
||||
|
|
@ -385,7 +385,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << "can't read Scale from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
setScale( scale );
|
||||
|
||||
|
|
@ -406,7 +406,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read NumVertices from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
allocateVertexData( numVertices );
|
||||
|
|
@ -421,7 +421,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << "can't read Coordinates from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -435,7 +435,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << " can't read Normals from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -449,7 +449,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << " can't read Binormals from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -461,7 +461,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != numVertices)
|
||||
{
|
||||
LL_ERRS() << "can't read TexCoords from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------
|
||||
|
|
@ -474,7 +474,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != numVertices)
|
||||
{
|
||||
LL_ERRS() << "can't read DetailTexCoords from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -488,7 +488,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != numVertices)
|
||||
{
|
||||
LL_ERRS() << "can't read Weights from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -502,7 +502,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read NumFaces from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
allocateFaceData( numFaces );
|
||||
|
||||
|
|
@ -520,7 +520,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_ERRS() << "can't read Face[" << i << "] from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if (mReferenceData)
|
||||
{
|
||||
|
|
@ -577,7 +577,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read NumSkinJoints from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
allocateJointNames( numSkinJoints );
|
||||
}
|
||||
|
|
@ -593,7 +593,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_ERRS() << "can't read Skin[" << i << "].Name from " << fileName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string *jn = &mJointNames[i];
|
||||
|
|
@ -615,7 +615,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
std::string morph_name(morphName);
|
||||
LLPolyMorphData* morph_data = new LLPolyMorphData(morph_name);
|
||||
|
||||
BOOL result = morph_data->loadBinary(fp, this);
|
||||
bool result = morph_data->loadBinary(fp, this);
|
||||
|
||||
if (!result)
|
||||
{
|
||||
|
|
@ -705,12 +705,12 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
|
|||
}
|
||||
}
|
||||
|
||||
status = TRUE;
|
||||
status = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_ERRS() << "invalid mesh file header: " << fileName << LL_ENDL;
|
||||
status = FALSE;
|
||||
status = false;
|
||||
}
|
||||
|
||||
if (0 == mNumJointNames)
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ private:
|
|||
LLVector2 *mDetailTexCoords;
|
||||
F32 *mWeights;
|
||||
|
||||
BOOL mHasWeights;
|
||||
BOOL mHasDetailTexCoords;
|
||||
bool mHasWeights;
|
||||
bool mHasDetailTexCoords;
|
||||
|
||||
// face data
|
||||
S32 mNumFaces;
|
||||
|
|
@ -119,17 +119,17 @@ private:
|
|||
void setRotation( const LLQuaternion &rot ) { mRotation = rot; }
|
||||
void setScale( const LLVector3 &scale ) { mScale = scale; }
|
||||
|
||||
BOOL allocateVertexData( U32 numVertices );
|
||||
bool allocateVertexData( U32 numVertices );
|
||||
|
||||
BOOL allocateFaceData( U32 numFaces );
|
||||
bool allocateFaceData( U32 numFaces );
|
||||
|
||||
BOOL allocateJointNames( U32 numJointNames );
|
||||
bool allocateJointNames( U32 numJointNames );
|
||||
|
||||
// Retrieve the number of KB of memory used by this instance
|
||||
U32 getNumKB();
|
||||
|
||||
// Load mesh data from file
|
||||
BOOL loadMesh( const std::string& fileName );
|
||||
bool loadMesh( const std::string& fileName );
|
||||
|
||||
public:
|
||||
void genIndices(S32 offset);
|
||||
|
|
@ -138,7 +138,7 @@ public:
|
|||
|
||||
const S32 *getSharedVert(S32 vert);
|
||||
|
||||
BOOL isLOD() { return (mReferenceData != NULL); }
|
||||
bool isLOD() { return (mReferenceData != NULL); }
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -204,13 +204,13 @@ public:
|
|||
}
|
||||
|
||||
// Returns whether or not the mesh has detail texture coords
|
||||
BOOL hasDetailTexCoords() {
|
||||
bool hasDetailTexCoords() {
|
||||
llassert (mSharedData);
|
||||
return mSharedData->mHasDetailTexCoords;
|
||||
}
|
||||
|
||||
// Returns whether or not the mesh has vertex weights
|
||||
BOOL hasWeights() const{
|
||||
bool hasWeights() const{
|
||||
llassert (mSharedData);
|
||||
return mSharedData->mHasWeights;
|
||||
}
|
||||
|
|
@ -316,7 +316,7 @@ public:
|
|||
// Get indices
|
||||
U32* getIndices() { return mSharedData ? mSharedData->mTriangleIndices : NULL; }
|
||||
|
||||
BOOL isLOD() { return mSharedData && mSharedData->isLOD(); }
|
||||
bool isLOD() { return mSharedData && mSharedData->isLOD(); }
|
||||
|
||||
void setAvatar(LLAvatarAppearance* avatarp) { mAvatarp = avatarp; }
|
||||
LLAvatarAppearance* getAvatar() { return mAvatarp; }
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ LLPolyMorphData::~LLPolyMorphData()
|
|||
//-----------------------------------------------------------------------------
|
||||
// loadBinary()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
||||
bool LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
||||
{
|
||||
S32 numVertices;
|
||||
S32 numRead;
|
||||
|
|
@ -114,7 +114,7 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_WARNS() << "Can't read number of morph target vertices" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -151,14 +151,14 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
if (numRead != 1)
|
||||
{
|
||||
LL_WARNS() << "Can't read morph target vertex number" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mVertexIndices[v] > 10000)
|
||||
{
|
||||
// Bad install? These are usually .llm files from 'character' fodler
|
||||
LL_WARNS() << "Bad morph index " << v << ": " << mVertexIndices[v] << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -167,7 +167,7 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_WARNS() << "Can't read morph target vertex coordinates" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
F32 magnitude = mCoords[v].getLength3().getF32();
|
||||
|
|
@ -187,7 +187,7 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_WARNS() << "Can't read morph target normal" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
numRead = fread(&mBinormals[v], sizeof(F32), 3, fp);
|
||||
|
|
@ -195,7 +195,7 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
if (numRead != 3)
|
||||
{
|
||||
LL_WARNS() << "Can't read morph target binormal" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -204,7 +204,7 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
if (numRead != 2)
|
||||
{
|
||||
LL_WARNS() << "Can't read morph target uv" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
mNumIndices++;
|
||||
|
|
@ -213,7 +213,7 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
|||
mAvgDistortion.mul(1.f/(F32)mNumIndices);
|
||||
mAvgDistortion.normalize3fast();
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -256,23 +256,23 @@ void LLPolyMorphData::freeData()
|
|||
// LLPolyMorphTargetInfo()
|
||||
//-----------------------------------------------------------------------------
|
||||
LLPolyMorphTargetInfo::LLPolyMorphTargetInfo()
|
||||
: mIsClothingMorph(FALSE)
|
||||
: mIsClothingMorph(false)
|
||||
{
|
||||
}
|
||||
|
||||
BOOL LLPolyMorphTargetInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLPolyMorphTargetInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
llassert( node->hasName( "param" ) && node->getChildByName( "param_morph" ) );
|
||||
|
||||
if (!LLViewerVisualParamInfo::parseXml(node))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
// Get mixed-case name
|
||||
static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
|
||||
if( !node->getFastAttributeString( name_string, mMorphName ) )
|
||||
{
|
||||
LL_WARNS() << "Avatar file: <param> is missing name attribute" << LL_ENDL;
|
||||
return FALSE; // Continue, ignoring this tag
|
||||
return false; // Continue, ignoring this tag
|
||||
}
|
||||
|
||||
static LLStdStringHandle clothing_morph_string = LLXmlTree::addAttributeString("clothing_morph");
|
||||
|
|
@ -284,7 +284,7 @@ BOOL LLPolyMorphTargetInfo::parseXml(LLXmlTreeNode* node)
|
|||
{
|
||||
LL_WARNS() << "Failed to getChildByName(\"param_morph\")"
|
||||
<< LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
for (LLXmlTreeNode* child_node = paramNode->getFirstChild();
|
||||
|
|
@ -310,7 +310,7 @@ BOOL LLPolyMorphTargetInfo::parseXml(LLXmlTreeNode* node)
|
|||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -353,16 +353,16 @@ LLPolyMorphTarget::~LLPolyMorphTarget()
|
|||
//-----------------------------------------------------------------------------
|
||||
// setInfo()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
|
||||
bool LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
|
||||
{
|
||||
llassert(mInfo == NULL);
|
||||
if (info->mID < 0)
|
||||
return FALSE;
|
||||
return false;
|
||||
mInfo = info;
|
||||
mID = info->mID;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(getDefaultWeight());
|
||||
setWeight(getDefaultWeight(), FALSE);
|
||||
setWeight(getDefaultWeight(), false);
|
||||
|
||||
LLAvatarAppearance* avatarp = mMesh->getAvatar();
|
||||
for (LLPolyVolumeMorphInfo& volume_info : getInfo()->mVolumeInfoList)
|
||||
|
|
@ -396,9 +396,9 @@ BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
|
|||
if (!mMorphData)
|
||||
{
|
||||
LL_WARNS() << "No morph target named " << morph_param_name << " found in mesh." << LL_ENDL;
|
||||
return FALSE; // Continue, ignoring this tag
|
||||
return false; // Continue, ignoring this tag
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*virtual*/ LLViewerVisualParam* LLPolyMorphTarget::cloneParam(LLWearable* wearable) const
|
||||
|
|
@ -410,7 +410,7 @@ BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
|
|||
//-----------------------------------------------------------------------------
|
||||
// parseData()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMorphTarget::parseData(LLXmlTreeNode* node)
|
||||
bool LLPolyMorphTarget::parseData(LLXmlTreeNode* node)
|
||||
{
|
||||
LLPolyMorphTargetInfo* info = new LLPolyMorphTargetInfo;
|
||||
|
||||
|
|
@ -418,9 +418,9 @@ BOOL LLPolyMorphTarget::parseData(LLXmlTreeNode* node)
|
|||
if (!setInfo(info))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -661,7 +661,7 @@ void LLPolyMorphTarget::apply( ESex avatar_sex )
|
|||
//-----------------------------------------------------------------------------
|
||||
// applyMask()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLPolyMorphTarget::applyMask(U8 *maskTextureData, S32 width, S32 height, S32 num_components, BOOL invert)
|
||||
void LLPolyMorphTarget::applyMask(const U8 *maskTextureData, S32 width, S32 height, S32 num_components, bool invert)
|
||||
{
|
||||
LLVector4a *clothing_weights = getInfo()->mIsClothingMorph ? mMesh->getWritableClothingWeights() : NULL;
|
||||
|
||||
|
|
@ -751,7 +751,7 @@ void LLPolyMorphTarget::applyVolumeChanges(F32 delta_weight)
|
|||
LLPolyVertexMask::LLPolyVertexMask(LLPolyMorphData* morph_data)
|
||||
: mWeights(new F32[morph_data->mNumIndices]),
|
||||
mMorphData(morph_data),
|
||||
mWeightsGenerated(FALSE)
|
||||
mWeightsGenerated(false)
|
||||
{
|
||||
llassert(mMorphData != NULL);
|
||||
llassert(mMorphData->mNumIndices > 0);
|
||||
|
|
@ -782,10 +782,10 @@ LLPolyVertexMask::~LLPolyVertexMask()
|
|||
//-----------------------------------------------------------------------------
|
||||
// generateMask()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLPolyVertexMask::generateMask(U8 *maskTextureData, S32 width, S32 height, S32 num_components, BOOL invert, LLVector4a *clothing_weights)
|
||||
void LLPolyVertexMask::generateMask(const U8 *maskTextureData, S32 width, S32 height, S32 num_components, bool invert, LLVector4a *clothing_weights)
|
||||
{
|
||||
// RN debug output that uses Image Debugger (http://www.cs.unc.edu/~baxter/projects/imdebug/)
|
||||
// BOOL debugImg = FALSE;
|
||||
// bool debugImg = false;
|
||||
// if (debugImg)
|
||||
// {
|
||||
// if (invert)
|
||||
|
|
@ -829,7 +829,7 @@ void LLPolyVertexMask::generateMask(U8 *maskTextureData, S32 width, S32 height,
|
|||
clothing_weights[vertIndex].getF32ptr()[VW] = mWeights[index];
|
||||
}
|
||||
}
|
||||
mWeightsGenerated = TRUE;
|
||||
mWeightsGenerated = true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public:
|
|||
~LLPolyMorphData();
|
||||
LLPolyMorphData(const LLPolyMorphData &rhs);
|
||||
|
||||
BOOL loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh);
|
||||
bool loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh);
|
||||
const std::string& getName() { return mName; }
|
||||
|
||||
public:
|
||||
|
|
@ -84,14 +84,14 @@ public:
|
|||
LLPolyVertexMask(const LLPolyVertexMask& pOther);
|
||||
~LLPolyVertexMask();
|
||||
|
||||
void generateMask(U8 *maskData, S32 width, S32 height, S32 num_components, BOOL invert, LLVector4a *clothing_weights);
|
||||
void generateMask(const U8 *maskData, S32 width, S32 height, S32 num_components, bool invert, LLVector4a *clothing_weights);
|
||||
F32* getMorphMaskWeights();
|
||||
|
||||
|
||||
protected:
|
||||
F32* mWeights;
|
||||
LLPolyMorphData *mMorphData;
|
||||
BOOL mWeightsGenerated;
|
||||
bool mWeightsGenerated;
|
||||
|
||||
};
|
||||
|
||||
|
|
@ -129,11 +129,11 @@ public:
|
|||
LLPolyMorphTargetInfo();
|
||||
/*virtual*/ ~LLPolyMorphTargetInfo() {};
|
||||
|
||||
/*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
|
||||
/*virtual*/ bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
protected:
|
||||
std::string mMorphName;
|
||||
BOOL mIsClothingMorph;
|
||||
bool mIsClothingMorph;
|
||||
typedef std::vector<LLPolyVolumeMorphInfo> volume_info_list_t;
|
||||
volume_info_list_t mVolumeInfoList;
|
||||
};
|
||||
|
|
@ -154,12 +154,12 @@ public:
|
|||
// Special: These functions are overridden by child classes
|
||||
LLPolyMorphTargetInfo* getInfo() const { return (LLPolyMorphTargetInfo*)mInfo; }
|
||||
// This sets mInfo and calls initialization functions
|
||||
BOOL setInfo(LLPolyMorphTargetInfo *info);
|
||||
bool setInfo(LLPolyMorphTargetInfo *info);
|
||||
|
||||
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
|
||||
|
||||
// LLVisualParam Virtual functions
|
||||
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
|
||||
///*virtual*/ bool parseData(LLXmlTreeNode* node);
|
||||
/*virtual*/ void apply( ESex sex );
|
||||
|
||||
// LLViewerVisualParam Virtual functions
|
||||
|
|
@ -170,7 +170,7 @@ public:
|
|||
/*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh);
|
||||
/*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh);
|
||||
|
||||
void applyMask(U8 *maskData, S32 width, S32 height, S32 num_components, BOOL invert);
|
||||
void applyMask(const U8 *maskData, S32 width, S32 height, S32 num_components, bool invert);
|
||||
void addPendingMorphMask() { mNumMorphMasksPending++; }
|
||||
|
||||
void applyVolumeChanges(F32 delta_weight); // SL-315 - for resetSkeleton()
|
||||
|
|
@ -183,7 +183,7 @@ protected:
|
|||
LLPolyVertexMask * mVertMask;
|
||||
ESex mLastSex;
|
||||
// number of morph masks that haven't been generated, must be 0 before this morph is applied
|
||||
BOOL mNumMorphMasksPending;
|
||||
S32 mNumMorphMasksPending;
|
||||
|
||||
typedef std::vector<LLPolyVolumeMorph> volume_list_t;
|
||||
volume_list_t mVolumeMorphs;
|
||||
|
|
|
|||
|
|
@ -45,12 +45,12 @@ LLPolySkeletalDistortionInfo::LLPolySkeletalDistortionInfo()
|
|||
{
|
||||
}
|
||||
|
||||
BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
llassert( node->hasName( "param" ) && node->getChildByName( "param_skeleton" ) );
|
||||
|
||||
if (!LLViewerVisualParamInfo::parseXml(node))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
LLXmlTreeNode* skeletalParam = node->getChildByName("param_skeleton");
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
|
|||
{
|
||||
LL_WARNS() << "Failed to getChildByName(\"param_skeleton\")"
|
||||
<< LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
for( LLXmlTreeNode* bone = skeletalParam->getFirstChild(); bone; bone = skeletalParam->getNextChild() )
|
||||
|
|
@ -68,7 +68,7 @@ BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
|
|||
std::string name;
|
||||
LLVector3 scale;
|
||||
LLVector3 pos;
|
||||
BOOL haspos = FALSE;
|
||||
bool haspos = false;
|
||||
|
||||
static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
|
||||
if (!bone->getFastAttributeString(name_string, name))
|
||||
|
|
@ -88,7 +88,7 @@ BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
|
|||
static LLStdStringHandle offset_string = LLXmlTree::addAttributeString("offset");
|
||||
if (bone->getFastAttributeVector3(offset_string, pos))
|
||||
{
|
||||
haspos = TRUE;
|
||||
haspos = true;
|
||||
}
|
||||
mBoneInfoList.push_back(LLPolySkeletalBoneInfo(name, scale, pos, haspos));
|
||||
}
|
||||
|
|
@ -98,7 +98,7 @@ BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
|
|||
continue;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -133,17 +133,17 @@ LLPolySkeletalDistortion::~LLPolySkeletalDistortion()
|
|||
{
|
||||
}
|
||||
|
||||
BOOL LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info)
|
||||
bool LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info)
|
||||
{
|
||||
if (info->mID < 0)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mInfo = info;
|
||||
mID = info->mID;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(getDefaultWeight());
|
||||
setWeight(getDefaultWeight(), FALSE);
|
||||
setWeight(getDefaultWeight(), false);
|
||||
|
||||
for (LLPolySkeletalBoneInfo& bone_info : getInfo()->mBoneInfoList)
|
||||
{
|
||||
|
|
@ -153,7 +153,7 @@ BOOL LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info)
|
|||
// There's no point continuing after this error - means
|
||||
// that either the skeleton or lad file is broken.
|
||||
LL_WARNS() << "Joint " << bone_info.mBoneName << " not found." << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// store it
|
||||
|
|
@ -176,7 +176,7 @@ BOOL LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info)
|
|||
mJointOffsets[joint] = bone_info.mPositionDeformation;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*virtual*/ LLViewerVisualParam* LLPolySkeletalDistortion::cloneParam(LLWearable* wearable) const
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class LLAvatarAppearance;
|
|||
//-----------------------------------------------------------------------------
|
||||
struct LLPolySkeletalBoneInfo
|
||||
{
|
||||
LLPolySkeletalBoneInfo(std::string &name, LLVector3 &scale, LLVector3 &pos, BOOL haspos)
|
||||
LLPolySkeletalBoneInfo(std::string &name, LLVector3 &scale, LLVector3 &pos, bool haspos)
|
||||
: mBoneName(name),
|
||||
mScaleDeformation(scale),
|
||||
mPositionDeformation(pos),
|
||||
|
|
@ -59,7 +59,7 @@ struct LLPolySkeletalBoneInfo
|
|||
std::string mBoneName;
|
||||
LLVector3 mScaleDeformation;
|
||||
LLVector3 mPositionDeformation;
|
||||
BOOL mHasPositionDeformation;
|
||||
bool mHasPositionDeformation;
|
||||
};
|
||||
|
||||
class alignas(16) LLPolySkeletalDistortionInfo : public LLViewerVisualParamInfo
|
||||
|
|
@ -71,7 +71,7 @@ public:
|
|||
LLPolySkeletalDistortionInfo();
|
||||
/*virtual*/ ~LLPolySkeletalDistortionInfo() {};
|
||||
|
||||
/*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
|
||||
/*virtual*/ bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
protected:
|
||||
typedef std::vector<LLPolySkeletalBoneInfo> bone_info_list_t;
|
||||
|
|
@ -92,12 +92,12 @@ public:
|
|||
// Special: These functions are overridden by child classes
|
||||
LLPolySkeletalDistortionInfo* getInfo() const { return (LLPolySkeletalDistortionInfo*)mInfo; }
|
||||
// This sets mInfo and calls initialization functions
|
||||
BOOL setInfo(LLPolySkeletalDistortionInfo *info);
|
||||
bool setInfo(LLPolySkeletalDistortionInfo *info);
|
||||
|
||||
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
|
||||
|
||||
// LLVisualParam Virtual functions
|
||||
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
|
||||
///*virtual*/ bool parseData(LLXmlTreeNode* node);
|
||||
/*virtual*/ void apply( ESex sex );
|
||||
|
||||
// LLViewerVisualParam Virtual functions
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ LLTexGlobalColor::~LLTexGlobalColor()
|
|||
//std::for_each(mParamColorList.begin(), mParamColorList.end(), DeletePointer());
|
||||
}
|
||||
|
||||
BOOL LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info)
|
||||
bool LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info)
|
||||
{
|
||||
llassert(mInfo == NULL);
|
||||
mInfo = info;
|
||||
|
|
@ -58,15 +58,15 @@ BOOL LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info)
|
|||
for (LLTexLayerParamColorInfo* color_info : mInfo->mParamColorInfoList)
|
||||
{
|
||||
LLTexParamGlobalColor* param_color = new LLTexParamGlobalColor(this);
|
||||
if (!param_color->setInfo(color_info, TRUE))
|
||||
if (!param_color->setInfo(color_info, true))
|
||||
{
|
||||
mInfo = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mParamGlobalColorList.push_back(param_color);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
LLColor4 LLTexGlobalColor::getColor() const
|
||||
|
|
@ -140,14 +140,14 @@ LLTexGlobalColorInfo::~LLTexGlobalColorInfo()
|
|||
mParamColorInfoList.clear();
|
||||
}
|
||||
|
||||
BOOL LLTexGlobalColorInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLTexGlobalColorInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
// name attribute
|
||||
static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
|
||||
if (!node->getFastAttributeString(name_string, mName))
|
||||
{
|
||||
LL_WARNS() << "<global_color> element is missing name attribute." << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
// <param> sub-element
|
||||
for (LLXmlTreeNode* child = node->getChildByName("param");
|
||||
|
|
@ -161,10 +161,10 @@ BOOL LLTexGlobalColorInfo::parseXml(LLXmlTreeNode* node)
|
|||
if (!info->parseXml(child))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mParamColorInfoList.push_back(info);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public:
|
|||
|
||||
LLTexGlobalColorInfo* getInfo() const { return mInfo; }
|
||||
// This sets mInfo and calls initialization functions
|
||||
BOOL setInfo(LLTexGlobalColorInfo *info);
|
||||
bool setInfo(LLTexGlobalColorInfo *info);
|
||||
|
||||
LLAvatarAppearance* getAvatarAppearance() const { return mAvatarAppearance; }
|
||||
LLColor4 getColor() const;
|
||||
|
|
@ -62,7 +62,7 @@ public:
|
|||
LLTexGlobalColorInfo();
|
||||
~LLTexGlobalColorInfo();
|
||||
|
||||
BOOL parseXml(LLXmlTreeNode* node);
|
||||
bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
private:
|
||||
param_color_info_list_t mParamColorInfoList;
|
||||
|
|
|
|||
|
|
@ -59,17 +59,17 @@ public:
|
|||
LLTexLayerInfo();
|
||||
~LLTexLayerInfo();
|
||||
|
||||
BOOL parseXml(LLXmlTreeNode* node);
|
||||
BOOL createVisualParams(LLAvatarAppearance *appearance);
|
||||
BOOL isUserSettable() { return mLocalTexture != -1; }
|
||||
bool parseXml(LLXmlTreeNode* node);
|
||||
bool createVisualParams(LLAvatarAppearance *appearance);
|
||||
bool isUserSettable() { return mLocalTexture != -1; }
|
||||
S32 getLocalTexture() const { return mLocalTexture; }
|
||||
BOOL getOnlyAlpha() const { return mUseLocalTextureAlphaOnly; }
|
||||
bool getOnlyAlpha() const { return mUseLocalTextureAlphaOnly; }
|
||||
std::string getName() const { return mName; }
|
||||
|
||||
private:
|
||||
std::string mName;
|
||||
|
||||
BOOL mWriteAllChannels; // Don't use masking. Just write RGBA into buffer,
|
||||
bool mWriteAllChannels; // Don't use masking. Just write RGBA into buffer,
|
||||
LLTexLayerInterface::ERenderPass mRenderPass;
|
||||
|
||||
std::string mGlobalColor;
|
||||
|
|
@ -77,11 +77,11 @@ private:
|
|||
|
||||
S32 mLocalTexture;
|
||||
std::string mStaticImageFileName;
|
||||
BOOL mStaticImageIsMask;
|
||||
BOOL mUseLocalTextureAlphaOnly; // Ignore RGB channels from the input texture. Use alpha as a mask
|
||||
BOOL mIsVisibilityMask;
|
||||
bool mStaticImageIsMask;
|
||||
bool mUseLocalTextureAlphaOnly; // Ignore RGB channels from the input texture. Use alpha as a mask
|
||||
bool mIsVisibilityMask;
|
||||
|
||||
typedef std::vector< std::pair< std::string,BOOL > > morph_name_list_t;
|
||||
typedef std::vector< std::pair< std::string,bool > > morph_name_list_t;
|
||||
morph_name_list_t mMorphNameList;
|
||||
param_color_info_list_t mParamColorInfoList;
|
||||
param_alpha_info_list_t mParamAlphaInfoList;
|
||||
|
|
@ -130,17 +130,17 @@ void LLTexLayerSetBuffer::preRenderTexLayerSet()
|
|||
}
|
||||
|
||||
// virtual
|
||||
void LLTexLayerSetBuffer::postRenderTexLayerSet(BOOL success)
|
||||
void LLTexLayerSetBuffer::postRenderTexLayerSet(bool success)
|
||||
{
|
||||
popProjection();
|
||||
}
|
||||
|
||||
BOOL LLTexLayerSetBuffer::renderTexLayerSet(LLRenderTarget* bound_target)
|
||||
bool LLTexLayerSetBuffer::renderTexLayerSet(LLRenderTarget* bound_target)
|
||||
{
|
||||
// Default color mask for tex layer render
|
||||
gGL.setColorMask(true, true);
|
||||
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
|
||||
gAlphaMaskProgram.bind();
|
||||
gAlphaMaskProgram.setMinimumAlpha(0.004f);
|
||||
|
|
@ -182,7 +182,7 @@ LLTexLayerSetInfo::LLTexLayerSetInfo() :
|
|||
mWidth( 1024 ),
|
||||
mHeight( 1024 ),
|
||||
// </FS:Beq>
|
||||
mClearAlpha( TRUE )
|
||||
mClearAlpha( true )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -192,12 +192,12 @@ LLTexLayerSetInfo::~LLTexLayerSetInfo( )
|
|||
mLayerInfoList.clear();
|
||||
}
|
||||
|
||||
BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
llassert( node->hasName( "layer_set" ) );
|
||||
if( !node->hasName( "layer_set" ) )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// body_region
|
||||
|
|
@ -205,20 +205,20 @@ BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
|
|||
if( !node->getFastAttributeString( body_region_string, mBodyRegion ) )
|
||||
{
|
||||
LL_WARNS() << "<layer_set> is missing body_region attribute" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// width, height
|
||||
static LLStdStringHandle width_string = LLXmlTree::addAttributeString("width");
|
||||
if( !node->getFastAttributeS32( width_string, mWidth ) )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle height_string = LLXmlTree::addAttributeString("height");
|
||||
if( !node->getFastAttributeS32( height_string, mHeight ) )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Optional alpha component to apply after all compositing is complete.
|
||||
|
|
@ -237,11 +237,11 @@ BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
|
|||
if( !info->parseXml( child ))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mLayerInfoList.push_back( info );
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// creates visual params without generating layersets or layers
|
||||
|
|
@ -259,11 +259,11 @@ void LLTexLayerSetInfo::createVisualParams(LLAvatarAppearance *appearance)
|
|||
// An ordered set of texture layers that get composited into a single texture.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLTexLayerSet::sHasCaches = FALSE;
|
||||
bool LLTexLayerSet::sHasCaches = false;
|
||||
|
||||
LLTexLayerSet::LLTexLayerSet(LLAvatarAppearance* const appearance) :
|
||||
mAvatarAppearance( appearance ),
|
||||
mIsVisible( TRUE ),
|
||||
mIsVisible( true ),
|
||||
mBakedTexIndex(LLAvatarAppearanceDefines::BAKED_HEAD),
|
||||
mInfo( NULL )
|
||||
{
|
||||
|
|
@ -284,7 +284,7 @@ LLTexLayerSet::~LLTexLayerSet()
|
|||
// setInfo
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
|
||||
bool LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
|
||||
{
|
||||
llassert(mInfo == NULL);
|
||||
mInfo = info;
|
||||
|
|
@ -306,7 +306,7 @@ BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
|
|||
if (!layer->setInfo(layer_info, NULL))
|
||||
{
|
||||
mInfo = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if (!layer->isVisibilityMask())
|
||||
{
|
||||
|
|
@ -322,7 +322,7 @@ BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
|
|||
|
||||
stop_glerror();
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
#if 0 // obsolete
|
||||
|
|
@ -330,21 +330,21 @@ BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
|
|||
// parseData
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLTexLayerSet::parseData(LLXmlTreeNode* node)
|
||||
bool LLTexLayerSet::parseData(LLXmlTreeNode* node)
|
||||
{
|
||||
LLTexLayerSetInfo *info = new LLTexLayerSetInfo;
|
||||
|
||||
if (!info->parseXml(node))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if (!setInfo(info))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -361,10 +361,10 @@ void LLTexLayerSet::deleteCaches()
|
|||
}
|
||||
|
||||
|
||||
BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target )
|
||||
bool LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target )
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
mIsVisible = TRUE;
|
||||
bool success = true;
|
||||
mIsVisible = true;
|
||||
|
||||
if (mMaskLayerList.size() > 0)
|
||||
{
|
||||
|
|
@ -372,7 +372,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height, LLRenderTarget*
|
|||
{
|
||||
if (layer->isInvisibleAlphaMask())
|
||||
{
|
||||
mIsVisible = FALSE;
|
||||
mIsVisible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -432,8 +432,8 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height, LLRenderTarget*
|
|||
}
|
||||
|
||||
|
||||
BOOL LLTexLayerSet::isBodyRegion(const std::string& region) const
|
||||
{
|
||||
bool LLTexLayerSet::isBodyRegion(const std::string& region) const
|
||||
{
|
||||
return mInfo->mBodyRegion == region;
|
||||
}
|
||||
|
||||
|
|
@ -491,7 +491,7 @@ void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height,
|
|||
{
|
||||
gGL.flush();
|
||||
{
|
||||
LLGLTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(info->mStaticAlphaFileName, TRUE);
|
||||
LLGLTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(info->mStaticAlphaFileName, true);
|
||||
if( tex )
|
||||
{
|
||||
LLGLSUIDefault gls_ui;
|
||||
|
|
@ -535,21 +535,21 @@ void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height,
|
|||
gGL.setSceneBlendType(LLRender::BT_ALPHA);
|
||||
}
|
||||
|
||||
void LLTexLayerSet::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components)
|
||||
void LLTexLayerSet::applyMorphMask(const U8* tex_data, S32 width, S32 height, S32 num_components)
|
||||
{
|
||||
mAvatarAppearance->applyMorphMask(tex_data, width, height, num_components, mBakedTexIndex);
|
||||
}
|
||||
|
||||
BOOL LLTexLayerSet::isMorphValid() const
|
||||
bool LLTexLayerSet::isMorphValid() const
|
||||
{
|
||||
for(const LLTexLayerInterface* layer : mLayerList)
|
||||
{
|
||||
if (layer && !layer->isMorphValid())
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLTexLayerSet::invalidateMorphMasks()
|
||||
|
|
@ -568,13 +568,13 @@ void LLTexLayerSet::invalidateMorphMasks()
|
|||
// LLTexLayerInfo
|
||||
//-----------------------------------------------------------------------------
|
||||
LLTexLayerInfo::LLTexLayerInfo() :
|
||||
mWriteAllChannels( FALSE ),
|
||||
mWriteAllChannels( false ),
|
||||
mRenderPass(LLTexLayer::RP_COLOR),
|
||||
mFixedColor( 0.f, 0.f, 0.f, 0.f ),
|
||||
mLocalTexture( -1 ),
|
||||
mStaticImageIsMask( FALSE ),
|
||||
mUseLocalTextureAlphaOnly(FALSE),
|
||||
mIsVisibilityMask(FALSE)
|
||||
mStaticImageIsMask( false ),
|
||||
mUseLocalTextureAlphaOnly(false),
|
||||
mIsVisibilityMask(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -586,7 +586,7 @@ LLTexLayerInfo::~LLTexLayerInfo( )
|
|||
mParamAlphaInfoList.clear();
|
||||
}
|
||||
|
||||
BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
llassert( node->hasName( "layer" ) );
|
||||
|
||||
|
|
@ -594,7 +594,7 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
|||
static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
|
||||
if( !node->getFastAttributeString( name_string, mName ) )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle write_all_channels_string = LLXmlTree::addAttributeString("write_all_channels");
|
||||
|
|
@ -616,7 +616,7 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
|||
node->getFastAttributeString( global_color_string, mGlobalColor );
|
||||
|
||||
// Visibility mask (optional)
|
||||
BOOL is_visibility;
|
||||
bool is_visibility;
|
||||
static LLStdStringHandle visibility_mask_string = LLXmlTree::addAttributeString("visibility_mask");
|
||||
if (node->getFastAttributeBOOL(visibility_mask_string, is_visibility))
|
||||
{
|
||||
|
|
@ -664,13 +664,13 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
|||
if (mLocalTexture == TEX_NUM_INDICES)
|
||||
{
|
||||
LL_WARNS() << "<texture> element has invalid local_texture attribute: " << mName << " " << local_texture_name << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "<texture> element is missing a required attribute. " << mName << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -682,10 +682,10 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
|||
static LLStdStringHandle morph_name_string = LLXmlTree::addAttributeString("morph_name");
|
||||
if (maskNode->getFastAttributeString(morph_name_string, morph_name))
|
||||
{
|
||||
BOOL invert = FALSE;
|
||||
bool invert = false;
|
||||
static LLStdStringHandle invert_string = LLXmlTree::addAttributeString("invert");
|
||||
maskNode->getFastAttributeBOOL(invert_string, invert);
|
||||
mMorphNameList.push_back(std::pair<std::string,BOOL>(morph_name,invert));
|
||||
mMorphNameList.push_back(std::pair<std::string,bool>(morph_name,invert));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -701,7 +701,7 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
|||
if (!info->parseXml(child))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mParamColorInfoList.push_back(info);
|
||||
}
|
||||
|
|
@ -712,37 +712,37 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
|
|||
if (!info->parseXml(child))
|
||||
{
|
||||
delete info;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
mParamAlphaInfoList.push_back(info);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLTexLayerInfo::createVisualParams(LLAvatarAppearance *appearance)
|
||||
bool LLTexLayerInfo::createVisualParams(LLAvatarAppearance *appearance)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
for (LLTexLayerParamColorInfo* color_info : mParamColorInfoList)
|
||||
{
|
||||
LLTexLayerParamColor* param_color = new LLTexLayerParamColor(appearance);
|
||||
if (!param_color->setInfo(color_info, TRUE))
|
||||
if (!param_color->setInfo(color_info, true))
|
||||
{
|
||||
LL_WARNS() << "NULL TexLayer Color Param could not be added to visual param list. Deleting." << LL_ENDL;
|
||||
delete param_color;
|
||||
success = FALSE;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
|
||||
for (LLTexLayerParamAlphaInfo* alpha_info : mParamAlphaInfoList)
|
||||
{
|
||||
LLTexLayerParamAlpha* param_alpha = new LLTexLayerParamAlpha(appearance);
|
||||
if (!param_alpha->setInfo(alpha_info, TRUE))
|
||||
if (!param_alpha->setInfo(alpha_info, true))
|
||||
{
|
||||
LL_WARNS() << "NULL TexLayer Alpha Param could not be added to visual param list. Deleting." << LL_ENDL;
|
||||
delete param_alpha;
|
||||
success = FALSE;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -751,9 +751,9 @@ BOOL LLTexLayerInfo::createVisualParams(LLAvatarAppearance *appearance)
|
|||
|
||||
LLTexLayerInterface::LLTexLayerInterface(LLTexLayerSet* const layer_set):
|
||||
mTexLayerSet( layer_set ),
|
||||
mMorphMasksValid( FALSE ),
|
||||
mMorphMasksValid( false ),
|
||||
mInfo(NULL),
|
||||
mHasMorph(FALSE)
|
||||
mHasMorph(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -767,7 +767,7 @@ LLTexLayerInterface::LLTexLayerInterface(const LLTexLayerInterface &layer, LLWea
|
|||
mHasMorph = layer.mHasMorph;
|
||||
}
|
||||
|
||||
BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearable ) // This sets mInfo and calls initialization functions
|
||||
bool LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearable ) // This sets mInfo and calls initialization functions
|
||||
{
|
||||
// setInfo should only be called once. Code is not robust enough to handle redefinition of a texlayer.
|
||||
// Not a critical warning, but could be useful for debugging later issues. -Nyx
|
||||
|
|
@ -785,10 +785,10 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab
|
|||
if (!wearable)
|
||||
{
|
||||
param_color = new LLTexLayerParamColor(this);
|
||||
if (!param_color->setInfo(color_info, TRUE))
|
||||
if (!param_color->setInfo(color_info, true))
|
||||
{
|
||||
mInfo = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -797,7 +797,7 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab
|
|||
if (!param_color)
|
||||
{
|
||||
mInfo = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
mParamColorList.push_back( param_color );
|
||||
|
|
@ -810,10 +810,10 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab
|
|||
if (!wearable)
|
||||
{
|
||||
param_alpha = new LLTexLayerParamAlpha( this );
|
||||
if (!param_alpha->setInfo(alpha_info, TRUE))
|
||||
if (!param_alpha->setInfo(alpha_info, true))
|
||||
{
|
||||
mInfo = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -822,13 +822,13 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab
|
|||
if (!param_alpha)
|
||||
{
|
||||
mInfo = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
mParamAlphaList.push_back( param_alpha );
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*virtual*/ void LLTexLayerInterface::requestUpdate()
|
||||
|
|
@ -900,14 +900,14 @@ const std::string& LLTexLayerInterface::getGlobalColor() const
|
|||
return mInfo->mGlobalColor;
|
||||
}
|
||||
|
||||
BOOL LLTexLayerInterface::isVisibilityMask() const
|
||||
bool LLTexLayerInterface::isVisibilityMask() const
|
||||
{
|
||||
return mInfo->mIsVisibilityMask;
|
||||
}
|
||||
|
||||
void LLTexLayerInterface::invalidateMorphMasks()
|
||||
{
|
||||
mMorphMasksValid = FALSE;
|
||||
mMorphMasksValid = false;
|
||||
}
|
||||
|
||||
LLViewerVisualParam* LLTexLayerInterface::getVisualParamPtr(S32 index) const
|
||||
|
|
@ -987,7 +987,7 @@ void LLTexLayer::asLLSD(LLSD& sd) const
|
|||
// setInfo
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLTexLayer::setInfo(const LLTexLayerInfo* info, LLWearable* wearable )
|
||||
bool LLTexLayer::setInfo(const LLTexLayerInfo* info, LLWearable* wearable )
|
||||
{
|
||||
return LLTexLayerInterface::setInfo(info, wearable);
|
||||
}
|
||||
|
|
@ -1027,14 +1027,14 @@ void LLTexLayer::calculateTexLayerColor(const param_color_list_t ¶m_list, LL
|
|||
}
|
||||
}
|
||||
|
||||
BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target)
|
||||
bool LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target)
|
||||
{
|
||||
// *TODO: Is this correct?
|
||||
//gPipeline.disableLights();
|
||||
stop_glerror();
|
||||
|
||||
LLColor4 net_color;
|
||||
BOOL color_specified = findNetColor(&net_color);
|
||||
bool color_specified = findNetColor(&net_color);
|
||||
|
||||
if (mTexLayerSet->getAvatarAppearance()->mIsDummy)
|
||||
{
|
||||
|
|
@ -1042,7 +1042,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
net_color = LLAvatarAppearance::getDummyColor();
|
||||
}
|
||||
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
|
||||
// If you can't see the layer, don't render it.
|
||||
if( is_approx_zero( net_color.mV[VW] ) )
|
||||
|
|
@ -1050,7 +1050,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
return success;
|
||||
}
|
||||
|
||||
BOOL alpha_mask_specified = FALSE;
|
||||
bool alpha_mask_specified = false;
|
||||
param_alpha_list_t::const_iterator iter = mParamAlphaList.begin();
|
||||
if( iter != mParamAlphaList.end() )
|
||||
{
|
||||
|
|
@ -1058,7 +1058,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
// However, we can't do this optimization if we have morph masks that need updating.
|
||||
/* if (!mHasMorph)
|
||||
{
|
||||
BOOL skip_layer = TRUE;
|
||||
bool skip_layer = true;
|
||||
|
||||
while( iter != mParamAlphaList.end() )
|
||||
{
|
||||
|
|
@ -1066,7 +1066,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
|
||||
if( !param->getSkip() )
|
||||
{
|
||||
skip_layer = FALSE;
|
||||
skip_layer = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1081,7 +1081,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
|
||||
const bool force_render = true;
|
||||
renderMorphMasks(x, y, width, height, net_color, bound_target, force_render);
|
||||
alpha_mask_specified = TRUE;
|
||||
alpha_mask_specified = true;
|
||||
gGL.flush();
|
||||
gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ONE_MINUS_DEST_ALPHA);
|
||||
}
|
||||
|
|
@ -1122,7 +1122,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
|
||||
LLTexUnit::eTextureAddressMode old_mode = tex->getAddressMode();
|
||||
|
||||
gGL.getTexUnit(0)->bind(tex, TRUE);
|
||||
gGL.getTexUnit(0)->bind(tex, true);
|
||||
gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
|
||||
|
||||
gl_rect_2d_simple_tex( width, height );
|
||||
|
|
@ -1137,7 +1137,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
}
|
||||
// else
|
||||
// {
|
||||
// success = FALSE;
|
||||
// success = false;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
@ -1148,13 +1148,13 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bou
|
|||
LLGLTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask);
|
||||
if( tex )
|
||||
{
|
||||
gGL.getTexUnit(0)->bind(tex, TRUE);
|
||||
gGL.getTexUnit(0)->bind(tex, true);
|
||||
gl_rect_2d_simple_tex( width, height );
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
}
|
||||
else
|
||||
{
|
||||
success = FALSE;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1206,7 +1206,7 @@ const U8* LLTexLayer::getAlphaData() const
|
|||
return (iter2 == mAlphaCache.end()) ? 0 : iter2->second;
|
||||
}
|
||||
|
||||
BOOL LLTexLayer::findNetColor(LLColor4* net_color) const
|
||||
bool LLTexLayer::findNetColor(LLColor4* net_color) const
|
||||
{
|
||||
// Color is either:
|
||||
// * one or more color parameters (weighted colors) (which may make use of a global color or fixed color)
|
||||
|
|
@ -1230,29 +1230,29 @@ BOOL LLTexLayer::findNetColor(LLColor4* net_color) const
|
|||
}
|
||||
|
||||
calculateTexLayerColor(mParamColorList, *net_color);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
if( !getGlobalColor().empty() )
|
||||
{
|
||||
net_color->setVec( mTexLayerSet->getAvatarAppearance()->getGlobalColor( getGlobalColor() ) );
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
if( getInfo()->mFixedColor.mV[VW] )
|
||||
{
|
||||
net_color->setVec( getInfo()->mFixedColor );
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
net_color->setToWhite();
|
||||
|
||||
return FALSE; // No need to draw a separate colored polygon
|
||||
return false; // No need to draw a separate colored polygon
|
||||
}
|
||||
|
||||
BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
|
||||
bool LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
|
||||
gGL.flush();
|
||||
|
||||
|
|
@ -1262,14 +1262,14 @@ BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
|
|||
if( tex )
|
||||
{
|
||||
gAlphaMaskProgram.setMinimumAlpha(0.f);
|
||||
gGL.getTexUnit(0)->bind(tex, TRUE);
|
||||
gGL.getTexUnit(0)->bind(tex, true);
|
||||
gl_rect_2d_simple_tex( width, height );
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
gAlphaMaskProgram.setMinimumAlpha(0.004f);
|
||||
}
|
||||
else
|
||||
{
|
||||
success = FALSE;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1304,7 +1304,7 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
|
|||
return;
|
||||
}
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
|
||||
llassert( !mParamAlphaList.empty() );
|
||||
|
||||
|
|
@ -1349,7 +1349,7 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
|
|||
{
|
||||
LLTexUnit::eTextureAddressMode old_mode = tex->getAddressMode();
|
||||
|
||||
gGL.getTexUnit(0)->bind(tex, TRUE);
|
||||
gGL.getTexUnit(0)->bind(tex, true);
|
||||
gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
|
||||
|
||||
gl_rect_2d_simple_tex( width, height );
|
||||
|
|
@ -1366,7 +1366,7 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
|
|||
{
|
||||
if( (tex->getComponents() == 4) || (tex->getComponents() == 1) )
|
||||
{
|
||||
gGL.getTexUnit(0)->bind(tex, TRUE);
|
||||
gGL.getTexUnit(0)->bind(tex, true);
|
||||
gl_rect_2d_simple_tex( width, height );
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
}
|
||||
|
|
@ -1547,7 +1547,7 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
|
|||
|
||||
getTexLayerSet()->getAvatarAppearance()->dirtyMesh();
|
||||
|
||||
mMorphMasksValid = TRUE;
|
||||
mMorphMasksValid = true;
|
||||
getTexLayerSet()->applyMorphMask(alpha_data, width, height, 1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1580,17 +1580,17 @@ void LLTexLayer::addAlphaMask(U8 *data, S32 originX, S32 originY, S32 width, S32
|
|||
}
|
||||
}
|
||||
|
||||
/*virtual*/ BOOL LLTexLayer::isInvisibleAlphaMask() const
|
||||
/*virtual*/ bool LLTexLayer::isInvisibleAlphaMask() const
|
||||
{
|
||||
if (mLocalTextureObject)
|
||||
{
|
||||
if (mLocalTextureObject->getID() == IMG_INVISIBLE)
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLUUID LLTexLayer::getUUID() const
|
||||
|
|
@ -1649,7 +1649,7 @@ LLTexLayerTemplate::~LLTexLayerTemplate()
|
|||
// setInfo
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/*virtual*/ BOOL LLTexLayerTemplate::setInfo(const LLTexLayerInfo* info, LLWearable* wearable )
|
||||
/*virtual*/ bool LLTexLayerTemplate::setInfo(const LLTexLayerInfo* info, LLWearable* wearable )
|
||||
{
|
||||
return LLTexLayerInterface::setInfo(info, wearable);
|
||||
}
|
||||
|
|
@ -1698,14 +1698,14 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
|
|||
return layer;
|
||||
}
|
||||
|
||||
/*virtual*/ BOOL LLTexLayerTemplate::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target)
|
||||
/*virtual*/ bool LLTexLayerTemplate::render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target)
|
||||
{
|
||||
if(!mInfo)
|
||||
{
|
||||
return FALSE ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
updateWearableCache();
|
||||
for (LLWearable* wearable : mWearableCache)
|
||||
{
|
||||
|
|
@ -1730,9 +1730,9 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
|
|||
return success;
|
||||
}
|
||||
|
||||
/*virtual*/ BOOL LLTexLayerTemplate::blendAlphaTexture( S32 x, S32 y, S32 width, S32 height) // Multiplies a single alpha texture against the frame buffer
|
||||
/*virtual*/ bool LLTexLayerTemplate::blendAlphaTexture( S32 x, S32 y, S32 width, S32 height) // Multiplies a single alpha texture against the frame buffer
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
U32 num_wearables = updateWearableCache();
|
||||
for (U32 i = 0; i < num_wearables; i++)
|
||||
{
|
||||
|
|
@ -1756,8 +1756,8 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
|
|||
}
|
||||
}
|
||||
|
||||
/*virtual*/ void LLTexLayerTemplate::setHasMorph(BOOL newval)
|
||||
{
|
||||
/*virtual*/ void LLTexLayerTemplate::setHasMorph(bool newval)
|
||||
{
|
||||
mHasMorph = newval;
|
||||
U32 num_wearables = updateWearableCache();
|
||||
for (U32 i = 0; i < num_wearables; i++)
|
||||
|
|
@ -1783,7 +1783,7 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
|
|||
}
|
||||
}
|
||||
|
||||
/*virtual*/ BOOL LLTexLayerTemplate::isInvisibleAlphaMask() const
|
||||
/*virtual*/ bool LLTexLayerTemplate::isInvisibleAlphaMask() const
|
||||
{
|
||||
U32 num_wearables = updateWearableCache();
|
||||
for (U32 i = 0; i < num_wearables; i++)
|
||||
|
|
@ -1793,12 +1793,12 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
|
|||
{
|
||||
if (layer->isInvisibleAlphaMask())
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1920,7 +1920,7 @@ LLImageTGA* LLTexLayerStaticImageList::getImageTGA(const std::string& file_name)
|
|||
|
||||
// Returns a GL Image (without a backing ImageRaw) that contains the decoded data from a tga file named file_name.
|
||||
// Caches the result to speed identical subsequent requests.
|
||||
LLGLTexture* LLTexLayerStaticImageList::getTexture(const std::string& file_name, BOOL is_mask)
|
||||
LLGLTexture* LLTexLayerStaticImageList::getTexture(const std::string& file_name, bool is_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
LLPointer<LLGLTexture> tex;
|
||||
|
|
@ -1934,7 +1934,7 @@ LLGLTexture* LLTexLayerStaticImageList::getTexture(const std::string& file_name,
|
|||
else
|
||||
{
|
||||
llassert(gTextureManagerBridgep);
|
||||
tex = gTextureManagerBridgep->getLocalTexture( FALSE );
|
||||
tex = gTextureManagerBridgep->getLocalTexture( false );
|
||||
LLPointer<LLImageRaw> image_raw = new LLImageRaw;
|
||||
if( loadImageRaw( file_name, image_raw ) )
|
||||
{
|
||||
|
|
@ -1950,7 +1950,7 @@ LLGLTexture* LLTexLayerStaticImageList::getTexture(const std::string& file_name,
|
|||
|
||||
image_raw->copyUnscaledAlphaMask(alpha_image_raw, LLColor4U::black);
|
||||
}
|
||||
tex->createGLTexture(0, image_raw, 0, TRUE, LLGLTexture::LOCAL);
|
||||
tex->createGLTexture(0, image_raw, 0, true, LLGLTexture::LOCAL);
|
||||
|
||||
gGL.getTexUnit(0)->bind(tex);
|
||||
tex->setAddressMode(LLTexUnit::TAM_CLAMP);
|
||||
|
|
@ -1968,11 +1968,11 @@ LLGLTexture* LLTexLayerStaticImageList::getTexture(const std::string& file_name,
|
|||
}
|
||||
|
||||
// Reads a .tga file, decodes it, and puts the decoded data in image_raw.
|
||||
// Returns TRUE if successful.
|
||||
BOOL LLTexLayerStaticImageList::loadImageRaw(const std::string& file_name, LLImageRaw* image_raw)
|
||||
// Returns true if successful.
|
||||
bool LLTexLayerStaticImageList::loadImageRaw(const std::string& file_name, LLImageRaw* image_raw)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
BOOL success = FALSE;
|
||||
bool success = false;
|
||||
std::string path;
|
||||
path = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,file_name);
|
||||
LLPointer<LLImageTGA> image_tga = new LLImageTGA( path );
|
||||
|
|
|
|||
|
|
@ -65,13 +65,13 @@ public:
|
|||
LLTexLayerInterface(const LLTexLayerInterface &layer, LLWearable *wearable);
|
||||
virtual ~LLTexLayerInterface() {}
|
||||
|
||||
virtual BOOL render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target) = 0;
|
||||
virtual bool render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target) = 0;
|
||||
virtual void deleteCaches() = 0;
|
||||
virtual BOOL blendAlphaTexture(S32 x, S32 y, S32 width, S32 height) = 0;
|
||||
virtual BOOL isInvisibleAlphaMask() const = 0;
|
||||
virtual bool blendAlphaTexture(S32 x, S32 y, S32 width, S32 height) = 0;
|
||||
virtual bool isInvisibleAlphaMask() const = 0;
|
||||
|
||||
const LLTexLayerInfo* getInfo() const { return mInfo; }
|
||||
virtual BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // sets mInfo, calls initialization functions
|
||||
virtual bool setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // sets mInfo, calls initialization functions
|
||||
LLWearableType::EType getWearableType() const;
|
||||
LLAvatarAppearanceDefines::ETextureIndex getLocalTextureIndex() const;
|
||||
|
||||
|
|
@ -80,16 +80,16 @@ public:
|
|||
LLTexLayerSet* const getTexLayerSet() { return mTexLayerSet; }
|
||||
|
||||
void invalidateMorphMasks();
|
||||
virtual void setHasMorph(BOOL newval) { mHasMorph = newval; }
|
||||
BOOL hasMorph() const { return mHasMorph; }
|
||||
BOOL isMorphValid() const { return mMorphMasksValid; }
|
||||
virtual void setHasMorph(bool newval) { mHasMorph = newval; }
|
||||
bool hasMorph() const { return mHasMorph; }
|
||||
bool isMorphValid() const { return mMorphMasksValid; }
|
||||
|
||||
void requestUpdate();
|
||||
virtual void gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height, LLRenderTarget* bound_target) = 0;
|
||||
BOOL hasAlphaParams() const { return !mParamAlphaList.empty(); }
|
||||
bool hasAlphaParams() const { return !mParamAlphaList.empty(); }
|
||||
|
||||
ERenderPass getRenderPass() const;
|
||||
BOOL isVisibilityMask() const;
|
||||
bool isVisibilityMask() const;
|
||||
|
||||
virtual void asLLSD(LLSD& sd) const {}
|
||||
|
||||
|
|
@ -100,8 +100,8 @@ protected:
|
|||
protected:
|
||||
LLTexLayerSet* const mTexLayerSet;
|
||||
const LLTexLayerInfo* mInfo;
|
||||
BOOL mMorphMasksValid;
|
||||
BOOL mHasMorph;
|
||||
bool mMorphMasksValid;
|
||||
bool mHasMorph;
|
||||
|
||||
// Layers can have either mParamColorList, mGlobalColor, or mFixedColor. They are looked for in that order.
|
||||
param_color_list_t mParamColorList;
|
||||
|
|
@ -121,13 +121,13 @@ public:
|
|||
LLTexLayerTemplate(LLTexLayerSet* const layer_set, LLAvatarAppearance* const appearance);
|
||||
LLTexLayerTemplate(const LLTexLayerTemplate &layer);
|
||||
/*virtual*/ ~LLTexLayerTemplate();
|
||||
/*virtual*/ BOOL render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
/*virtual*/ BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // This sets mInfo and calls initialization functions
|
||||
/*virtual*/ BOOL blendAlphaTexture(S32 x, S32 y, S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
|
||||
/*virtual*/ bool render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
/*virtual*/ bool setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // This sets mInfo and calls initialization functions
|
||||
/*virtual*/ bool blendAlphaTexture(S32 x, S32 y, S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
|
||||
/*virtual*/ void gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
/*virtual*/ void setHasMorph(BOOL newval);
|
||||
/*virtual*/ void setHasMorph(bool newval);
|
||||
/*virtual*/ void deleteCaches();
|
||||
/*virtual*/ BOOL isInvisibleAlphaMask() const;
|
||||
/*virtual*/ bool isInvisibleAlphaMask() const;
|
||||
protected:
|
||||
U32 updateWearableCache() const;
|
||||
LLTexLayer* getLayer(U32 i) const;
|
||||
|
|
@ -151,18 +151,18 @@ public:
|
|||
LLTexLayer(const LLTexLayerTemplate &layer_template, LLLocalTextureObject *lto, LLWearable *wearable);
|
||||
/*virtual*/ ~LLTexLayer();
|
||||
|
||||
/*virtual*/ BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // This sets mInfo and calls initialization functions
|
||||
/*virtual*/ BOOL render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
/*virtual*/ bool setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // This sets mInfo and calls initialization functions
|
||||
/*virtual*/ bool render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
|
||||
/*virtual*/ void deleteCaches();
|
||||
const U8* getAlphaData() const;
|
||||
|
||||
BOOL findNetColor(LLColor4* color) const;
|
||||
/*virtual*/ BOOL blendAlphaTexture(S32 x, S32 y, S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
|
||||
bool findNetColor(LLColor4* color) const;
|
||||
/*virtual*/ bool blendAlphaTexture(S32 x, S32 y, S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
|
||||
/*virtual*/ void gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
void renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLColor4 &layer_color, LLRenderTarget* bound_target, bool force_render);
|
||||
void addAlphaMask(U8 *data, S32 originX, S32 originY, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
/*virtual*/ BOOL isInvisibleAlphaMask() const;
|
||||
/*virtual*/ bool isInvisibleAlphaMask() const;
|
||||
|
||||
void setLTO(LLLocalTextureObject *lto) { mLocalTextureObject = lto; }
|
||||
LLLocalTextureObject* getLTO() { return mLocalTextureObject; }
|
||||
|
|
@ -197,14 +197,14 @@ public:
|
|||
void gatherMorphMaskAlpha(U8 *data, S32 origin_x, S32 origin_y, S32 width, S32 height, LLRenderTarget* bound_target);
|
||||
|
||||
const LLTexLayerSetInfo* getInfo() const { return mInfo; }
|
||||
BOOL setInfo(const LLTexLayerSetInfo *info); // This sets mInfo and calls initialization functions
|
||||
bool setInfo(const LLTexLayerSetInfo *info); // This sets mInfo and calls initialization functions
|
||||
|
||||
BOOL render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target = nullptr);
|
||||
bool render(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target = nullptr);
|
||||
void renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height, LLRenderTarget* bound_target = nullptr, bool forceClear = false);
|
||||
|
||||
BOOL isBodyRegion(const std::string& region) const;
|
||||
void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components);
|
||||
BOOL isMorphValid() const;
|
||||
bool isBodyRegion(const std::string& region) const;
|
||||
void applyMorphMask(const U8* tex_data, S32 width, S32 height, S32 num_components);
|
||||
bool isMorphValid() const;
|
||||
virtual void requestUpdate() = 0;
|
||||
void invalidateMorphMasks();
|
||||
void deleteCaches();
|
||||
|
|
@ -213,12 +213,12 @@ public:
|
|||
|
||||
LLAvatarAppearance* getAvatarAppearance() const { return mAvatarAppearance; }
|
||||
const std::string getBodyRegionName() const;
|
||||
BOOL hasComposite() const { return (mComposite.notNull()); }
|
||||
bool hasComposite() const { return (mComposite.notNull()); }
|
||||
LLAvatarAppearanceDefines::EBakedTextureIndex getBakedTexIndex() const { return mBakedTexIndex; }
|
||||
void setBakedTexIndex(LLAvatarAppearanceDefines::EBakedTextureIndex index) { mBakedTexIndex = index; }
|
||||
BOOL isVisible() const { return mIsVisible; }
|
||||
bool isVisible() const { return mIsVisible; }
|
||||
|
||||
static BOOL sHasCaches;
|
||||
static bool sHasCaches;
|
||||
|
||||
protected:
|
||||
typedef std::vector<LLTexLayerInterface *> layer_list_t;
|
||||
|
|
@ -226,7 +226,7 @@ protected:
|
|||
layer_list_t mMaskLayerList;
|
||||
LLPointer<LLTexLayerSetBuffer> mComposite;
|
||||
LLAvatarAppearance* const mAvatarAppearance; // note: backlink only; don't make this an LLPointer.
|
||||
BOOL mIsVisible;
|
||||
bool mIsVisible;
|
||||
|
||||
LLAvatarAppearanceDefines::EBakedTextureIndex mBakedTexIndex;
|
||||
const LLTexLayerSetInfo* mInfo;
|
||||
|
|
@ -243,7 +243,7 @@ class LLTexLayerSetInfo
|
|||
public:
|
||||
LLTexLayerSetInfo();
|
||||
~LLTexLayerSetInfo();
|
||||
BOOL parseXml(LLXmlTreeNode* node);
|
||||
bool parseXml(LLXmlTreeNode* node);
|
||||
void createVisualParams(LLAvatarAppearance *appearance);
|
||||
S32 getWidth() const { return mWidth; }
|
||||
S32 getHeight() const { return mHeight; }
|
||||
|
|
@ -252,7 +252,7 @@ protected:
|
|||
S32 mWidth;
|
||||
S32 mHeight;
|
||||
std::string mStaticAlphaFileName;
|
||||
BOOL mClearAlpha; // Set alpha to 1 for this layerset (if there is no mStaticAlphaFileName)
|
||||
bool mClearAlpha; // Set alpha to 1 for this layerset (if there is no mStaticAlphaFileName)
|
||||
typedef std::vector<LLTexLayerInfo*> layer_info_list_t;
|
||||
layer_info_list_t mLayerInfoList;
|
||||
};
|
||||
|
|
@ -275,15 +275,15 @@ protected:
|
|||
void popProjection() const;
|
||||
virtual void preRenderTexLayerSet();
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//virtual void midRenderTexLayerSet(BOOL success) {}
|
||||
virtual void midRenderTexLayerSet(BOOL success, LLRenderTarget* bound_target) {}
|
||||
//virtual void midRenderTexLayerSet(bool success) {}
|
||||
virtual void midRenderTexLayerSet(bool success, LLRenderTarget* bound_target) {}
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
virtual void postRenderTexLayerSet(BOOL success);
|
||||
virtual void postRenderTexLayerSet(bool success);
|
||||
virtual S32 getCompositeOriginX() const = 0;
|
||||
virtual S32 getCompositeOriginY() const = 0;
|
||||
virtual S32 getCompositeWidth() const = 0;
|
||||
virtual S32 getCompositeHeight() const = 0;
|
||||
BOOL renderTexLayerSet(LLRenderTarget* bound_target);
|
||||
bool renderTexLayerSet(LLRenderTarget* bound_target);
|
||||
|
||||
LLTexLayerSet* const mTexLayerSet;
|
||||
};
|
||||
|
|
@ -297,12 +297,12 @@ class LLTexLayerStaticImageList : public LLSingleton<LLTexLayerStaticImageList>
|
|||
LLSINGLETON(LLTexLayerStaticImageList);
|
||||
~LLTexLayerStaticImageList();
|
||||
public:
|
||||
LLGLTexture* getTexture(const std::string& file_name, BOOL is_mask);
|
||||
LLGLTexture* getTexture(const std::string& file_name, bool is_mask);
|
||||
LLImageTGA* getImageTGA(const std::string& file_name);
|
||||
void deleteCachedImages();
|
||||
void dumpByteCount() const;
|
||||
protected:
|
||||
BOOL loadImageRaw(const std::string& file_name, LLImageRaw* image_raw);
|
||||
bool loadImageRaw(const std::string& file_name, LLImageRaw* image_raw);
|
||||
private:
|
||||
LLStringTable mImageNames;
|
||||
typedef std::map<const char*, LLPointer<LLGLTexture> > texture_map_t;
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ LLTexLayerParam::LLTexLayerParam(const LLTexLayerParam& pOther)
|
|||
{
|
||||
}
|
||||
|
||||
BOOL LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info, BOOL add_to_appearance)
|
||||
bool LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info, bool add_to_appearance)
|
||||
{
|
||||
LLViewerVisualParam::setInfo(info);
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ BOOL LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info, BOOL add_to_appeara
|
|||
this->setParamLocation(mAvatarAppearance->isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -123,8 +123,8 @@ LLTexLayerParamAlpha::LLTexLayerParamAlpha(LLTexLayerInterface* layer)
|
|||
mCachedProcessedTexture(NULL),
|
||||
mStaticImageTGA(),
|
||||
mStaticImageRaw(),
|
||||
mNeedsCreateTexture(FALSE),
|
||||
mStaticImageInvalid(FALSE),
|
||||
mNeedsCreateTexture(false),
|
||||
mStaticImageInvalid(false),
|
||||
mAvgDistortionVec(1.f, 1.f, 1.f),
|
||||
mCachedEffectiveWeight(0.f)
|
||||
{
|
||||
|
|
@ -136,8 +136,8 @@ LLTexLayerParamAlpha::LLTexLayerParamAlpha(LLAvatarAppearance* appearance)
|
|||
mCachedProcessedTexture(NULL),
|
||||
mStaticImageTGA(),
|
||||
mStaticImageRaw(),
|
||||
mNeedsCreateTexture(FALSE),
|
||||
mStaticImageInvalid(FALSE),
|
||||
mNeedsCreateTexture(false),
|
||||
mStaticImageInvalid(false),
|
||||
mAvgDistortionVec(1.f, 1.f, 1.f),
|
||||
mCachedEffectiveWeight(0.f)
|
||||
{
|
||||
|
|
@ -173,17 +173,17 @@ void LLTexLayerParamAlpha::deleteCaches()
|
|||
mStaticImageTGA = NULL; // deletes image
|
||||
mCachedProcessedTexture = NULL;
|
||||
mStaticImageRaw = NULL;
|
||||
mNeedsCreateTexture = FALSE;
|
||||
mNeedsCreateTexture = false;
|
||||
}
|
||||
|
||||
BOOL LLTexLayerParamAlpha::getMultiplyBlend() const
|
||||
bool LLTexLayerParamAlpha::getMultiplyBlend() const
|
||||
{
|
||||
return ((LLTexLayerParamAlphaInfo *)getInfo())->mMultiplyBlend;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLTexLayerParamAlpha::setWeight(F32 weight)
|
||||
void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL upload_bake)
|
||||
void LLTexLayerParamAlpha::setWeight(F32 weight, bool upload_bake)
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
{
|
||||
if (mIsAnimating || mTexLayer == NULL)
|
||||
|
|
@ -213,7 +213,7 @@ void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL upload_bake)
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value)
|
||||
void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, BOOL upload_bake)
|
||||
void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, bool upload_bake)
|
||||
{
|
||||
// do not animate dummy parameters
|
||||
if (mIsDummy)
|
||||
|
|
@ -228,7 +228,7 @@ void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, BOOL upload_bake
|
|||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(target_value);
|
||||
setWeight(target_value, upload_bake);
|
||||
mIsAnimating = TRUE;
|
||||
mIsAnimating = true;
|
||||
if (mNext)
|
||||
{
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
|
|
@ -239,7 +239,7 @@ void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, BOOL upload_bake
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLTexLayerParamAlpha::animate(F32 delta)
|
||||
void LLTexLayerParamAlpha::animate(F32 delta, BOOL upload_bake)
|
||||
void LLTexLayerParamAlpha::animate(F32 delta, bool upload_bake)
|
||||
{
|
||||
if (mNext)
|
||||
{
|
||||
|
|
@ -249,11 +249,11 @@ void LLTexLayerParamAlpha::animate(F32 delta, BOOL upload_bake)
|
|||
}
|
||||
}
|
||||
|
||||
BOOL LLTexLayerParamAlpha::getSkip() const
|
||||
bool LLTexLayerParamAlpha::getSkip() const
|
||||
{
|
||||
if (!mTexLayer)
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
const LLAvatarAppearance *appearance = mTexLayer->getTexLayerSet()->getAvatarAppearance();
|
||||
|
|
@ -263,24 +263,24 @@ BOOL LLTexLayerParamAlpha::getSkip() const
|
|||
F32 effective_weight = (appearance->getSex() & getSex()) ? mCurWeight : getDefaultWeight();
|
||||
if (is_approx_zero(effective_weight))
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
LLWearableType::EType type = (LLWearableType::EType)getWearableType();
|
||||
if ((type != LLWearableType::WT_INVALID) && !appearance->isWearingWearableType(type))
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
||||
bool LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
|
||||
if (!mTexLayer)
|
||||
{
|
||||
|
|
@ -288,7 +288,7 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
|||
}
|
||||
|
||||
F32 effective_weight = (mTexLayer->getTexLayerSet()->getAvatarAppearance()->getSex() & getSex()) ? mCurWeight : getDefaultWeight();
|
||||
BOOL weight_changed = effective_weight != mCachedEffectiveWeight;
|
||||
bool weight_changed = effective_weight != mCachedEffectiveWeight;
|
||||
if (getSkip())
|
||||
{
|
||||
return success;
|
||||
|
|
@ -312,13 +312,13 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
|||
// Don't load the image file until we actually need it the first time. Like now.
|
||||
mStaticImageTGA = LLTexLayerStaticImageList::getInstance()->getImageTGA(info->mStaticImageFileName);
|
||||
// We now have something in one of our caches
|
||||
LLTexLayerSet::sHasCaches |= mStaticImageTGA.notNull() ? TRUE : FALSE;
|
||||
LLTexLayerSet::sHasCaches |= mStaticImageTGA.notNull();
|
||||
|
||||
if (mStaticImageTGA.isNull())
|
||||
{
|
||||
LL_WARNS() << "Unable to load static file: " << info->mStaticImageFileName << LL_ENDL;
|
||||
mStaticImageInvalid = TRUE; // don't try again.
|
||||
return FALSE;
|
||||
mStaticImageInvalid = true; // don't try again.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -334,10 +334,10 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
|||
if (!mCachedProcessedTexture)
|
||||
{
|
||||
llassert(gTextureManagerBridgep);
|
||||
mCachedProcessedTexture = gTextureManagerBridgep->getLocalTexture(image_tga_width, image_tga_height, 1, FALSE);
|
||||
mCachedProcessedTexture = gTextureManagerBridgep->getLocalTexture(image_tga_width, image_tga_height, 1, false);
|
||||
|
||||
// We now have something in one of our caches
|
||||
LLTexLayerSet::sHasCaches |= mCachedProcessedTexture ? TRUE : FALSE;
|
||||
LLTexLayerSet::sHasCaches |= mCachedProcessedTexture.notNull();
|
||||
|
||||
mCachedProcessedTexture->setExplicitFormat(GL_ALPHA8, GL_ALPHA);
|
||||
}
|
||||
|
|
@ -346,7 +346,7 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
|||
mStaticImageRaw = NULL;
|
||||
mStaticImageRaw = new LLImageRaw;
|
||||
mStaticImageTGA->decodeAndProcess(mStaticImageRaw, info->mDomain, effective_weight);
|
||||
mNeedsCreateTexture = TRUE;
|
||||
mNeedsCreateTexture = true;
|
||||
LL_DEBUGS() << "Built Cached Alpha: " << info->mStaticImageFileName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << "Domain: " << info->mDomain << " Weight: " << effective_weight << LL_ENDL;
|
||||
}
|
||||
|
||||
|
|
@ -357,7 +357,7 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
|||
if (mNeedsCreateTexture)
|
||||
{
|
||||
mCachedProcessedTexture->createGLTexture(0, mStaticImageRaw);
|
||||
mNeedsCreateTexture = FALSE;
|
||||
mNeedsCreateTexture = false;
|
||||
gGL.getTexUnit(0)->bind(mCachedProcessedTexture);
|
||||
mCachedProcessedTexture->setAddressMode(LLTexUnit::TAM_CLAMP);
|
||||
}
|
||||
|
|
@ -390,23 +390,23 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
|
|||
// LLTexLayerParamAlphaInfo
|
||||
//-----------------------------------------------------------------------------
|
||||
LLTexLayerParamAlphaInfo::LLTexLayerParamAlphaInfo() :
|
||||
mMultiplyBlend(FALSE),
|
||||
mSkipIfZeroWeight(FALSE),
|
||||
mMultiplyBlend(false),
|
||||
mSkipIfZeroWeight(false),
|
||||
mDomain(0.f)
|
||||
{
|
||||
}
|
||||
|
||||
BOOL LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
|
||||
bool LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
|
||||
{
|
||||
llassert(node->hasName("param") && node->getChildByName("param_alpha"));
|
||||
|
||||
if (!LLViewerVisualParamInfo::parseXml(node))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
LLXmlTreeNode* param_alpha_node = node->getChildByName("param_alpha");
|
||||
if (!param_alpha_node)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
static LLStdStringHandle tga_file_string = LLXmlTree::addAttributeString("tga_file");
|
||||
|
|
@ -428,7 +428,7 @@ BOOL LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
|
|||
static LLStdStringHandle domain_string = LLXmlTree::addAttributeString("domain");
|
||||
param_alpha_node->getFastAttributeF32(domain_string, mDomain);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -492,7 +492,7 @@ LLColor4 LLTexLayerParamColor::getNetColor() const
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLTexLayerParamColor::setWeight(F32 weight)
|
||||
void LLTexLayerParamColor::setWeight(F32 weight, BOOL upload_bake)
|
||||
void LLTexLayerParamColor::setWeight(F32 weight, bool upload_bake)
|
||||
{
|
||||
if (mIsAnimating)
|
||||
{
|
||||
|
|
@ -535,14 +535,14 @@ void LLTexLayerParamColor::setWeight(F32 weight, BOOL upload_bake)
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLTexLayerParamColor::setAnimationTarget(F32 target_value)
|
||||
void LLTexLayerParamColor::setAnimationTarget(F32 target_value, BOOL upload_bake)
|
||||
void LLTexLayerParamColor::setAnimationTarget(F32 target_value, bool upload_bake)
|
||||
{
|
||||
// set value first then set interpolating flag to ignore further updates
|
||||
mTargetWeight = target_value;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(target_value);
|
||||
setWeight(target_value, upload_bake);
|
||||
mIsAnimating = TRUE;
|
||||
mIsAnimating = true;
|
||||
if (mNext)
|
||||
{
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
|
|
@ -553,7 +553,7 @@ void LLTexLayerParamColor::setAnimationTarget(F32 target_value, BOOL upload_bake
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLTexLayerParamColor::animate(F32 delta)
|
||||
void LLTexLayerParamColor::animate(F32 delta, BOOL upload_bake)
|
||||
void LLTexLayerParamColor::animate(F32 delta, bool upload_bake)
|
||||
{
|
||||
if (mNext)
|
||||
{
|
||||
|
|
@ -572,17 +572,17 @@ LLTexLayerParamColorInfo::LLTexLayerParamColorInfo() :
|
|||
{
|
||||
}
|
||||
|
||||
BOOL LLTexLayerParamColorInfo::parseXml(LLXmlTreeNode *node)
|
||||
bool LLTexLayerParamColorInfo::parseXml(LLXmlTreeNode *node)
|
||||
{
|
||||
llassert(node->hasName("param") && node->getChildByName("param_color"));
|
||||
|
||||
if (!LLViewerVisualParamInfo::parseXml(node))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
LLXmlTreeNode* param_color_node = node->getChildByName("param_color");
|
||||
if (!param_color_node)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string op_string;
|
||||
|
|
@ -615,14 +615,14 @@ BOOL LLTexLayerParamColorInfo::parseXml(LLXmlTreeNode *node)
|
|||
if (!mNumColors)
|
||||
{
|
||||
LL_WARNS() << "<param_color> is missing <value> sub-elements" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((mOperation == LLTexLayerParamColor::OP_BLEND) && (mNumColors != 1))
|
||||
{
|
||||
LL_WARNS() << "<param_color> with operation\"blend\" must have exactly one <value>" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class LLTexLayerParam : public LLViewerVisualParam
|
|||
public:
|
||||
LLTexLayerParam(LLTexLayerInterface *layer);
|
||||
LLTexLayerParam(LLAvatarAppearance *appearance);
|
||||
/*virtual*/ BOOL setInfo(LLViewerVisualParamInfo *info, BOOL add_to_appearance);
|
||||
/*virtual*/ bool setInfo(LLViewerVisualParamInfo *info, bool add_to_appearance);
|
||||
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const = 0;
|
||||
|
||||
protected:
|
||||
|
|
@ -74,15 +74,15 @@ public:
|
|||
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;
|
||||
|
||||
// LLVisualParam Virtual functions
|
||||
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
|
||||
///*virtual*/ bool parseData(LLXmlTreeNode* node);
|
||||
/*virtual*/ void apply( ESex avatar_sex ) {}
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
///*virtual*/ void setWeight(F32 weight);
|
||||
///*virtual*/ void setAnimationTarget(F32 target_value);
|
||||
///*virtual*/ void animate(F32 delta);
|
||||
/*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
|
||||
/*virtual*/ void setAnimationTarget(F32 target_value, BOOL upload_bake);
|
||||
/*virtual*/ void animate(F32 delta, BOOL upload_bake);
|
||||
/*virtual*/ void setWeight(F32 weight, bool upload_bake);
|
||||
/*virtual*/ void setAnimationTarget(F32 target_value, bool upload_bake);
|
||||
/*virtual*/ void animate(F32 delta, bool upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
||||
// LLViewerVisualParam Virtual functions
|
||||
|
|
@ -100,10 +100,10 @@ public:
|
|||
// </FS:ND>
|
||||
|
||||
// New functions
|
||||
BOOL render( S32 x, S32 y, S32 width, S32 height );
|
||||
BOOL getSkip() const;
|
||||
bool render( S32 x, S32 y, S32 width, S32 height );
|
||||
bool getSkip() const;
|
||||
void deleteCaches();
|
||||
BOOL getMultiplyBlend() const;
|
||||
bool getMultiplyBlend() const;
|
||||
|
||||
private:
|
||||
LLTexLayerParamAlpha(const LLTexLayerParamAlpha& pOther);
|
||||
|
|
@ -111,8 +111,8 @@ private:
|
|||
LLPointer<LLGLTexture> mCachedProcessedTexture;
|
||||
LLPointer<LLImageTGA> mStaticImageTGA;
|
||||
LLPointer<LLImageRaw> mStaticImageRaw;
|
||||
std::atomic<BOOL> mNeedsCreateTexture;
|
||||
BOOL mStaticImageInvalid;
|
||||
std::atomic<bool> mNeedsCreateTexture;
|
||||
bool mStaticImageInvalid;
|
||||
LL_ALIGN_16(LLVector4a mAvgDistortionVec);
|
||||
F32 mCachedEffectiveWeight;
|
||||
|
||||
|
|
@ -131,12 +131,12 @@ public:
|
|||
LLTexLayerParamAlphaInfo();
|
||||
/*virtual*/ ~LLTexLayerParamAlphaInfo() {};
|
||||
|
||||
/*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
|
||||
/*virtual*/ bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
private:
|
||||
std::string mStaticImageFileName;
|
||||
BOOL mMultiplyBlend;
|
||||
BOOL mSkipIfZeroWeight;
|
||||
bool mMultiplyBlend;
|
||||
bool mSkipIfZeroWeight;
|
||||
F32 mDomain;
|
||||
};
|
||||
//
|
||||
|
|
@ -168,15 +168,15 @@ public:
|
|||
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;
|
||||
|
||||
// LLVisualParam Virtual functions
|
||||
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
|
||||
///*virtual*/ bool parseData(LLXmlTreeNode* node);
|
||||
/*virtual*/ void apply( ESex avatar_sex ) {}
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
///*virtual*/ void setWeight(F32 weight);
|
||||
///*virtual*/ void setAnimationTarget(F32 target_value);
|
||||
///*virtual*/ void animate(F32 delta);
|
||||
/*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
|
||||
/*virtual*/ void setAnimationTarget(F32 target_value, BOOL upload_bake);
|
||||
/*virtual*/ void animate(F32 delta, BOOL upload_bake);
|
||||
/*virtual*/ void setWeight(F32 weight, bool upload_bake);
|
||||
/*virtual*/ void setAnimationTarget(F32 target_value, bool upload_bake);
|
||||
/*virtual*/ void animate(F32 delta, bool upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
||||
|
||||
|
|
@ -207,7 +207,7 @@ class LLTexLayerParamColorInfo : public LLViewerVisualParamInfo
|
|||
public:
|
||||
LLTexLayerParamColorInfo();
|
||||
virtual ~LLTexLayerParamColorInfo() {};
|
||||
BOOL parseXml( LLXmlTreeNode* node );
|
||||
bool parseXml( LLXmlTreeNode* node );
|
||||
LLTexLayerParamColor::EColorOperation getOperation() const { return mOperation; }
|
||||
private:
|
||||
enum { MAX_COLOR_VALUES = 20 };
|
||||
|
|
|
|||
|
|
@ -39,12 +39,12 @@
|
|||
LLViewerVisualParamInfo::LLViewerVisualParamInfo()
|
||||
:
|
||||
mWearableType( LLWearableType::WT_INVALID ),
|
||||
mCrossWearable(FALSE),
|
||||
mCrossWearable(false),
|
||||
mCamDist( 0.5f ),
|
||||
mCamAngle( 0.f ),
|
||||
mCamElevation( 0.f ),
|
||||
mEditGroupDisplayOrder( 0 ),
|
||||
mShowSimple(FALSE),
|
||||
mShowSimple(false),
|
||||
mSimpleMin(0.f),
|
||||
mSimpleMax(100.f)
|
||||
{
|
||||
|
|
@ -57,12 +57,12 @@ LLViewerVisualParamInfo::~LLViewerVisualParamInfo()
|
|||
//-----------------------------------------------------------------------------
|
||||
// parseXml()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
||||
bool LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
||||
{
|
||||
llassert( node->hasName( "param" ) );
|
||||
|
||||
if (!LLVisualParamInfo::parseXml(node))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
// VIEWER SPECIFIC PARAMS
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ BOOL LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
|||
static LLStdStringHandle cross_wearable_string = LLXmlTree::addAttributeString("cross_wearable");
|
||||
if (!node->getFastAttributeBOOL(cross_wearable_string, mCrossWearable))
|
||||
{
|
||||
mCrossWearable = FALSE;
|
||||
mCrossWearable = false;
|
||||
}
|
||||
|
||||
// Optional camera offsets from the current joint center. Used for generating "hints" (thumbnails).
|
||||
|
|
@ -107,7 +107,7 @@ BOOL LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
|||
|
||||
params_loaded++;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*virtual*/ void LLViewerVisualParamInfo::toStream(std::ostream &out)
|
||||
|
|
@ -146,17 +146,17 @@ LLViewerVisualParam::~LLViewerVisualParam()
|
|||
// setInfo()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLViewerVisualParam::setInfo(LLViewerVisualParamInfo *info)
|
||||
bool LLViewerVisualParam::setInfo(LLViewerVisualParamInfo *info)
|
||||
{
|
||||
llassert(mInfo == NULL);
|
||||
if (info->mID < 0)
|
||||
return FALSE;
|
||||
return false;
|
||||
mInfo = info;
|
||||
mID = info->mID;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(getDefaultWeight());
|
||||
setWeight(getDefaultWeight(), FALSE);
|
||||
return TRUE;
|
||||
setWeight(getDefaultWeight(), false);
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -168,14 +168,14 @@ BOOL LLViewerVisualParam::setInfo(LLViewerVisualParamInfo *info)
|
|||
//-----------------------------------------------------------------------------
|
||||
// parseData()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLViewerVisualParam::parseData(LLXmlTreeNode *node)
|
||||
bool LLViewerVisualParam::parseData(LLXmlTreeNode *node)
|
||||
{
|
||||
LLViewerVisualParamInfo* info = new LLViewerVisualParamInfo;
|
||||
|
||||
info->parseXml(node);
|
||||
if (!setInfo(info))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -43,19 +43,19 @@ public:
|
|||
LLViewerVisualParamInfo();
|
||||
/*virtual*/ ~LLViewerVisualParamInfo();
|
||||
|
||||
/*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
|
||||
/*virtual*/ bool parseXml(LLXmlTreeNode* node);
|
||||
|
||||
/*virtual*/ void toStream(std::ostream &out);
|
||||
|
||||
protected:
|
||||
S32 mWearableType;
|
||||
BOOL mCrossWearable;
|
||||
bool mCrossWearable;
|
||||
std::string mEditGroup;
|
||||
F32 mCamDist;
|
||||
F32 mCamAngle; // degrees
|
||||
F32 mCamElevation;
|
||||
F32 mEditGroupDisplayOrder;
|
||||
BOOL mShowSimple; // show edit controls when in "simple ui" mode?
|
||||
bool mShowSimple; // show edit controls when in "simple ui" mode?
|
||||
F32 mSimpleMin; // when in simple UI, apply this minimum, range 0.f to 100.f
|
||||
F32 mSimpleMax; // when in simple UI, apply this maximum, range 0.f to 100.f
|
||||
};
|
||||
|
|
@ -75,12 +75,12 @@ public:
|
|||
// Special: These functions are overridden by child classes
|
||||
LLViewerVisualParamInfo *getInfo() const { return (LLViewerVisualParamInfo*)mInfo; };
|
||||
// This sets mInfo and calls initialization functions
|
||||
BOOL setInfo(LLViewerVisualParamInfo *info);
|
||||
bool setInfo(LLViewerVisualParamInfo *info);
|
||||
|
||||
virtual LLViewerVisualParam* cloneParam(LLWearable* wearable) const = 0;
|
||||
|
||||
// LLVisualParam Virtual functions
|
||||
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
|
||||
///*virtual*/ bool parseData(LLXmlTreeNode* node);
|
||||
|
||||
// New Virtual functions
|
||||
virtual F32 getTotalDistortion() = 0;
|
||||
|
|
@ -99,11 +99,11 @@ public:
|
|||
F32 getCameraAngle() const { return getInfo()->mCamAngle; } // degrees
|
||||
F32 getCameraElevation() const { return getInfo()->mCamElevation; }
|
||||
|
||||
BOOL getShowSimple() const { return getInfo()->mShowSimple; }
|
||||
bool getShowSimple() const { return getInfo()->mShowSimple; }
|
||||
F32 getSimpleMin() const { return getInfo()->mSimpleMin; }
|
||||
F32 getSimpleMax() const { return getInfo()->mSimpleMax; }
|
||||
|
||||
BOOL getCrossWearable() const { return getInfo()->mCrossWearable; }
|
||||
bool getCrossWearable() const { return getInfo()->mCrossWearable; }
|
||||
|
||||
protected:
|
||||
LLViewerVisualParam(const LLViewerVisualParam& pOther);
|
||||
|
|
|
|||
|
|
@ -89,16 +89,16 @@ LLAssetType::EType LLWearable::getAssetType() const
|
|||
return LLWearableType::getInstance()->getAssetType(mType);
|
||||
}
|
||||
|
||||
BOOL LLWearable::exportFile(const std::string& filename) const
|
||||
bool LLWearable::exportFile(const std::string& filename) const
|
||||
{
|
||||
llofstream ofs(filename.c_str(), std::ios_base::out | std::ios_base::trunc | std::ios_base::binary);
|
||||
return ofs.is_open() && exportStream(ofs);
|
||||
}
|
||||
|
||||
// virtual
|
||||
BOOL LLWearable::exportStream( std::ostream& output_stream ) const
|
||||
bool LLWearable::exportStream( std::ostream& output_stream ) const
|
||||
{
|
||||
if (!output_stream.good()) return FALSE;
|
||||
if (!output_stream.good()) return false;
|
||||
|
||||
// header and version
|
||||
output_stream << "LLWearable version " << mDefinitionVersion << "\n";
|
||||
|
|
@ -110,13 +110,13 @@ BOOL LLWearable::exportStream( std::ostream& output_stream ) const
|
|||
// permissions
|
||||
if( !mPermissions.exportLegacyStream( output_stream ) )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// sale info
|
||||
if( !mSaleInfo.exportLegacyStream( output_stream ) )
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// wearable type
|
||||
|
|
@ -142,7 +142,7 @@ BOOL LLWearable::exportStream( std::ostream& output_stream ) const
|
|||
const LLUUID& image_id = te_pair.second->getID();
|
||||
output_stream << te << " " << image_id << "\n";
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLWearable::createVisualParams(LLAvatarAppearance *avatarp)
|
||||
|
|
@ -310,7 +310,7 @@ LLWearable::EImportResult LLWearable::importStream( std::istream& input_stream,
|
|||
// permissions. Thus, we read that out, and fix legacy
|
||||
// objects. It's possible this op would fail, but it should pick
|
||||
// up the vast majority of the tasks.
|
||||
BOOL has_perm_mask = FALSE;
|
||||
bool has_perm_mask = false;
|
||||
U32 perm_mask = 0;
|
||||
if( !mSaleInfo.importLegacyStream(input_stream, has_perm_mask, perm_mask) )
|
||||
{
|
||||
|
|
@ -472,11 +472,11 @@ LLWearable::EImportResult LLWearable::importStream( std::istream& input_stream,
|
|||
return LLWearable::SUCCESS;
|
||||
}
|
||||
|
||||
BOOL LLWearable::getNextPopulatedLine(std::istream& input_stream, char* buffer, U32 buffer_size)
|
||||
bool LLWearable::getNextPopulatedLine(std::istream& input_stream, char* buffer, U32 buffer_size)
|
||||
{
|
||||
if (!input_stream.good())
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
do
|
||||
|
|
@ -555,7 +555,7 @@ void LLWearable::revertValues()
|
|||
F32 value = vp_pair.second;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setVisualParamWeight(id, value);
|
||||
setVisualParamWeight(id, value, TRUE);
|
||||
setVisualParamWeight(id, value, true);
|
||||
mSavedVisualParamMap[id] = param->getWeight();
|
||||
}
|
||||
}
|
||||
|
|
@ -641,7 +641,7 @@ void LLWearable::addVisualParam(LLVisualParam *param)
|
|||
{
|
||||
delete mVisualParamIndexMap[param->getID()];
|
||||
}
|
||||
param->setIsDummy(FALSE);
|
||||
param->setIsDummy(false);
|
||||
param->setParamLocation(LOC_WEARABLE);
|
||||
mVisualParamIndexMap[param->getID()] = param;
|
||||
mSavedVisualParamMap[param->getID()] = param->getDefaultWeight();
|
||||
|
|
@ -650,7 +650,7 @@ void LLWearable::addVisualParam(LLVisualParam *param)
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLWearable::setVisualParamWeight(S32 param_index, F32 value)
|
||||
void LLWearable::setVisualParamWeight(S32 param_index, F32 value, BOOL upload_bake)
|
||||
void LLWearable::setVisualParamWeight(S32 param_index, F32 value, bool upload_bake)
|
||||
{
|
||||
if( is_in_map(mVisualParamIndexMap, param_index ) )
|
||||
{
|
||||
|
|
@ -697,7 +697,7 @@ void LLWearable::getVisualParams(visual_param_vec_t &list)
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLWearable::animateParams(F32 delta)
|
||||
void LLWearable::animateParams(F32 delta, BOOL upload_bake)
|
||||
void LLWearable::animateParams(F32 delta, bool upload_bake)
|
||||
{
|
||||
for(visual_param_index_map_t::value_type& vp_pair : mVisualParamIndexMap)
|
||||
{
|
||||
|
|
@ -724,7 +724,7 @@ LLColor4 LLWearable::getClothesColor(S32 te) const
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLWearable::setClothesColor( S32 te, const LLColor4& new_color)
|
||||
void LLWearable::setClothesColor( S32 te, const LLColor4& new_color, BOOL upload_bake)
|
||||
void LLWearable::setClothesColor( S32 te, const LLColor4& new_color, bool upload_bake)
|
||||
{
|
||||
U32 param_name[3];
|
||||
if( LLAvatarAppearance::teToColorParams( (LLAvatarAppearanceDefines::ETextureIndex)te, param_name ) )
|
||||
|
|
@ -754,7 +754,7 @@ void LLWearable::writeToAvatar(LLAvatarAppearance* avatarp)
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//avatarp->setVisualParamWeight( param_id, weight);
|
||||
avatarp->setVisualParamWeight( param_id, weight, FALSE);
|
||||
avatarp->setVisualParamWeight( param_id, weight, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,9 +96,9 @@ public:
|
|||
SUCCESS,
|
||||
BAD_HEADER
|
||||
};
|
||||
BOOL exportFile(const std::string& filename) const;
|
||||
bool exportFile(const std::string& filename) const;
|
||||
EImportResult importFile(const std::string& filename, LLAvatarAppearance* avatarp );
|
||||
virtual BOOL exportStream( std::ostream& output_stream ) const;
|
||||
virtual bool exportStream( std::ostream& output_stream ) const;
|
||||
virtual EImportResult importStream( std::istream& input_stream, LLAvatarAppearance* avatarp );
|
||||
|
||||
static void setCurrentDefinitionVersion( S32 version ) { LLWearable::sCurrentDefinitionVersion = version; }
|
||||
|
|
@ -112,18 +112,18 @@ public:
|
|||
void addVisualParam(LLVisualParam *param);
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void setVisualParamWeight(S32 index, F32 value);
|
||||
void setVisualParamWeight(S32 index, F32 value, BOOL upload_bake);
|
||||
void setVisualParamWeight(S32 index, F32 value, bool upload_bake);
|
||||
F32 getVisualParamWeight(S32 index) const;
|
||||
LLVisualParam* getVisualParam(S32 index) const;
|
||||
void getVisualParams(visual_param_vec_t &list);
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void animateParams(F32 delta);
|
||||
void animateParams(F32 delta, BOOL upload_bake);
|
||||
void animateParams(F32 delta, bool upload_bake);
|
||||
|
||||
LLColor4 getClothesColor(S32 te) const;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void setClothesColor( S32 te, const LLColor4& new_color);
|
||||
void setClothesColor( S32 te, const LLColor4& new_color, BOOL upload_bake);
|
||||
void setClothesColor( S32 te, const LLColor4& new_color, bool upload_bake);
|
||||
|
||||
virtual void revertValues();
|
||||
virtual void saveValues();
|
||||
|
|
@ -144,7 +144,7 @@ protected:
|
|||
void destroyTextures();
|
||||
void createVisualParams(LLAvatarAppearance *avatarp);
|
||||
void createLayers(S32 te, LLAvatarAppearance *avatarp);
|
||||
BOOL getNextPopulatedLine(std::istream& input_stream, char* buffer, U32 buffer_size);
|
||||
bool getNextPopulatedLine(std::istream& input_stream, char* buffer, U32 buffer_size);
|
||||
|
||||
static S32 sCurrentDefinitionVersion; // Depends on the current state of the avatar_lad.xml.
|
||||
S32 mDefinitionVersion; // Depends on the state of the avatar_lad.xml when this asset was created.
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ void LLWearableData::setWearable(const LLWearableType::EType type, U32 index, LL
|
|||
{
|
||||
wearable_vec[index] = wearable;
|
||||
old_wearable->setUpdated();
|
||||
const BOOL removed = FALSE;
|
||||
const bool removed = false;
|
||||
wearableUpdated(wearable, removed);
|
||||
}
|
||||
}
|
||||
|
|
@ -116,14 +116,14 @@ void LLWearableData::pushWearable(const LLWearableType::EType type,
|
|||
// mWearableDatas[type].push_back(wearable); mWearableDatas[type].push_back(wearable);
|
||||
if (trigger_updated)
|
||||
{
|
||||
const BOOL removed = FALSE;
|
||||
const bool removed = false;
|
||||
wearableUpdated(wearable, removed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLWearableData::wearableUpdated(LLWearable *wearable, BOOL removed)
|
||||
void LLWearableData::wearableUpdated(LLWearable *wearable, bool removed)
|
||||
{
|
||||
wearable->setUpdated();
|
||||
if (!removed)
|
||||
|
|
@ -155,7 +155,7 @@ void LLWearableData::eraseWearable(const LLWearableType::EType type, U32 index)
|
|||
if (wearable)
|
||||
{
|
||||
mWearableDatas[type].erase(mWearableDatas[type].begin() + index);
|
||||
const BOOL removed = TRUE;
|
||||
const bool removed = true;
|
||||
wearableUpdated(wearable, removed);
|
||||
}
|
||||
}
|
||||
|
|
@ -211,11 +211,11 @@ void LLWearableData::pullCrossWearableValues(const LLWearableType::EType type)
|
|||
}
|
||||
|
||||
|
||||
BOOL LLWearableData::getWearableIndex(const LLWearable *wearable, U32& index_found) const
|
||||
bool LLWearableData::getWearableIndex(const LLWearable *wearable, U32& index_found) const
|
||||
{
|
||||
if (wearable == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
const LLWearableType::EType type = wearable->getType();
|
||||
|
|
@ -223,7 +223,7 @@ BOOL LLWearableData::getWearableIndex(const LLWearable *wearable, U32& index_fou
|
|||
if (wearable_iter == mWearableDatas.end())
|
||||
{
|
||||
LL_WARNS() << "tried to get wearable index with an invalid type!" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
const wearableentry_vec_t& wearable_vec = wearable_iter->second;
|
||||
for(U32 index = 0; index < wearable_vec.size(); index++)
|
||||
|
|
@ -231,11 +231,11 @@ BOOL LLWearableData::getWearableIndex(const LLWearable *wearable, U32& index_fou
|
|||
if (wearable_vec[index] == wearable)
|
||||
{
|
||||
index_found = index;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
U32 LLWearableData::getClothingLayerCount() const
|
||||
|
|
@ -253,7 +253,7 @@ U32 LLWearableData::getClothingLayerCount() const
|
|||
return count;
|
||||
}
|
||||
|
||||
BOOL LLWearableData::canAddWearable(const LLWearableType::EType type) const
|
||||
bool LLWearableData::canAddWearable(const LLWearableType::EType type) const
|
||||
{
|
||||
LLAssetType::EType a_type = LLWearableType::getInstance()->getAssetType(type);
|
||||
if (a_type==LLAssetType::AT_CLOTHING)
|
||||
|
|
@ -267,13 +267,13 @@ BOOL LLWearableData::canAddWearable(const LLWearableType::EType type) const
|
|||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLWearableData::isOnTop(LLWearable* wearable) const
|
||||
bool LLWearableData::isOnTop(LLWearable* wearable) const
|
||||
{
|
||||
if (!wearable) return FALSE;
|
||||
if (!wearable) return false;
|
||||
const LLWearableType::EType type = wearable->getType();
|
||||
return ( getTopWearable(type) == wearable );
|
||||
}
|
||||
|
|
@ -357,7 +357,7 @@ U32 LLWearableData::getWearableCount(const U32 tex_index) const
|
|||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
LLUUID LLWearableData::computeBakedTextureHash(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index,
|
||||
BOOL generate_valid_hash) // Set to false if you want to upload the baked texture w/o putting it in the cache
|
||||
bool generate_valid_hash) // Set to false if you want to upload the baked texture w/o putting it in the cache
|
||||
{
|
||||
LLUUID hash_id;
|
||||
bool hash_computed = false;
|
||||
|
|
|
|||
|
|
@ -60,11 +60,11 @@ public:
|
|||
const LLWearable* getBottomWearable(const LLWearableType::EType type) const;
|
||||
U32 getWearableCount(const LLWearableType::EType type) const;
|
||||
U32 getWearableCount(const U32 tex_index) const;
|
||||
BOOL getWearableIndex(const LLWearable *wearable, U32& index) const;
|
||||
bool getWearableIndex(const LLWearable *wearable, U32& index) const;
|
||||
U32 getClothingLayerCount() const;
|
||||
BOOL canAddWearable(const LLWearableType::EType type) const;
|
||||
bool canAddWearable(const LLWearableType::EType type) const;
|
||||
|
||||
BOOL isOnTop(LLWearable* wearable) const;
|
||||
bool isOnTop(LLWearable* wearable) const;
|
||||
|
||||
static const U32 MAX_CLOTHING_LAYERS = 60;
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ protected:
|
|||
void setWearable(const LLWearableType::EType type, U32 index, LLWearable *wearable);
|
||||
void pushWearable(const LLWearableType::EType type, LLWearable *wearable,
|
||||
bool trigger_updated = true);
|
||||
virtual void wearableUpdated(LLWearable *wearable, BOOL removed);
|
||||
virtual void wearableUpdated(LLWearable *wearable, bool removed);
|
||||
void eraseWearable(LLWearable *wearable);
|
||||
void eraseWearable(const LLWearableType::EType type, U32 index);
|
||||
// void clearWearableType(const LLWearableType::EType type);
|
||||
|
|
@ -91,7 +91,7 @@ private:
|
|||
//--------------------------------------------------------------------
|
||||
public:
|
||||
LLUUID computeBakedTextureHash(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index,
|
||||
BOOL generate_valid_hash = TRUE);
|
||||
bool generate_valid_hash = true);
|
||||
protected:
|
||||
virtual void invalidateBakedTextureHash(LLMD5& hash) const {}
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
|
|
|||
|
|
@ -32,30 +32,30 @@
|
|||
|
||||
LLWearableType::LLWearableDictionary::LLWearableDictionary(LLTranslationBridge::ptr_t& trans)
|
||||
{
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry(trans, "shape", "New Shape", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_SHAPE, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry(trans, "skin", "New Skin", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_SKIN, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry(trans, "hair", "New Hair", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_HAIR, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry(trans, "eyes", "New Eyes", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_EYES, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_SHIRT, new WearableEntry(trans, "shirt", "New Shirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SHIRT, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_PANTS, new WearableEntry(trans, "pants", "New Pants", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PANTS, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SHOES, new WearableEntry(trans, "shoes", "New Shoes", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SHOES, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SOCKS, new WearableEntry(trans, "socks", "New Socks", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SOCKS, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_JACKET, new WearableEntry(trans, "jacket", "New Jacket", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_JACKET, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_GLOVES, new WearableEntry(trans, "gloves", "New Gloves", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_GLOVES, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry(trans, "undershirt", "New Undershirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNDERSHIRT, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(trans, "underpants", "New Underpants", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNDERPANTS, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(trans, "skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SKIRT, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(trans, "alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_ALPHA, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry(trans, "tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_TATTOO, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_UNIVERSAL, new WearableEntry(trans, "universal", "New Universal", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNIVERSAL, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry(trans, "shape", "New Shape", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_SHAPE, false, false));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry(trans, "skin", "New Skin", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_SKIN, false, false));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry(trans, "hair", "New Hair", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_HAIR, false, false));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry(trans, "eyes", "New Eyes", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_EYES, false, false));
|
||||
addEntry(LLWearableType::WT_SHIRT, new WearableEntry(trans, "shirt", "New Shirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SHIRT, false, true));
|
||||
addEntry(LLWearableType::WT_PANTS, new WearableEntry(trans, "pants", "New Pants", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PANTS, false, true));
|
||||
addEntry(LLWearableType::WT_SHOES, new WearableEntry(trans, "shoes", "New Shoes", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SHOES, false, true));
|
||||
addEntry(LLWearableType::WT_SOCKS, new WearableEntry(trans, "socks", "New Socks", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SOCKS, false, true));
|
||||
addEntry(LLWearableType::WT_JACKET, new WearableEntry(trans, "jacket", "New Jacket", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_JACKET, false, true));
|
||||
addEntry(LLWearableType::WT_GLOVES, new WearableEntry(trans, "gloves", "New Gloves", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_GLOVES, false, true));
|
||||
addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry(trans, "undershirt", "New Undershirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNDERSHIRT, false, true));
|
||||
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(trans, "underpants", "New Underpants", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNDERPANTS, false, true));
|
||||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(trans, "skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SKIRT, false, true));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(trans, "alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_ALPHA, false, true));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry(trans, "tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_TATTOO, false, true));
|
||||
addEntry(LLWearableType::WT_UNIVERSAL, new WearableEntry(trans, "universal", "New Universal", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNIVERSAL, false, true));
|
||||
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2011-05-29 (Catznip-2.6)
|
||||
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(trans, "physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, TRUE, FALSE));
|
||||
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(trans, "physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, true, false));
|
||||
// [/SL:KB]
|
||||
// addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(trans, "physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, TRUE, TRUE));
|
||||
// addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(trans, "physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, true, true));
|
||||
|
||||
addEntry(LLWearableType::WT_INVALID, new WearableEntry(trans, "invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryType::ICONNAME_UNKNOWN, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_NONE, new WearableEntry(trans, "none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryType::ICONNAME_NONE, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_INVALID, new WearableEntry(trans, "invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryType::ICONNAME_UNKNOWN, false, false));
|
||||
addEntry(LLWearableType::WT_NONE, new WearableEntry(trans, "none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryType::ICONNAME_NONE, false, false));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -115,17 +115,17 @@ LLInventoryType::EIconName LLWearableType::getIconName(LLWearableType::EType typ
|
|||
return entry->mIconName;
|
||||
}
|
||||
|
||||
BOOL LLWearableType::getDisableCameraSwitch(LLWearableType::EType type)
|
||||
bool LLWearableType::getDisableCameraSwitch(LLWearableType::EType type)
|
||||
{
|
||||
const WearableEntry *entry = mDictionary.lookup(type);
|
||||
if (!entry) return FALSE;
|
||||
if (!entry) return false;
|
||||
return entry->mDisableCameraSwitch;
|
||||
}
|
||||
|
||||
BOOL LLWearableType::getAllowMultiwear(LLWearableType::EType type)
|
||||
bool LLWearableType::getAllowMultiwear(LLWearableType::EType type)
|
||||
{
|
||||
const WearableEntry *entry = mDictionary.lookup(type);
|
||||
if (!entry) return FALSE;
|
||||
if (!entry) return false;
|
||||
return entry->mAllowMultiwear;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,8 +72,8 @@ public:
|
|||
LLAssetType::EType getAssetType(EType type);
|
||||
EType typeNameToType(const std::string& type_name);
|
||||
LLInventoryType::EIconName getIconName(EType type);
|
||||
BOOL getDisableCameraSwitch(EType type);
|
||||
BOOL getAllowMultiwear(EType type);
|
||||
bool getDisableCameraSwitch(EType type);
|
||||
bool getAllowMultiwear(EType type);
|
||||
|
||||
static EType inventoryFlagsToWearableType(U32 flags);
|
||||
|
||||
|
|
@ -85,8 +85,8 @@ private:
|
|||
const std::string& default_new_name,
|
||||
LLAssetType::EType assetType,
|
||||
LLInventoryType::EIconName iconName,
|
||||
BOOL disable_camera_switch = FALSE,
|
||||
BOOL allow_multiwear = TRUE) :
|
||||
bool disable_camera_switch = false,
|
||||
bool allow_multiwear = true) :
|
||||
LLDictionaryEntry(name),
|
||||
mAssetType(assetType),
|
||||
mDefaultNewName(default_new_name),
|
||||
|
|
@ -101,8 +101,8 @@ private:
|
|||
const std::string mLabel;
|
||||
const std::string mDefaultNewName;
|
||||
LLInventoryType::EIconName mIconName;
|
||||
BOOL mDisableCameraSwitch;
|
||||
BOOL mAllowMultiwear;
|
||||
bool mDisableCameraSwitch;
|
||||
bool mAllowMultiwear;
|
||||
};
|
||||
|
||||
class LLWearableDictionary : public LLDictionary<LLWearableType::EType, WearableEntry>
|
||||
|
|
|
|||
|
|
@ -70,22 +70,22 @@ public:
|
|||
|
||||
LLVorbisDecodeState(const LLUUID &uuid, const std::string &out_filename);
|
||||
|
||||
BOOL initDecode();
|
||||
BOOL decodeSection(); // Return TRUE if done.
|
||||
BOOL finishDecode();
|
||||
bool initDecode();
|
||||
bool decodeSection(); // Return true if done.
|
||||
bool finishDecode();
|
||||
|
||||
void flushBadFile();
|
||||
|
||||
void ioComplete(S32 bytes) { mBytesRead = bytes; }
|
||||
BOOL isValid() const { return mValid; }
|
||||
BOOL isDone() const { return mDone; }
|
||||
bool isValid() const { return mValid; }
|
||||
bool isDone() const { return mDone; }
|
||||
const LLUUID &getUUID() const { return mUUID; }
|
||||
|
||||
protected:
|
||||
virtual ~LLVorbisDecodeState();
|
||||
|
||||
BOOL mValid;
|
||||
BOOL mDone;
|
||||
bool mValid;
|
||||
bool mDone;
|
||||
LLAtomicS32 mBytesRead;
|
||||
LLUUID mUUID;
|
||||
|
||||
|
|
@ -164,8 +164,8 @@ long cache_tell (void *datasource)
|
|||
|
||||
LLVorbisDecodeState::LLVorbisDecodeState(const LLUUID &uuid, const std::string &out_filename)
|
||||
{
|
||||
mDone = FALSE;
|
||||
mValid = FALSE;
|
||||
mDone = false;
|
||||
mValid = false;
|
||||
mBytesRead = -1;
|
||||
mUUID = uuid;
|
||||
mInFilep = NULL;
|
||||
|
|
@ -188,7 +188,7 @@ LLVorbisDecodeState::~LLVorbisDecodeState()
|
|||
}
|
||||
|
||||
|
||||
BOOL LLVorbisDecodeState::initDecode()
|
||||
bool LLVorbisDecodeState::initDecode()
|
||||
{
|
||||
ov_callbacks cache_callbacks;
|
||||
cache_callbacks.read_func = cache_read;
|
||||
|
|
@ -204,14 +204,14 @@ BOOL LLVorbisDecodeState::initDecode()
|
|||
LL_WARNS("AudioEngine") << "unable to open vorbis source vfile for reading" << LL_ENDL;
|
||||
delete mInFilep;
|
||||
mInFilep = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
S32 r = ov_open_callbacks(mInFilep, &mVF, NULL, 0, cache_callbacks);
|
||||
if(r < 0)
|
||||
{
|
||||
LL_WARNS("AudioEngine") << r << " Input to vorbis decode does not appear to be an Ogg bitstream: " << mUUID << LL_ENDL;
|
||||
return(FALSE);
|
||||
return(false);
|
||||
}
|
||||
|
||||
S32 sample_count = (S32)ov_pcm_total(&mVF, -1);
|
||||
|
|
@ -260,7 +260,7 @@ BOOL LLVorbisDecodeState::initDecode()
|
|||
}
|
||||
delete mInFilep;
|
||||
mInFilep = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
|
|
@ -273,7 +273,7 @@ BOOL LLVorbisDecodeState::initDecode()
|
|||
LL_WARNS("AudioEngine") << "Out of memory when trying to alloc buffer: " << size_guess << LL_ENDL;
|
||||
delete mInFilep;
|
||||
mInFilep = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -360,31 +360,31 @@ BOOL LLVorbisDecodeState::initDecode()
|
|||
// fprintf(stderr,"\nDecoded length: %ld samples\n", (long)ov_pcm_total(&vf,-1));
|
||||
// fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
|
||||
//}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLVorbisDecodeState::decodeSection()
|
||||
bool LLVorbisDecodeState::decodeSection()
|
||||
{
|
||||
if (!mInFilep)
|
||||
{
|
||||
LL_WARNS("AudioEngine") << "No cache file to decode in vorbis!" << LL_ENDL;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
if (mDone)
|
||||
{
|
||||
// LL_WARNS("AudioEngine") << "Already done with decode, aborting!" << LL_ENDL;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
char pcmout[4096]; /*Flawfinder: ignore*/
|
||||
|
||||
BOOL eof = FALSE;
|
||||
bool eof = false;
|
||||
long ret=ov_read(&mVF, pcmout, sizeof(pcmout), 0, 2, 1, &mCurrentSection);
|
||||
if (ret == 0)
|
||||
{
|
||||
/* EOF */
|
||||
eof = TRUE;
|
||||
mDone = TRUE;
|
||||
mValid = TRUE;
|
||||
eof = true;
|
||||
mDone = true;
|
||||
mValid = true;
|
||||
// LL_INFOS("AudioEngine") << "Vorbis EOF" << LL_ENDL;
|
||||
}
|
||||
else if (ret < 0)
|
||||
|
|
@ -394,10 +394,10 @@ BOOL LLVorbisDecodeState::decodeSection()
|
|||
|
||||
LL_WARNS("AudioEngine") << "BAD vorbis decode in decodeSection." << LL_ENDL;
|
||||
|
||||
mValid = FALSE;
|
||||
mDone = TRUE;
|
||||
// We're done, return TRUE.
|
||||
return TRUE;
|
||||
mValid = false;
|
||||
mDone = true;
|
||||
// We're done, return true.
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -409,12 +409,12 @@ BOOL LLVorbisDecodeState::decodeSection()
|
|||
return eof;
|
||||
}
|
||||
|
||||
BOOL LLVorbisDecodeState::finishDecode()
|
||||
bool LLVorbisDecodeState::finishDecode()
|
||||
{
|
||||
if (!isValid())
|
||||
{
|
||||
LL_WARNS("AudioEngine") << "Bogus vorbis decode state for " << getUUID() << ", aborting!" << LL_ENDL;
|
||||
return TRUE; // We've finished
|
||||
return true; // We've finished
|
||||
}
|
||||
|
||||
if (mFileHandle == LLLFSThread::nullHandle())
|
||||
|
|
@ -487,8 +487,8 @@ BOOL LLVorbisDecodeState::finishDecode()
|
|||
if (36 == data_length)
|
||||
{
|
||||
LL_WARNS("AudioEngine") << "BAD Vorbis decode in finishDecode!" << LL_ENDL;
|
||||
mValid = FALSE;
|
||||
return TRUE; // we've finished
|
||||
mValid = false;
|
||||
return true; // we've finished
|
||||
}
|
||||
mBytesRead = -1;
|
||||
mFileHandle = LLLFSThread::sLocal->write(mOutFilename, &mWAVBuffer[0], 0, mWAVBuffer.size(),
|
||||
|
|
@ -502,21 +502,21 @@ BOOL LLVorbisDecodeState::finishDecode()
|
|||
if (mBytesRead == 0)
|
||||
{
|
||||
LL_WARNS("AudioEngine") << "Unable to write file in LLVorbisDecodeState::finishDecode" << LL_ENDL;
|
||||
mValid = FALSE;
|
||||
return TRUE; // we've finished
|
||||
mValid = false;
|
||||
return true; // we've finished
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE; // not done
|
||||
return false; // not done
|
||||
}
|
||||
}
|
||||
|
||||
mDone = TRUE;
|
||||
mDone = true;
|
||||
|
||||
LL_DEBUGS("AudioEngine") << "Finished decode for " << getUUID() << LL_ENDL;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLVorbisDecodeState::flushBadFile()
|
||||
|
|
@ -790,18 +790,18 @@ void LLAudioDecodeMgr::processQueue()
|
|||
mImpl->processQueue();
|
||||
}
|
||||
|
||||
BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid)
|
||||
bool LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid)
|
||||
{
|
||||
// <FS:ND> Protect against corrupted sounds. Just do a quit exit instead of trying to decode over and over.
|
||||
if (gAudiop && gAudiop->isCorruptSound(uuid))
|
||||
return FALSE;
|
||||
return false;
|
||||
// </FS:ND>
|
||||
|
||||
if (gAudiop && gAudiop->hasDecodedFile(uuid))
|
||||
{
|
||||
// Already have a decoded version, don't need to decode it.
|
||||
LL_DEBUGS("AudioEngine") << "addDecodeRequest for " << uuid << " has decoded file already" << LL_ENDL;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (gAssetStorage->hasLocalAsset(uuid, LLAssetType::AT_SOUND))
|
||||
|
|
@ -816,9 +816,9 @@ BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid)
|
|||
mImpl->mDecodeQueue.push_back(uuid);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
LL_DEBUGS("AudioEngine") << "addDecodeRequest for " << uuid << " no file available" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class LLAudioDecodeMgr : public LLSingleton<LLAudioDecodeMgr>
|
|||
~LLAudioDecodeMgr();
|
||||
public:
|
||||
void processQueue();
|
||||
BOOL addDecodeRequest(const LLUUID &uuid);
|
||||
bool addDecodeRequest(const LLUUID &uuid);
|
||||
void addAudioRequest(const LLUUID &uuid);
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ public:
|
|||
|
||||
void preload(const LLUUID &audio_id); // Only used for preloading UI sounds, now.
|
||||
|
||||
void addAudioData(LLAudioData *adp, bool set_current = TRUE);
|
||||
void addAudioData(LLAudioData *adp, bool set_current = true);
|
||||
|
||||
void setForcedPriority(const bool ambient) { mForcedPriority = ambient; }
|
||||
bool isForcedPriority() const { return mForcedPriority; }
|
||||
|
|
|
|||
|
|
@ -135,10 +135,19 @@ void LLAudioEngine_OpenAL::shutdown()
|
|||
LL_INFOS() << "About to LLAudioEngine::shutdown()" << LL_ENDL;
|
||||
LLAudioEngine::shutdown();
|
||||
|
||||
// If a subsequent error occurs while there is still an error recorded
|
||||
// internally, the second error will simply be ignored.
|
||||
// Clear previous error to make sure we will captuare a valid failure reason
|
||||
ALenum error = alutGetError();
|
||||
if (error != ALUT_ERROR_NO_ERROR)
|
||||
{
|
||||
LL_WARNS() << "Uncleared error state prior to shutdown: "
|
||||
<< alutGetErrorString(error) << LL_ENDL;
|
||||
}
|
||||
|
||||
LL_INFOS() << "About to alutExit()" << LL_ENDL;
|
||||
if(!alutExit())
|
||||
{
|
||||
LL_WARNS() << "Nuts." << LL_ENDL;
|
||||
LL_WARNS() << "LLAudioEngine_OpenAL::shutdown() ALUT shutdown failed: " << alutGetErrorString (alutGetError ()) << LL_ENDL;
|
||||
}
|
||||
|
||||
|
|
@ -528,7 +537,7 @@ void LLAudioEngine_OpenAL::updateWind(LLVector3 wind_vec, F32 camera_altitude)
|
|||
}
|
||||
|
||||
alBufferData(buffer,
|
||||
AL_FORMAT_STEREO16,
|
||||
AL_FORMAT_STEREO_FLOAT32,
|
||||
mWindGen->windGenerate(mWindBuf,
|
||||
mWindBufSamples),
|
||||
mWindBufBytes,
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ class LLAudioEngine_OpenAL : public LLAudioEngine
|
|||
/*virtual*/ void updateWind(LLVector3 direction, F32 camera_altitude);
|
||||
|
||||
private:
|
||||
typedef S16 WIND_SAMPLE_T;
|
||||
typedef F32 WIND_SAMPLE_T;
|
||||
LLWindGen<WIND_SAMPLE_T> *mWindGen;
|
||||
S16 *mWindBuf;
|
||||
F32 *mWindBuf;
|
||||
U32 mWindBufFreq;
|
||||
U32 mWindBufSamples;
|
||||
U32 mWindBufBytes;
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "AL/al.h"
|
||||
#include "AL/alut.h"
|
||||
#include "AL/alext.h"
|
||||
|
||||
class LLListener_OpenAL : public LLListener
|
||||
{
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ S32 check_for_invalid_wav_formats(const std::string& in_fname, std::string& erro
|
|||
U32 chunk_length = 0;
|
||||
U32 raw_data_length = 0;
|
||||
U32 bytes_per_sec = 0;
|
||||
BOOL uncompressed_pcm = FALSE;
|
||||
bool uncompressed_pcm = false;
|
||||
|
||||
unsigned char wav_header[44]; /*Flawfinder: ignore*/
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ S32 check_for_invalid_wav_formats(const std::string& in_fname, std::string& erro
|
|||
{
|
||||
if ((wav_header[8] == 0x01) && (wav_header[9] == 0x00))
|
||||
{
|
||||
uncompressed_pcm = TRUE;
|
||||
uncompressed_pcm = true;
|
||||
}
|
||||
num_channels = ((U16) wav_header[11] << 8) + wav_header[10];
|
||||
sample_rate = ((U32) wav_header[15] << 24)
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ const char *LLAnimationLibrary::animStateToString( const LLUUID& state )
|
|||
//-----------------------------------------------------------------------------
|
||||
// Return the animation state for a given name
|
||||
//-----------------------------------------------------------------------------
|
||||
LLUUID LLAnimationLibrary::stringToAnimState( const std::string& name, BOOL allow_ids )
|
||||
LLUUID LLAnimationLibrary::stringToAnimState( const std::string& name, bool allow_ids )
|
||||
{
|
||||
std::string lower_case_name(name);
|
||||
LLStringUtil::toLower(lower_case_name);
|
||||
|
|
@ -393,7 +393,7 @@ LLUUID LLAnimationLibrary::stringToAnimState( const std::string& name, BOOL allo
|
|||
else if (allow_ids)
|
||||
{
|
||||
// try to convert string to LLUUID
|
||||
id.set(name, FALSE);
|
||||
id.set(name, false);
|
||||
}
|
||||
|
||||
return id;
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ public:
|
|||
// Return the animation state for the given name.
|
||||
// Retun NULL if the name is invalid.
|
||||
//-----------------------------------------------------------------------------
|
||||
LLUUID stringToAnimState( const std::string& name, BOOL allow_ids = TRUE );
|
||||
LLUUID stringToAnimState( const std::string& name, bool allow_ids = true );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Associate an anim state with a name
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ LLBVHLoader::LLBVHLoader(const char* buffer, ELoadStatus &loadStatus, S32 &error
|
|||
LL_DEBUGS("BVH") << "After translations and optimize" << LL_ENDL;
|
||||
dumpBVHInfo();
|
||||
|
||||
mInitialized = TRUE;
|
||||
mInitialized = true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -232,7 +232,7 @@ ELoadStatus LLBVHLoader::loadTranslationTable(const char *fileName)
|
|||
//--------------------------------------------------------------------
|
||||
// load data one line at a time
|
||||
//--------------------------------------------------------------------
|
||||
BOOL loadingGlobals = FALSE;
|
||||
bool loadingGlobals = false;
|
||||
while ( getLine(fp) )
|
||||
{
|
||||
//----------------------------------------------------------------
|
||||
|
|
@ -256,7 +256,7 @@ ELoadStatus LLBVHLoader::loadTranslationTable(const char *fileName)
|
|||
|
||||
if (strcmp(name, "GLOBALS")==0)
|
||||
{
|
||||
loadingGlobals = TRUE;
|
||||
loadingGlobals = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
@ -303,7 +303,7 @@ ELoadStatus LLBVHLoader::loadTranslationTable(const char *fileName)
|
|||
|
||||
if ( sscanf(mLine, " %*s = %f %f", &loop_in, &loop_out) == 2 )
|
||||
{
|
||||
mLoop = TRUE;
|
||||
mLoop = true;
|
||||
}
|
||||
else if ( sscanf(mLine, " %*s = %127s", trueFalse) == 1 ) /* Flawfinder: ignore */
|
||||
{
|
||||
|
|
@ -501,8 +501,8 @@ void LLBVHLoader::makeTranslation(std::string alias_name, std::string joint_name
|
|||
|
||||
if (joint_name == "mPelvis")
|
||||
{
|
||||
newTrans.mRelativePositionKey = TRUE;
|
||||
newTrans.mRelativeRotationKey = TRUE;
|
||||
newTrans.mRelativePositionKey = true;
|
||||
newTrans.mRelativeRotationKey = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -614,7 +614,7 @@ ELoadStatus LLBVHLoader::loadBVHFile(const char *buffer, char* error_text, S32 &
|
|||
//--------------------------------------------------------------------
|
||||
// consume joints
|
||||
//--------------------------------------------------------------------
|
||||
while (TRUE)
|
||||
while (true)
|
||||
{
|
||||
//----------------------------------------------------------------
|
||||
// get next line
|
||||
|
|
@ -974,7 +974,7 @@ void LLBVHLoader::applyTranslations()
|
|||
if ( trans.mIgnore )
|
||||
{
|
||||
//LL_INFOS() << "NOTE: Ignoring " << joint->mName.c_str() << LL_ENDL;
|
||||
joint->mIgnore = TRUE;
|
||||
joint->mIgnore = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -988,10 +988,10 @@ void LLBVHLoader::applyTranslations()
|
|||
}
|
||||
|
||||
//Allow joint position changes as of SL-318
|
||||
joint->mIgnorePositions = FALSE;
|
||||
joint->mIgnorePositions = false;
|
||||
if (joint->mNumChannels == 3)
|
||||
{
|
||||
joint->mIgnorePositions = TRUE;
|
||||
joint->mIgnorePositions = true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------
|
||||
|
|
@ -1000,13 +1000,13 @@ void LLBVHLoader::applyTranslations()
|
|||
if ( trans.mRelativePositionKey )
|
||||
{
|
||||
// LL_INFOS() << "NOTE: Removing 1st position offset from all keys for " << joint->mOutName.c_str() << LL_ENDL;
|
||||
joint->mRelativePositionKey = TRUE;
|
||||
joint->mRelativePositionKey = true;
|
||||
}
|
||||
|
||||
if ( trans.mRelativeRotationKey )
|
||||
{
|
||||
// LL_INFOS() << "NOTE: Removing 1st rotation from all keys for " << joint->mOutName.c_str() << LL_ENDL;
|
||||
joint->mRelativeRotationKey = TRUE;
|
||||
joint->mRelativeRotationKey = true;
|
||||
}
|
||||
|
||||
if ( trans.mRelativePosition.magVec() > 0.0f )
|
||||
|
|
@ -1070,8 +1070,8 @@ void LLBVHLoader::optimize()
|
|||
|
||||
for (Joint* joint : mJoints)
|
||||
{
|
||||
BOOL pos_changed = FALSE;
|
||||
BOOL rot_changed = FALSE;
|
||||
bool pos_changed = false;
|
||||
bool rot_changed = false;
|
||||
|
||||
if ( ! joint->mIgnore )
|
||||
{
|
||||
|
|
@ -1084,7 +1084,7 @@ void LLBVHLoader::optimize()
|
|||
// no keys?
|
||||
if (first_key == joint->mKeys.end())
|
||||
{
|
||||
joint->mIgnore = TRUE;
|
||||
joint->mIgnore = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -1097,13 +1097,13 @@ void LLBVHLoader::optimize()
|
|||
{
|
||||
// *FIX: use single frame to move pelvis
|
||||
// if only one keyframe force output for this joint
|
||||
rot_changed = TRUE;
|
||||
rot_changed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// if more than one keyframe, use first frame as reference and skip to second
|
||||
first_key->mIgnorePos = TRUE;
|
||||
first_key->mIgnoreRot = TRUE;
|
||||
first_key->mIgnorePos = true;
|
||||
first_key->mIgnoreRot = true;
|
||||
++ki;
|
||||
}
|
||||
|
||||
|
|
@ -1124,7 +1124,7 @@ void LLBVHLoader::optimize()
|
|||
joint->mNumPosKeys++;
|
||||
if (dist_vec_squared(LLVector3(ki_prev->mPos), first_frame_pos) > POSITION_MOTION_THRESHOLD_SQUARED)
|
||||
{
|
||||
pos_changed = TRUE;
|
||||
pos_changed = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1137,12 +1137,12 @@ void LLBVHLoader::optimize()
|
|||
|
||||
if (dist_vec_squared(current_pos, first_frame_pos) > POSITION_MOTION_THRESHOLD_SQUARED)
|
||||
{
|
||||
pos_changed = TRUE;
|
||||
pos_changed = true;
|
||||
}
|
||||
|
||||
if (dist_vec_squared(interp_pos, test_pos) < POSITION_KEYFRAME_THRESHOLD_SQUARED)
|
||||
{
|
||||
ki_prev->mIgnorePos = TRUE;
|
||||
ki_prev->mIgnorePos = true;
|
||||
numPosFramesConsidered++;
|
||||
}
|
||||
else
|
||||
|
|
@ -1163,7 +1163,7 @@ void LLBVHLoader::optimize()
|
|||
|
||||
if (rot_test > ROTATION_MOTION_THRESHOLD)
|
||||
{
|
||||
rot_changed = TRUE;
|
||||
rot_changed = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1185,7 +1185,7 @@ void LLBVHLoader::optimize()
|
|||
rot_test = x_delta + y_delta;
|
||||
if (rot_test > ROTATION_MOTION_THRESHOLD)
|
||||
{
|
||||
rot_changed = TRUE;
|
||||
rot_changed = true;
|
||||
}
|
||||
x_delta = dist_vec(LLVector3::x_axis * interp_rot, LLVector3::x_axis * test_rot);
|
||||
y_delta = dist_vec(LLVector3::y_axis * interp_rot, LLVector3::y_axis * test_rot);
|
||||
|
|
@ -1207,9 +1207,9 @@ void LLBVHLoader::optimize()
|
|||
// because it's significantly faster.
|
||||
if (diff_max > 0)
|
||||
{
|
||||
if (ki_max->mIgnoreRot == TRUE)
|
||||
if (ki_max->mIgnoreRot)
|
||||
{
|
||||
ki_max->mIgnoreRot = FALSE;
|
||||
ki_max->mIgnoreRot = false;
|
||||
joint->mNumRotKeys++;
|
||||
}
|
||||
diff_max = 0;
|
||||
|
|
@ -1218,7 +1218,7 @@ void LLBVHLoader::optimize()
|
|||
else
|
||||
{
|
||||
// This keyframe isn't significant enough, throw it away.
|
||||
ki_prev->mIgnoreRot = TRUE;
|
||||
ki_prev->mIgnoreRot = true;
|
||||
numRotFramesConsidered++;
|
||||
// Store away the keyframe that has the largest deviation from the interpolated line, for insertion later.
|
||||
if (rot_test > diff_max)
|
||||
|
|
@ -1237,7 +1237,7 @@ void LLBVHLoader::optimize()
|
|||
if (!(pos_changed || rot_changed))
|
||||
{
|
||||
//LL_INFOS() << "Ignoring joint " << joint->mName << LL_ENDL;
|
||||
joint->mIgnore = TRUE;
|
||||
joint->mIgnore = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1250,13 +1250,13 @@ void LLBVHLoader::reset()
|
|||
mDuration = 0.0f;
|
||||
|
||||
mPriority = 2;
|
||||
mLoop = FALSE;
|
||||
mLoop = false;
|
||||
mLoopInPoint = 0.f;
|
||||
mLoopOutPoint = 0.f;
|
||||
mEaseIn = 0.3f;
|
||||
mEaseOut = 0.3f;
|
||||
mHand = 1;
|
||||
mInitialized = FALSE;
|
||||
mInitialized = false;
|
||||
|
||||
mEmoteName = "";
|
||||
mLineNumber = 0;
|
||||
|
|
@ -1269,21 +1269,21 @@ void LLBVHLoader::reset()
|
|||
//------------------------------------------------------------------------
|
||||
|
||||
// <FS:ND> Remove LLVolatileAPRPool/apr_file_t and use FILE* instead
|
||||
//BOOL LLBVHLoader::getLine(apr_file_t* fp)
|
||||
BOOL LLBVHLoader::getLine(LLAPRFile::tFiletype* fp)
|
||||
//bool LLBVHLoader::getLine(apr_file_t* fp)
|
||||
bool LLBVHLoader::getLine(LLAPRFile::tFiletype* fp)
|
||||
// </FS:ND>
|
||||
{
|
||||
if (apr_file_eof(fp) == APR_EOF)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if ( apr_file_gets(mLine, BVH_PARSER_LINE_SIZE, fp) == APR_SUCCESS)
|
||||
{
|
||||
mLineNumber++;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// returns required size of output buffer
|
||||
|
|
@ -1296,7 +1296,7 @@ U32 LLBVHLoader::getOutputSize()
|
|||
}
|
||||
|
||||
// writes contents to datapacker
|
||||
BOOL LLBVHLoader::serialize(LLDataPacker& dp)
|
||||
bool LLBVHLoader::serialize(LLDataPacker& dp)
|
||||
{
|
||||
F32 time;
|
||||
|
||||
|
|
@ -1505,5 +1505,5 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp)
|
|||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,8 +71,8 @@ struct Key
|
|||
|
||||
F32 mPos[3];
|
||||
F32 mRot[3];
|
||||
BOOL mIgnorePos;
|
||||
BOOL mIgnoreRot;
|
||||
bool mIgnorePos;
|
||||
bool mIgnoreRot;
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -89,10 +89,10 @@ struct Joint
|
|||
Joint(const char *name)
|
||||
{
|
||||
mName = name;
|
||||
mIgnore = FALSE;
|
||||
mIgnorePositions = FALSE;
|
||||
mRelativePositionKey = FALSE;
|
||||
mRelativeRotationKey = FALSE;
|
||||
mIgnore = false;
|
||||
mIgnorePositions = false;
|
||||
mRelativePositionKey = false;
|
||||
mRelativeRotationKey = false;
|
||||
mOutName = name;
|
||||
mOrder[0] = 'X';
|
||||
mOrder[1] = 'Y';
|
||||
|
|
@ -111,10 +111,10 @@ struct Joint
|
|||
LLVector3 mRelativePosition;
|
||||
//
|
||||
std::string mName;
|
||||
BOOL mIgnore;
|
||||
BOOL mIgnorePositions;
|
||||
BOOL mRelativePositionKey;
|
||||
BOOL mRelativeRotationKey;
|
||||
bool mIgnore;
|
||||
bool mIgnorePositions;
|
||||
bool mRelativePositionKey;
|
||||
bool mRelativeRotationKey;
|
||||
std::string mOutName;
|
||||
std::string mMergeParentName;
|
||||
std::string mMergeChildName;
|
||||
|
|
@ -161,18 +161,18 @@ class Translation
|
|||
public:
|
||||
Translation()
|
||||
{
|
||||
mIgnore = FALSE;
|
||||
mIgnorePositions = FALSE;
|
||||
mRelativePositionKey = FALSE;
|
||||
mRelativeRotationKey = FALSE;
|
||||
mIgnore = false;
|
||||
mIgnorePositions = false;
|
||||
mRelativePositionKey = false;
|
||||
mRelativeRotationKey = false;
|
||||
mPriorityModifier = 0;
|
||||
}
|
||||
|
||||
std::string mOutName;
|
||||
BOOL mIgnore;
|
||||
BOOL mIgnorePositions;
|
||||
BOOL mRelativePositionKey;
|
||||
BOOL mRelativeRotationKey;
|
||||
bool mIgnore;
|
||||
bool mIgnorePositions;
|
||||
bool mRelativePositionKey;
|
||||
bool mRelativeRotationKey;
|
||||
LLMatrix3 mFrameMatrix;
|
||||
LLMatrix3 mOffsetMatrix;
|
||||
LLVector3 mRelativePosition;
|
||||
|
|
@ -293,7 +293,7 @@ public:
|
|||
U32 getOutputSize();
|
||||
|
||||
// writes contents to datapacker
|
||||
BOOL serialize(LLDataPacker& dp);
|
||||
bool serialize(LLDataPacker& dp);
|
||||
|
||||
// flags redundant keyframe data
|
||||
void optimize();
|
||||
|
|
@ -302,7 +302,7 @@ public:
|
|||
|
||||
F32 getDuration() { return mDuration; }
|
||||
|
||||
BOOL isInitialized() { return mInitialized; }
|
||||
bool isInitialized() { return mInitialized; }
|
||||
|
||||
ELoadStatus getStatus() { return mStatus; }
|
||||
|
||||
|
|
@ -312,10 +312,9 @@ public:
|
|||
|
||||
protected:
|
||||
// Consumes one line of input from file.
|
||||
|
||||
// <FS:ND> Remove LLVolatileAPRPool/apr_file_t and use FILE* instead
|
||||
// BOOL getLine(apr_file_t *fp);
|
||||
BOOL getLine(LLAPRFile::tFiletype *fp);
|
||||
// bool getLine(apr_file_t *fp);
|
||||
bool getLine(LLAPRFile::tFiletype *fp);
|
||||
// </FS:ND>
|
||||
|
||||
// parser state
|
||||
|
|
@ -330,7 +329,7 @@ protected:
|
|||
TranslationMap mTranslations;
|
||||
|
||||
S32 mPriority;
|
||||
BOOL mLoop;
|
||||
bool mLoop;
|
||||
F32 mLoopInPoint;
|
||||
F32 mLoopOutPoint;
|
||||
F32 mEaseIn;
|
||||
|
|
@ -338,7 +337,7 @@ protected:
|
|||
S32 mHand;
|
||||
std::string mEmoteName;
|
||||
|
||||
BOOL mInitialized;
|
||||
bool mInitialized;
|
||||
ELoadStatus mStatus;
|
||||
|
||||
// computed values
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
LLStringTable LLCharacter::sVisualParamNames(1024);
|
||||
|
||||
std::vector< LLCharacter* > LLCharacter::sInstances;
|
||||
BOOL LLCharacter::sAllowInstancesChange = TRUE ;
|
||||
bool LLCharacter::sAllowInstancesChange = true ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLCharacter()
|
||||
|
|
@ -122,7 +122,7 @@ LLJoint *LLCharacter::getJoint( const JointKey &name )
|
|||
//-----------------------------------------------------------------------------
|
||||
// registerMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLCharacter::registerMotion( const LLUUID& id, LLMotionConstructor create )
|
||||
bool LLCharacter::registerMotion( const LLUUID& id, LLMotionConstructor create )
|
||||
{
|
||||
return mMotionController.registerMotion(id, create);
|
||||
}
|
||||
|
|
@ -155,7 +155,7 @@ LLMotion* LLCharacter::createMotion( const LLUUID &id )
|
|||
//-----------------------------------------------------------------------------
|
||||
// startMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLCharacter::startMotion(const LLUUID &id, F32 start_offset)
|
||||
bool LLCharacter::startMotion(const LLUUID &id, F32 start_offset)
|
||||
{
|
||||
return mMotionController.startMotion(id, start_offset);
|
||||
}
|
||||
|
|
@ -164,7 +164,7 @@ BOOL LLCharacter::startMotion(const LLUUID &id, F32 start_offset)
|
|||
//-----------------------------------------------------------------------------
|
||||
// stopMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLCharacter::stopMotion(const LLUUID& id, BOOL stop_immediate)
|
||||
bool LLCharacter::stopMotion(const LLUUID& id, bool stop_immediate)
|
||||
{
|
||||
return mMotionController.stopMotionLocally(id, stop_immediate);
|
||||
}
|
||||
|
|
@ -172,7 +172,7 @@ BOOL LLCharacter::stopMotion(const LLUUID& id, BOOL stop_immediate)
|
|||
//-----------------------------------------------------------------------------
|
||||
// isMotionActive()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLCharacter::isMotionActive(const LLUUID& id)
|
||||
bool LLCharacter::isMotionActive(const LLUUID& id)
|
||||
{
|
||||
LLMotion *motionp = mMotionController.findMotion(id);
|
||||
if (motionp)
|
||||
|
|
@ -180,7 +180,7 @@ BOOL LLCharacter::isMotionActive(const LLUUID& id)
|
|||
return mMotionController.isMotionActive(motionp);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -288,8 +288,8 @@ void LLCharacter::removeAnimationData(std::string name)
|
|||
// setVisualParamWeight()
|
||||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//BOOL LLCharacter::setVisualParamWeight(const LLVisualParam* which_param, F32 weight)
|
||||
BOOL LLCharacter::setVisualParamWeight(const LLVisualParam* which_param, F32 weight, BOOL upload_bake)
|
||||
//bool LLCharacter::setVisualParamWeight(const LLVisualParam* which_param, F32 weight)
|
||||
bool LLCharacter::setVisualParamWeight(const LLVisualParam* which_param, F32 weight, bool upload_bake)
|
||||
{
|
||||
S32 index = which_param->getID();
|
||||
visual_param_index_map_t::iterator index_iter = mVisualParamIndexMap.find(index);
|
||||
|
|
@ -298,17 +298,17 @@ BOOL LLCharacter::setVisualParamWeight(const LLVisualParam* which_param, F32 wei
|
|||
// <FS:Ansariel> [Legacy Bake]
|
||||
//index_iter->second->setWeight(weight);
|
||||
index_iter->second->setWeight(weight, upload_bake);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// setVisualParamWeight()
|
||||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//BOOL LLCharacter::setVisualParamWeight(const char* param_name, F32 weight)
|
||||
BOOL LLCharacter::setVisualParamWeight(const char* param_name, F32 weight, BOOL upload_bake)
|
||||
//bool LLCharacter::setVisualParamWeight(const char* param_name, F32 weight)
|
||||
bool LLCharacter::setVisualParamWeight(const char* param_name, F32 weight, bool upload_bake)
|
||||
{
|
||||
std::string tname(param_name);
|
||||
LLStringUtil::toLower(tname);
|
||||
|
|
@ -319,18 +319,18 @@ BOOL LLCharacter::setVisualParamWeight(const char* param_name, F32 weight, BOOL
|
|||
// <FS:Ansariel> [Legacy Bake]
|
||||
//name_iter->second->setWeight(weight);
|
||||
name_iter->second->setWeight(weight, upload_bake);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
LL_WARNS() << "LLCharacter::setVisualParamWeight() Invalid visual parameter: " << param_name << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// setVisualParamWeight()
|
||||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//BOOL LLCharacter::setVisualParamWeight(S32 index, F32 weight)
|
||||
BOOL LLCharacter::setVisualParamWeight(S32 index, F32 weight, BOOL upload_bake)
|
||||
//bool LLCharacter::setVisualParamWeight(S32 index, F32 weight)
|
||||
bool LLCharacter::setVisualParamWeight(S32 index, F32 weight, bool upload_bake)
|
||||
{
|
||||
visual_param_index_map_t::iterator index_iter = mVisualParamIndexMap.find(index);
|
||||
if (index_iter != mVisualParamIndexMap.end())
|
||||
|
|
@ -338,10 +338,10 @@ BOOL LLCharacter::setVisualParamWeight(S32 index, F32 weight, BOOL upload_bake)
|
|||
// <FS:Ansariel> [Legacy Bake]
|
||||
//index_iter->second->setWeight(weight);
|
||||
index_iter->second->setWeight(weight, upload_bake);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
LL_WARNS() << "LLCharacter::setVisualParamWeight() Invalid visual parameter index: " << index << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -409,7 +409,7 @@ void LLCharacter::clearVisualParamWeights()
|
|||
{
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//param->setWeight( param->getDefaultWeight());
|
||||
param->setWeight( param->getDefaultWeight(), FALSE);
|
||||
param->setWeight( param->getDefaultWeight(), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
// registers a motion with the character
|
||||
// returns true if successfull
|
||||
BOOL registerMotion( const LLUUID& id, LLMotionConstructor create );
|
||||
bool registerMotion( const LLUUID& id, LLMotionConstructor create );
|
||||
|
||||
void removeMotion( const LLUUID& id );
|
||||
|
||||
|
|
@ -143,13 +143,13 @@ public:
|
|||
|
||||
// start a motion
|
||||
// returns true if successful, false if an error occurred
|
||||
virtual BOOL startMotion( const LLUUID& id, F32 start_offset = 0.f);
|
||||
virtual bool startMotion( const LLUUID& id, F32 start_offset = 0.f);
|
||||
|
||||
// stop a motion
|
||||
virtual BOOL stopMotion( const LLUUID& id, BOOL stop_immediate = FALSE );
|
||||
virtual bool stopMotion( const LLUUID& id, bool stop_immediate = false );
|
||||
|
||||
// is this motion active?
|
||||
BOOL isMotionActive( const LLUUID& id );
|
||||
bool isMotionActive( const LLUUID& id );
|
||||
|
||||
// Event handler for motion deactivation.
|
||||
// Called when a motion has completely stopped and has been deactivated.
|
||||
|
|
@ -162,7 +162,7 @@ public:
|
|||
void updateMotions(e_update_t update_type);
|
||||
|
||||
LLAnimPauseRequest requestPause();
|
||||
BOOL areAnimationsPaused() const { return mMotionController.isPaused(); }
|
||||
bool areAnimationsPaused() const { return mMotionController.isPaused(); }
|
||||
void setAnimTimeFactor(F32 factor) { mMotionController.setTimeFactor(factor); }
|
||||
void setTimeStep(F32 time_step) { mMotionController.setTimeStep(time_step); }
|
||||
|
||||
|
|
@ -197,12 +197,12 @@ public:
|
|||
void addSharedVisualParam(LLVisualParam *param);
|
||||
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//virtual BOOL setVisualParamWeight(const LLVisualParam *which_param, F32 weight);
|
||||
//virtual BOOL setVisualParamWeight(const char* param_name, F32 weight);
|
||||
//virtual BOOL setVisualParamWeight(S32 index, F32 weight);
|
||||
virtual BOOL setVisualParamWeight(const LLVisualParam *which_param, F32 weight, BOOL upload_bake = FALSE );
|
||||
virtual BOOL setVisualParamWeight(const char* param_name, F32 weight, BOOL upload_bake = FALSE );
|
||||
virtual BOOL setVisualParamWeight(S32 index, F32 weight, BOOL upload_bake = FALSE );
|
||||
//virtual bool setVisualParamWeight(const LLVisualParam *which_param, F32 weight);
|
||||
//virtual bool setVisualParamWeight(const char* param_name, F32 weight);
|
||||
//virtual bool setVisualParamWeight(S32 index, F32 weight);
|
||||
virtual bool setVisualParamWeight(const LLVisualParam *which_param, F32 weight, bool upload_bake = false );
|
||||
virtual bool setVisualParamWeight(const char* param_name, F32 weight, bool upload_bake = false );
|
||||
virtual bool setVisualParamWeight(S32 index, F32 weight, bool upload_bake = false );
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
||||
// get visual param weight by param or name
|
||||
|
|
@ -267,7 +267,7 @@ public:
|
|||
void setSkeletonSerialNum( U32 num ) { mSkeletonSerialNum = num; }
|
||||
|
||||
static std::vector< LLCharacter* > sInstances;
|
||||
static BOOL sAllowInstancesChange ; //debug use
|
||||
static bool sAllowInstancesChange ; //debug use
|
||||
|
||||
virtual void setHoverOffset(const LLVector3& hover_offset, bool send_update=true) { mHoverOffset = hover_offset; }
|
||||
const LLVector3& getHoverOffset() const { return mHoverOffset; }
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ LLMotion::LLMotionInitStatus LLEditingMotion::onInitialize(LLCharacter *characte
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLEditingMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLEditingMotion::onActivate()
|
||||
bool LLEditingMotion::onActivate()
|
||||
{
|
||||
// propagate joint positions to kinematic chain
|
||||
// SL-315
|
||||
|
|
@ -155,25 +155,25 @@ BOOL LLEditingMotion::onActivate()
|
|||
mShoulderJoint.setRotation( mShoulderState->getJoint()->getRotation() );
|
||||
mElbowJoint.setRotation( mElbowState->getJoint()->getRotation() );
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLEditingMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
LLVector3 focus_pt;
|
||||
LLVector3* pointAtPt = (LLVector3*)mCharacter->getAnimationData("PointAtPoint");
|
||||
|
||||
|
||||
BOOL result = TRUE;
|
||||
bool result = true;
|
||||
|
||||
if (!pointAtPt)
|
||||
{
|
||||
focus_pt = mLastSelectPt;
|
||||
result = FALSE;
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
|
||||
// motions must report their total duration
|
||||
virtual F32 getDuration() { return 0.0; }
|
||||
|
|
@ -94,14 +94,14 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
|
|
|||
|
|
@ -91,17 +91,17 @@ const LLGesture &LLGesture::operator =(const LLGesture &rhs)
|
|||
}
|
||||
|
||||
|
||||
BOOL LLGesture::trigger(KEY key, MASK mask)
|
||||
bool LLGesture::trigger(KEY key, MASK mask)
|
||||
{
|
||||
LL_WARNS() << "Parent class trigger called: you probably didn't mean this." << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLGesture::trigger(const std::string& trigger_string)
|
||||
bool LLGesture::trigger(const std::string& trigger_string)
|
||||
{
|
||||
LL_WARNS() << "Parent class trigger called: you probably didn't mean this." << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// NOT endian-neutral
|
||||
|
|
@ -189,12 +189,12 @@ void LLGestureList::deleteAll()
|
|||
// Iterates through space delimited tokens in string, triggering any gestures found.
|
||||
// Generates a revised string that has the found tokens replaced by their replacement strings
|
||||
// and (as a minor side effect) has multiple spaces in a row replaced by single spaces.
|
||||
BOOL LLGestureList::triggerAndReviseString(const std::string &string, std::string* revised_string)
|
||||
bool LLGestureList::triggerAndReviseString(const std::string &string, std::string* revised_string)
|
||||
{
|
||||
std::string tokenized = string;
|
||||
|
||||
BOOL found_gestures = FALSE;
|
||||
BOOL first_token = TRUE;
|
||||
bool found_gestures = false;
|
||||
bool first_token = true;
|
||||
|
||||
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
|
||||
boost::char_separator<char> sep(" ");
|
||||
|
|
@ -235,7 +235,7 @@ BOOL LLGestureList::triggerAndReviseString(const std::string &string, std::strin
|
|||
}
|
||||
|
||||
}
|
||||
found_gestures = TRUE;
|
||||
found_gestures = true;
|
||||
break;
|
||||
}
|
||||
gesture = NULL;
|
||||
|
|
@ -251,14 +251,14 @@ BOOL LLGestureList::triggerAndReviseString(const std::string &string, std::strin
|
|||
revised_string->append( cur_token );
|
||||
}
|
||||
|
||||
first_token = FALSE;
|
||||
first_token = false;
|
||||
}
|
||||
return found_gestures;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL LLGestureList::trigger(KEY key, MASK mask)
|
||||
bool LLGestureList::trigger(KEY key, MASK mask)
|
||||
{
|
||||
for (U32 i = 0; i < mList.size(); i++)
|
||||
{
|
||||
|
|
@ -267,7 +267,7 @@ BOOL LLGestureList::trigger(KEY key, MASK mask)
|
|||
{
|
||||
if (gesture->trigger(key, mask))
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -275,7 +275,7 @@ BOOL LLGestureList::trigger(KEY key, MASK mask)
|
|||
LL_WARNS() << "NULL gesture in gesture list (" << i << ")" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// NOT endian-neutral
|
||||
|
|
|
|||
|
|
@ -55,10 +55,10 @@ public:
|
|||
const std::string& getOutputString() const { return mOutputString; }
|
||||
|
||||
// Triggers if a key/mask matches it
|
||||
virtual BOOL trigger(KEY key, MASK mask);
|
||||
virtual bool trigger(KEY key, MASK mask);
|
||||
|
||||
// Triggers if case-insensitive substring matches (assumes string is lowercase)
|
||||
virtual BOOL trigger(const std::string &string);
|
||||
virtual bool trigger(const std::string &string);
|
||||
|
||||
// non-endian-neutral serialization
|
||||
U8 *serialize(U8 *buffer) const;
|
||||
|
|
@ -84,10 +84,10 @@ public:
|
|||
virtual ~LLGestureList();
|
||||
|
||||
// Triggers if a key/mask matches one in the list
|
||||
BOOL trigger(KEY key, MASK mask);
|
||||
bool trigger(KEY key, MASK mask);
|
||||
|
||||
// Triggers if substring matches and generates revised string.
|
||||
BOOL triggerAndReviseString(const std::string &string, std::string* revised_string);
|
||||
bool triggerAndReviseString(const std::string &string, std::string* revised_string);
|
||||
|
||||
// Used for construction from UI
|
||||
S32 count() const { return mList.size(); }
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ LLMotion::LLMotionInitStatus LLHandMotion::onInitialize(LLCharacter *character)
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLHandMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLHandMotion::onActivate()
|
||||
bool LLHandMotion::onActivate()
|
||||
{
|
||||
LLPolyMesh *upperBodyMesh = mCharacter->getUpperBodyMesh();
|
||||
|
||||
|
|
@ -112,14 +112,14 @@ BOOL LLHandMotion::onActivate()
|
|||
mCharacter->setVisualParamWeight(gHandPoseNames[mCurrentPose], 1.f);
|
||||
mCharacter->updateVisualParams();
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLHandMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLHandMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLHandMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
eHandPose *requestedHandPose;
|
||||
|
|
@ -233,7 +233,7 @@ BOOL LLHandMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
|
||||
// motions must report their total duration
|
||||
virtual F32 getDuration() { return 0.0; }
|
||||
|
|
@ -107,19 +107,19 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual bool onActivate();
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
||||
virtual BOOL canDeprecate() { return FALSE; }
|
||||
virtual bool canDeprecate() { return false; }
|
||||
|
||||
static std::string getHandPoseName(eHandPose pose);
|
||||
static eHandPose getHandPose(std::string posename);
|
||||
|
|
|
|||
|
|
@ -164,16 +164,16 @@ LLMotion::LLMotionInitStatus LLHeadRotMotion::onInitialize(LLCharacter *characte
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLHeadRotMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLHeadRotMotion::onActivate()
|
||||
bool LLHeadRotMotion::onActivate()
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLHeadRotMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLHeadRotMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLHeadRotMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
LLQuaternion targetHeadRotWorld;
|
||||
|
|
@ -251,7 +251,7 @@ BOOL LLHeadRotMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
mHeadState->setRotation( nlerp(1.f - NECK_LAG, LLQuaternion::DEFAULT, head_rot_local));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -279,7 +279,7 @@ LLEyeMotion::LLEyeMotion(const LLUUID &id) : LLMotion(id)
|
|||
mEyeLookAwayPitch = 0.f;
|
||||
|
||||
mEyeBlinkTime = 0.f;
|
||||
mEyesClosed = FALSE;
|
||||
mEyesClosed = false;
|
||||
|
||||
mHeadJoint = NULL;
|
||||
|
||||
|
|
@ -362,9 +362,9 @@ LLMotion::LLMotionInitStatus LLEyeMotion::onInitialize(LLCharacter *character)
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLEyeMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLEyeMotion::onActivate()
|
||||
bool LLEyeMotion::onActivate()
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -373,7 +373,7 @@ BOOL LLEyeMotion::onActivate()
|
|||
void LLEyeMotion::adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_state, LLJointState& right_eye_state)
|
||||
{
|
||||
// Compute eye rotation.
|
||||
BOOL has_eye_target = FALSE;
|
||||
bool has_eye_target = false;
|
||||
LLQuaternion target_eye_rot;
|
||||
LLVector3 eye_look_at;
|
||||
F32 vergence;
|
||||
|
|
@ -385,7 +385,7 @@ void LLEyeMotion::adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_s
|
|||
LLVector3 up;
|
||||
|
||||
eye_look_at = *targetPos;
|
||||
has_eye_target = TRUE;
|
||||
has_eye_target = true;
|
||||
F32 lookAtDistance = eye_look_at.normVec();
|
||||
|
||||
left.setVec(skyward % eye_look_at);
|
||||
|
|
@ -460,7 +460,7 @@ void LLEyeMotion::adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_s
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLEyeMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
//calculate jitter
|
||||
|
|
@ -508,7 +508,7 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
|
||||
if (rightEyeBlinkMorph == 1.f)
|
||||
{
|
||||
mEyesClosed = TRUE;
|
||||
mEyesClosed = true;
|
||||
mEyeBlinkTime = EYE_BLINK_CLOSE_TIME;
|
||||
mEyeBlinkTimer.reset();
|
||||
}
|
||||
|
|
@ -528,7 +528,7 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
|
||||
if (rightEyeBlinkMorph == 0.f)
|
||||
{
|
||||
mEyesClosed = FALSE;
|
||||
mEyesClosed = false;
|
||||
mEyeBlinkTime = EYE_BLINK_MIN_TIME + ll_frand(EYE_BLINK_MAX_TIME - EYE_BLINK_MIN_TIME);
|
||||
mEyeBlinkTimer.reset();
|
||||
}
|
||||
|
|
@ -540,7 +540,7 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
adjustEyeTarget(targetPos, *mLeftEyeState, *mRightEyeState);
|
||||
adjustEyeTarget(targetPos, *mAltLeftEyeState, *mAltRightEyeState);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
|
||||
// motions must report their total duration
|
||||
virtual F32 getDuration() { return 0.0; }
|
||||
|
|
@ -89,14 +89,14 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
|
@ -147,7 +147,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
|
||||
// motions must report their total duration
|
||||
virtual F32 getDuration() { return 0.0; }
|
||||
|
|
@ -172,16 +172,16 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
|
||||
void adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_state, LLJointState& right_eye_state);
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
|
@ -209,7 +209,7 @@ public:
|
|||
// eye blinking
|
||||
LLFrameTimer mEyeBlinkTimer;
|
||||
F32 mEyeBlinkTime;
|
||||
BOOL mEyesClosed;
|
||||
bool mEyesClosed;
|
||||
};
|
||||
|
||||
#endif // LL_LLHEADROTMOTION_H
|
||||
|
|
|
|||
|
|
@ -123,10 +123,10 @@ void LLJoint::init()
|
|||
{
|
||||
mName = "unnamed";
|
||||
mParent = NULL;
|
||||
mXform.setScaleChildOffset(TRUE);
|
||||
mXform.setScaleChildOffset(true);
|
||||
mXform.setScale(LLVector3(1.0f, 1.0f, 1.0f));
|
||||
mDirtyFlags = MATRIX_DIRTY | ROTATION_DIRTY | POSITION_DIRTY;
|
||||
mUpdateXform = TRUE;
|
||||
mUpdateXform = true;
|
||||
mSupport = SUPPORT_BASE;
|
||||
mEnd = LLVector3(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
|
@ -153,7 +153,7 @@ LLJoint::LLJoint(const std::string &name, LLJoint *parent) :
|
|||
mJointNum(-2)
|
||||
{
|
||||
init();
|
||||
mUpdateXform = FALSE;
|
||||
mUpdateXform = false;
|
||||
|
||||
setName(name);
|
||||
if (parent)
|
||||
|
|
@ -1017,7 +1017,7 @@ void LLJoint::updateWorldMatrix()
|
|||
if (mDirtyFlags & MATRIX_DIRTY)
|
||||
{
|
||||
sNumUpdates++;
|
||||
mXform.updateMatrix(FALSE);
|
||||
mXform.updateMatrix(false);
|
||||
mWorldMatrix.loadu(mXform.getWorldMatrix());
|
||||
mDirtyFlags = 0x0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,21 +65,21 @@ inline std::ostream& operator<<(std::ostream &aLHS, JointKey const &aRHS)
|
|||
}
|
||||
// </FS:ND>
|
||||
|
||||
const S32 LL_CHARACTER_MAX_JOINTS_PER_MESH = 15;
|
||||
constexpr S32 LL_CHARACTER_MAX_JOINTS_PER_MESH = 15;
|
||||
// Need to set this to count of animate-able joints,
|
||||
// currently = #bones + #collision_volumes + #attachments + 2,
|
||||
// rounded to next multiple of 4.
|
||||
const U32 LL_CHARACTER_MAX_ANIMATED_JOINTS = 216; // must be divisible by 4!
|
||||
const U32 LL_MAX_JOINTS_PER_MESH_OBJECT = 110;
|
||||
constexpr U32 LL_CHARACTER_MAX_ANIMATED_JOINTS = 216; // must be divisible by 4!
|
||||
constexpr U32 LL_MAX_JOINTS_PER_MESH_OBJECT = 110;
|
||||
|
||||
// These should be higher than the joint_num of any
|
||||
// other joint, to avoid conflicts in updateMotionsByType()
|
||||
const U32 LL_HAND_JOINT_NUM = (LL_CHARACTER_MAX_ANIMATED_JOINTS-1);
|
||||
const U32 LL_FACE_JOINT_NUM = (LL_CHARACTER_MAX_ANIMATED_JOINTS-2);
|
||||
const S32 LL_CHARACTER_MAX_PRIORITY = 7;
|
||||
const F32 LL_MAX_PELVIS_OFFSET = 5.f;
|
||||
constexpr U32 LL_HAND_JOINT_NUM = (LL_CHARACTER_MAX_ANIMATED_JOINTS-1);
|
||||
constexpr U32 LL_FACE_JOINT_NUM = (LL_CHARACTER_MAX_ANIMATED_JOINTS-2);
|
||||
constexpr S32 LL_CHARACTER_MAX_PRIORITY = 7;
|
||||
constexpr F32 LL_MAX_PELVIS_OFFSET = 5.f;
|
||||
|
||||
const F32 LL_JOINT_TRESHOLD_POS_OFFSET = 0.0001f; //0.1 mm
|
||||
constexpr F32 LL_JOINT_TRESHOLD_POS_OFFSET = 0.0001f; //0.1 mm
|
||||
|
||||
class LLVector3OverrideMap
|
||||
{
|
||||
|
|
@ -158,7 +158,7 @@ protected:
|
|||
|
||||
public:
|
||||
U32 mDirtyFlags;
|
||||
BOOL mUpdateXform;
|
||||
bool mUpdateXform;
|
||||
|
||||
// describes the skin binding pose
|
||||
LLVector3 mSkinOffset;
|
||||
|
|
@ -305,7 +305,7 @@ public:
|
|||
|
||||
void clampRotation(LLQuaternion old_rot, LLQuaternion new_rot);
|
||||
|
||||
virtual BOOL isAnimatable() const { return TRUE; }
|
||||
virtual bool isAnimatable() const { return true; }
|
||||
|
||||
void addAttachmentPosOverride( const LLVector3& pos, const LLUUID& mesh_id, const std::string& av_info, bool& active_override_changed );
|
||||
void removeAttachmentPosOverride( const LLUUID& mesh_id, const std::string& av_info, bool& active_override_changed );
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ LLJointSolverRP3::LLJointSolverRP3()
|
|||
mLengthAB = 1.0f;
|
||||
mLengthBC = 1.0f;
|
||||
mPoleVector.setVec( 1.0f, 0.0f, 0.0f );
|
||||
mbUseBAxis = FALSE;
|
||||
mbUseBAxis = false;
|
||||
mTwist = 0.0f;
|
||||
mFirstTime = TRUE;
|
||||
mFirstTime = true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ void LLJointSolverRP3::setBAxis( const LLVector3& bAxis )
|
|||
{
|
||||
mBAxis = bAxis;
|
||||
mBAxis.normVec();
|
||||
mbUseBAxis = TRUE;
|
||||
mbUseBAxis = true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -97,11 +97,11 @@ protected:
|
|||
|
||||
LLVector3 mPoleVector;
|
||||
LLVector3 mBAxis;
|
||||
BOOL mbUseBAxis;
|
||||
bool mbUseBAxis;
|
||||
|
||||
F32 mTwist;
|
||||
|
||||
BOOL mFirstTime;
|
||||
bool mFirstTime;
|
||||
LLMatrix4 mSavedJointAMat;
|
||||
LLMatrix4 mSavedInvPlaneMat;
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ public:
|
|||
// joint that this state is applied to
|
||||
LLJoint* getJoint() { return mJoint; }
|
||||
const LLJoint* getJoint() const { return mJoint; }
|
||||
BOOL setJoint( LLJoint *joint ) { mJoint = joint; return mJoint != NULL; }
|
||||
bool setJoint( LLJoint *joint ) { mJoint = joint; return mJoint != NULL; }
|
||||
|
||||
// transform type (bitwise flags can be combined)
|
||||
// Note that these are set automatically when various
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ LLMotion::LLMotionInitStatus LLKeyframeFallMotion::onInitialize(LLCharacter *cha
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeFallMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeFallMotion::onActivate()
|
||||
bool LLKeyframeFallMotion::onActivate()
|
||||
{
|
||||
LLVector3 ground_pos;
|
||||
LLVector3 ground_normal;
|
||||
|
|
@ -119,10 +119,10 @@ BOOL LLKeyframeFallMotion::onActivate()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeFallMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeFallMotion::onUpdate(F32 activeTime, U8* joint_mask)
|
||||
bool LLKeyframeFallMotion::onUpdate(F32 activeTime, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
BOOL result = LLKeyframeMotion::onUpdate(activeTime, joint_mask);
|
||||
bool result = LLKeyframeMotion::onUpdate(activeTime, joint_mask);
|
||||
F32 slerp_amt = clamp_rescale(activeTime / getDuration(), 0.5f, 0.75f, 0.f, 1.f);
|
||||
|
||||
if (mPelvisState.notNull())
|
||||
|
|
|
|||
|
|
@ -60,9 +60,9 @@ public:
|
|||
// animation callbacks to be implemented by subclasses
|
||||
//-------------------------------------------------------------------------
|
||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
virtual F32 getEaseInDuration();
|
||||
virtual BOOL onUpdate(F32 activeTime, U8* joint_mask);
|
||||
virtual bool onUpdate(F32 activeTime, U8* joint_mask);
|
||||
|
||||
protected:
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ static F32 MAX_CONSTRAINTS = 10;
|
|||
//-----------------------------------------------------------------------------
|
||||
LLKeyframeMotion::JointMotionList::JointMotionList()
|
||||
: mDuration(0.f),
|
||||
mLoop(FALSE),
|
||||
mLoop(false),
|
||||
mLoopInPoint(0.f),
|
||||
mLoopOutPoint(0.f),
|
||||
mEaseInDuration(0.f),
|
||||
|
|
@ -508,11 +508,12 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
|
|||
LLAssetType::AT_ANIMATION,
|
||||
onLoadComplete,
|
||||
(void*)character_id,
|
||||
FALSE);
|
||||
false);
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS("Animation") << "Attempted to fetch animation " << mName << " with null id for character " << mCharacter->getID() << LL_ENDL;
|
||||
LL_INFOS("Animation") << "Attempted to fetch animation '" << mName << "' with null id"
|
||||
<< " for character " << mCharacter->getID() << LL_ENDL;
|
||||
}
|
||||
|
||||
return STATUS_HOLD;
|
||||
|
|
@ -568,7 +569,7 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
|
|||
U8 *anim_data;
|
||||
S32 anim_file_size;
|
||||
|
||||
BOOL success = FALSE;
|
||||
bool success = false;
|
||||
LLFileSystem* anim_file = new LLFileSystem(mID, LLAssetType::AT_ANIMATION);
|
||||
if (!anim_file || !anim_file->getSize())
|
||||
{
|
||||
|
|
@ -623,7 +624,7 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
|
|||
//-----------------------------------------------------------------------------
|
||||
// setupPose()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotion::setupPose()
|
||||
bool LLKeyframeMotion::setupPose()
|
||||
{
|
||||
// add all valid joint states to the pose
|
||||
for (U32 jm=0; jm<mJointMotionList->getNumJointMotions(); jm++)
|
||||
|
|
@ -648,7 +649,7 @@ BOOL LLKeyframeMotion::setupPose()
|
|||
mPelvisp = mCharacter->getJoint("mPelvis");
|
||||
if (!mPelvisp)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -656,34 +657,33 @@ BOOL LLKeyframeMotion::setupPose()
|
|||
setLoopIn(mJointMotionList->mLoopInPoint);
|
||||
setLoopOut(mJointMotionList->mLoopOutPoint);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotion::onActivate()
|
||||
bool LLKeyframeMotion::onActivate()
|
||||
{
|
||||
// If the keyframe anim has an associated emote, trigger it.
|
||||
if( mJointMotionList->mEmoteName.length() > 0 )
|
||||
// If the keyframe anim has an associated emote, trigger it.
|
||||
if (mJointMotionList->mEmoteID.notNull())
|
||||
{
|
||||
LLUUID emote_anim_id = gAnimLibrary.stringToAnimState(mJointMotionList->mEmoteName);
|
||||
// don't start emote if already active to avoid recursion
|
||||
if (!mCharacter->isMotionActive(emote_anim_id))
|
||||
if (!mCharacter->isMotionActive(mJointMotionList->mEmoteID))
|
||||
{
|
||||
mCharacter->startMotion( emote_anim_id );
|
||||
mCharacter->startMotion(mJointMotionList->mEmoteID);
|
||||
}
|
||||
}
|
||||
|
||||
mLastLoopedTime = 0.f;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLKeyframeMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
// llassert(time >= 0.f); // This will fire
|
||||
|
|
@ -872,7 +872,7 @@ void LLKeyframeMotion::initializeConstraint(JointConstraint* constraint)
|
|||
void LLKeyframeMotion::activateConstraint(JointConstraint* constraint)
|
||||
{
|
||||
JointConstraintSharedData *shared_data = constraint->mSharedData;
|
||||
constraint->mActive = TRUE;
|
||||
constraint->mActive = true;
|
||||
S32 joint_num;
|
||||
|
||||
// grab ground position if we need to
|
||||
|
|
@ -904,17 +904,17 @@ void LLKeyframeMotion::deactivateConstraint(JointConstraint *constraintp)
|
|||
{
|
||||
if (constraintp->mSourceVolume)
|
||||
{
|
||||
constraintp->mSourceVolume->mUpdateXform = FALSE;
|
||||
constraintp->mSourceVolume->mUpdateXform = false;
|
||||
}
|
||||
|
||||
if (constraintp->mSharedData->mConstraintTargetType != CONSTRAINT_TARGET_TYPE_GROUND)
|
||||
{
|
||||
if (constraintp->mTargetVolume)
|
||||
{
|
||||
constraintp->mTargetVolume->mUpdateXform = FALSE;
|
||||
constraintp->mTargetVolume->mUpdateXform = false;
|
||||
}
|
||||
}
|
||||
constraintp->mActive = FALSE;
|
||||
constraintp->mActive = false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -1091,9 +1091,9 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
|
|||
// convert intermediate joint positions to world coordinates
|
||||
positions[joint_num] = ( constraint->mPositions[joint_num] * mPelvisp->getWorldRotation()) + mPelvisp->getWorldPosition();
|
||||
F32 time_constant = 1.f / clamp_rescale(constraint->mFixupDistanceRMS, 0.f, 0.5f, 0.2f, 8.f);
|
||||
// LL_INFOS() << "Interpolant " << LLSmoothInterpolation::getInterpolant(time_constant, FALSE) << " and fixup distance " << constraint->mFixupDistanceRMS << " on " << mCharacter->findCollisionVolume(shared_data->mSourceConstraintVolume)->getName() << LL_ENDL;
|
||||
positions[joint_num] = lerp(positions[joint_num], kinematic_position,
|
||||
LLSmoothInterpolation::getInterpolant(time_constant, FALSE));
|
||||
// LL_INFOS() << "Interpolant " << LLSmoothInterpolation::getInterpolant(time_constant, false) << " and fixup distance " << constraint->mFixupDistanceRMS << " on " << mCharacter->findCollisionVolume(shared_data->mSourceConstraintVolume)->getName() << LL_ENDL;
|
||||
positions[joint_num] = lerp(positions[joint_num], kinematic_position,
|
||||
LLSmoothInterpolation::getInterpolant(time_constant, false));
|
||||
}
|
||||
|
||||
S32 iteration_count;
|
||||
|
|
@ -1228,9 +1228,9 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
|
|||
// allow_invalid_joints should be true when handling existing content, to avoid breakage.
|
||||
// During upload, we should be more restrictive and reject such animations.
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, bool allow_invalid_joints)
|
||||
bool LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, bool allow_invalid_joints)
|
||||
{
|
||||
BOOL old_version = FALSE;
|
||||
bool old_version = false;
|
||||
std::unique_ptr<LLKeyframeMotion::JointMotionList> joint_motion_list(new LLKeyframeMotion::JointMotionList);
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1240,39 +1240,47 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
U16 version;
|
||||
U16 sub_version;
|
||||
|
||||
// Amimation identifier for log messages
|
||||
auto asset = [&]() -> std::string
|
||||
{
|
||||
return asset_id.asString() + ", char " + mCharacter->getID().asString();
|
||||
};
|
||||
|
||||
if (!dp.unpackU16(version, "version"))
|
||||
{
|
||||
LL_WARNS() << "can't read version number for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read version number"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackU16(sub_version, "sub_version"))
|
||||
{
|
||||
LL_WARNS() << "can't read sub version number for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read sub version number"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (version == 0 && sub_version == 1)
|
||||
{
|
||||
old_version = TRUE;
|
||||
old_version = true;
|
||||
}
|
||||
else if (version != KEYFRAME_MOTION_VERSION || sub_version != KEYFRAME_MOTION_SUBVERSION)
|
||||
{
|
||||
#if LL_RELEASE
|
||||
LL_WARNS() << "Bad animation version " << version << "." << sub_version
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
#else
|
||||
LL_ERRS() << "Bad animation version " << version << "." << sub_version
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!dp.unpackS32(temp_priority, "base_priority"))
|
||||
{
|
||||
LL_WARNS() << "can't read animation base_priority"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
joint_motion_list->mBasePriority = (LLJoint::JointPriority) temp_priority;
|
||||
|
||||
|
|
@ -1284,8 +1292,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
else if (joint_motion_list->mBasePriority < LLJoint::USE_MOTION_PRIORITY)
|
||||
{
|
||||
LL_WARNS() << "bad animation base_priority " << joint_motion_list->mBasePriority
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1294,16 +1302,16 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackF32(joint_motion_list->mDuration, "duration"))
|
||||
{
|
||||
LL_WARNS() << "can't read duration"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (joint_motion_list->mDuration > MAX_ANIM_DURATION ||
|
||||
!llfinite(joint_motion_list->mDuration))
|
||||
{
|
||||
LL_WARNS() << "invalid animation duration"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1311,16 +1319,34 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
//-------------------------------------------------------------------------
|
||||
if (!dp.unpackString(joint_motion_list->mEmoteName, "emote_name"))
|
||||
{
|
||||
LL_WARNS() << "can't read optional_emote_animation"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read emote_name"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(joint_motion_list->mEmoteName==mID.asString())
|
||||
if (!joint_motion_list->mEmoteName.empty())
|
||||
{
|
||||
LL_WARNS() << "Malformed animation mEmoteName==mID"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
if (joint_motion_list->mEmoteName == mID.asString())
|
||||
{
|
||||
LL_WARNS() << "Malformed animation mEmoteName==mID"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
// "Closed_Mouth" is a very popular emote name we should ignore
|
||||
if (joint_motion_list->mEmoteName == "Closed_Mouth")
|
||||
{
|
||||
joint_motion_list->mEmoteName.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
joint_motion_list->mEmoteID = gAnimLibrary.stringToAnimState(joint_motion_list->mEmoteName);
|
||||
if (joint_motion_list->mEmoteID.isNull())
|
||||
{
|
||||
LL_WARNS() << "unknown emote_name '" << joint_motion_list->mEmoteName << "'"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
joint_motion_list->mEmoteName.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1330,32 +1356,34 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
!llfinite(joint_motion_list->mLoopInPoint))
|
||||
{
|
||||
LL_WARNS() << "can't read loop point"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackF32(joint_motion_list->mLoopOutPoint, "loop_out_point") ||
|
||||
!llfinite(joint_motion_list->mLoopOutPoint))
|
||||
{
|
||||
LL_WARNS() << "can't read loop point"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackS32(joint_motion_list->mLoop, "loop"))
|
||||
S32 loop{ 0 };
|
||||
if (!dp.unpackS32(loop, "loop"))
|
||||
{
|
||||
LL_WARNS() << "can't read loop"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
joint_motion_list->mLoop = static_cast<bool>(loop);
|
||||
|
||||
//SL-17206 hack to alter Female_land loop setting, while current behavior won't be changed serverside
|
||||
LLUUID const female_land_anim("ca1baf4d-0a18-5a1f-0330-e4bd1e71f09e");
|
||||
LLUUID const formal_female_land_anim("6a9a173b-61fa-3ad5-01fa-a851cfc5f66a");
|
||||
if (female_land_anim == asset_id || formal_female_land_anim == asset_id)
|
||||
{
|
||||
LL_WARNS() << "Animation(" << asset_id << ") won't be looped." << LL_ENDL;
|
||||
joint_motion_list->mLoop = FALSE;
|
||||
LL_WARNS() << "Animation " << asset() << " won't be looped." << LL_ENDL;
|
||||
joint_motion_list->mLoop = false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1365,16 +1393,16 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
!llfinite(joint_motion_list->mEaseInDuration))
|
||||
{
|
||||
LL_WARNS() << "can't read easeIn"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackF32(joint_motion_list->mEaseOutDuration, "ease_out_duration") ||
|
||||
!llfinite(joint_motion_list->mEaseOutDuration))
|
||||
{
|
||||
LL_WARNS() << "can't read easeOut"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1384,15 +1412,15 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackU32(word, "hand_pose"))
|
||||
{
|
||||
LL_WARNS() << "can't read hand pose"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(word > LLHandMotion::NUM_HAND_POSES)
|
||||
if (word > LLHandMotion::NUM_HAND_POSES)
|
||||
{
|
||||
LL_WARNS() << "invalid LLHandMotion::eHandPose index: " << word
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
joint_motion_list->mHandPose = (LLHandMotion::eHandPose)word;
|
||||
|
|
@ -1401,26 +1429,26 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
// get number of joint motions
|
||||
//-------------------------------------------------------------------------
|
||||
U32 num_motions = 0;
|
||||
S32 rotation_dupplicates = 0;
|
||||
S32 position_dupplicates = 0;
|
||||
S32 rotation_duplicates = 0;
|
||||
S32 position_duplicates = 0;
|
||||
if (!dp.unpackU32(num_motions, "num_joints"))
|
||||
{
|
||||
LL_WARNS() << "can't read number of joints"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (num_motions == 0)
|
||||
{
|
||||
LL_WARNS() << "no joints"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
else if (num_motions > LL_CHARACTER_MAX_ANIMATED_JOINTS)
|
||||
{
|
||||
LL_WARNS() << "too many joints"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
joint_motion_list->mJointMotionArray.clear();
|
||||
|
|
@ -1432,7 +1460,7 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
// initialize joint motions
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
for(U32 i=0; i<num_motions; ++i)
|
||||
for (U32 i = 0; i < num_motions; ++i)
|
||||
{
|
||||
JointMotion* joint_motion = new JointMotion;
|
||||
joint_motion_list->mJointMotionArray.push_back(joint_motion);
|
||||
|
|
@ -1441,15 +1469,15 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackString(joint_name, "joint_name"))
|
||||
{
|
||||
LL_WARNS() << "can't read joint name"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (joint_name == "mScreen" || joint_name == "mRoot")
|
||||
{
|
||||
LL_WARNS() << "attempted to animate special " << joint_name << " joint"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
|
@ -1466,17 +1494,17 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
LL_WARNS() << "Joint will be omitted from animation: joint_num " << joint_num
|
||||
<< " is outside of legal range [0-"
|
||||
<< LL_CHARACTER_MAX_ANIMATED_JOINTS << ") for joint " << joint->getName()
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
joint = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "invalid joint name: " << joint_name
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
if (!allow_invalid_joints)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1494,15 +1522,15 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackS32(joint_priority, "joint_priority"))
|
||||
{
|
||||
LL_WARNS() << "can't read joint priority."
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (joint_priority < LLJoint::USE_MOTION_PRIORITY)
|
||||
{
|
||||
LL_WARNS() << "joint priority unknown - too low."
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
joint_motion->mPriority = (LLJoint::JointPriority)joint_priority;
|
||||
|
|
@ -1520,8 +1548,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackS32(joint_motion->mRotationCurve.mNumKeys, "num_rot_keys") || joint_motion->mRotationCurve.mNumKeys < 0)
|
||||
{
|
||||
LL_WARNS() << "can't read number of rotation keys"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
joint_motion->mRotationCurve.mInterpolationType = IT_LINEAR;
|
||||
|
|
@ -1546,8 +1574,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
!llfinite(time))
|
||||
{
|
||||
LL_WARNS() << "can't read rotation key (" << k << ")"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1556,8 +1584,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackU16(time_short, "time"))
|
||||
{
|
||||
LL_WARNS() << "can't read rotation key (" << k << ")"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
time = U16_to_F32(time_short, 0.f, joint_motion_list->mDuration);
|
||||
|
|
@ -1565,8 +1593,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (time < 0 || time > joint_motion_list->mDuration)
|
||||
{
|
||||
LL_WARNS() << "invalid frame time"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1579,13 +1607,15 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
{
|
||||
if (!dp.unpackVector3(rot_angles, "rot_angles"))
|
||||
{
|
||||
LL_WARNS() << "can't read rot_angles in rotation key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read rot_angles in rotation key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
if (!rot_angles.isFinite())
|
||||
{
|
||||
LL_WARNS() << "non-finite angle in rotation key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "non-finite angle in rotation key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLQuaternion::Order ro = StringToOrder("ZYX");
|
||||
|
|
@ -1595,18 +1625,21 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
{
|
||||
if (!dp.unpackU16(x, "rot_angle_x"))
|
||||
{
|
||||
LL_WARNS() << "can't read rot_angle_x in rotation key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read rot_angle_x in rotation key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
if (!dp.unpackU16(y, "rot_angle_y"))
|
||||
{
|
||||
LL_WARNS() << "can't read rot_angle_y in rotation key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read rot_angle_y in rotation key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
if (!dp.unpackU16(z, "rot_angle_z"))
|
||||
{
|
||||
LL_WARNS() << "can't read rot_angle_z in rotation key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read rot_angle_z in rotation key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLVector3 rot_vec;
|
||||
|
|
@ -1614,20 +1647,20 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
rot_vec.mV[VY] = U16_to_F32(y, -1.f, 1.f);
|
||||
rot_vec.mV[VZ] = U16_to_F32(z, -1.f, 1.f);
|
||||
|
||||
if(!rot_vec.isFinite())
|
||||
if (!rot_vec.isFinite())
|
||||
{
|
||||
LL_WARNS() << "non-finite angle in rotation key (" << k << ")"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
rot_key.mRotation.unpackFromVector3(rot_vec);
|
||||
}
|
||||
|
||||
if(!rot_key.mRotation.isFinite())
|
||||
if (!rot_key.mRotation.isFinite())
|
||||
{
|
||||
LL_WARNS() << "non-finite angle in rotation key (" << k << ")"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
rCurve->mKeys[time] = rot_key;
|
||||
|
|
@ -1635,8 +1668,10 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
|
||||
if (joint_motion->mRotationCurve.mNumKeys > joint_motion->mRotationCurve.mKeys.size())
|
||||
{
|
||||
rotation_dupplicates++;
|
||||
LL_INFOS() << "Motion: " << asset_id << " had dupplicate rotation keys that were removed" << LL_ENDL;
|
||||
rotation_duplicates++;
|
||||
LL_INFOS() << "Motion " << asset() << " had duplicated rotation keys that were removed: "
|
||||
<< joint_motion->mRotationCurve.mNumKeys << " > " << joint_motion->mRotationCurve.mKeys.size()
|
||||
<< " (" << rotation_duplicates << ")" << LL_ENDL;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
|
@ -1645,8 +1680,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackS32(joint_motion->mPositionCurve.mNumKeys, "num_pos_keys") || joint_motion->mPositionCurve.mNumKeys < 0)
|
||||
{
|
||||
LL_WARNS() << "can't read number of position keys"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
joint_motion->mPositionCurve.mInterpolationType = IT_LINEAR;
|
||||
|
|
@ -1659,7 +1694,7 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
// scan position curve keys
|
||||
//---------------------------------------------------------------------
|
||||
PositionCurve *pCurve = &joint_motion->mPositionCurve;
|
||||
BOOL is_pelvis = joint_motion->mJointName == "mPelvis";
|
||||
bool is_pelvis = joint_motion->mJointName == "mPelvis";
|
||||
for (S32 k = 0; k < joint_motion->mPositionCurve.mNumKeys; k++)
|
||||
{
|
||||
U16 time_short;
|
||||
|
|
@ -1671,8 +1706,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
!llfinite(pos_key.mTime))
|
||||
{
|
||||
LL_WARNS() << "can't read position key (" << k << ")"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1680,8 +1715,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackU16(time_short, "time"))
|
||||
{
|
||||
LL_WARNS() << "can't read position key (" << k << ")"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
pos_key.mTime = U16_to_F32(time_short, 0.f, joint_motion_list->mDuration);
|
||||
|
|
@ -1691,8 +1726,9 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
{
|
||||
if (!dp.unpackVector3(pos_key.mPosition, "pos"))
|
||||
{
|
||||
LL_WARNS() << "can't read pos in position key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read pos in position key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
//MAINT-6162
|
||||
|
|
@ -1707,18 +1743,21 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
|
||||
if (!dp.unpackU16(x, "pos_x"))
|
||||
{
|
||||
LL_WARNS() << "can't read pos_x in position key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read pos_x in position key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
if (!dp.unpackU16(y, "pos_y"))
|
||||
{
|
||||
LL_WARNS() << "can't read pos_y in position key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read pos_y in position key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
if (!dp.unpackU16(z, "pos_z"))
|
||||
{
|
||||
LL_WARNS() << "can't read pos_z in position key (" << k << ")" << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS() << "can't read pos_z in position key (" << k << ")"
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
pos_key.mPosition.mV[VX] = U16_to_F32(x, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
|
||||
|
|
@ -1726,11 +1765,11 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
pos_key.mPosition.mV[VZ] = U16_to_F32(z, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
|
||||
}
|
||||
|
||||
if(!pos_key.mPosition.isFinite())
|
||||
if (!pos_key.mPosition.isFinite())
|
||||
{
|
||||
LL_WARNS() << "non-finite position in key"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
pCurve->mKeys[pos_key.mTime] = pos_key;
|
||||
|
|
@ -1743,20 +1782,25 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
|
||||
if (joint_motion->mPositionCurve.mNumKeys > joint_motion->mPositionCurve.mKeys.size())
|
||||
{
|
||||
position_dupplicates++;
|
||||
position_duplicates++;
|
||||
LL_INFOS() << "Motion " << asset() << " had duplicated position keys that were removed: "
|
||||
<< joint_motion->mPositionCurve.mNumKeys << " > " << joint_motion->mPositionCurve.mKeys.size()
|
||||
<< " (" << position_duplicates << ")" << LL_ENDL;
|
||||
}
|
||||
|
||||
joint_motion->mUsage = joint_state->getUsage();
|
||||
}
|
||||
|
||||
if (rotation_dupplicates > 0)
|
||||
if (rotation_duplicates > 0)
|
||||
{
|
||||
LL_INFOS() << "Motion: " << asset_id << " had " << rotation_dupplicates << " dupplicate rotation keys that were removed" << LL_ENDL;
|
||||
LL_INFOS() << "Motion " << asset() << " had " << rotation_duplicates
|
||||
<< " duplicated rotation keys that were removed" << LL_ENDL;
|
||||
}
|
||||
|
||||
if (position_dupplicates > 0)
|
||||
if (position_duplicates > 0)
|
||||
{
|
||||
LL_INFOS() << "Motion: " << asset_id << " had " << position_dupplicates << " dupplicate position keys that were removed" << LL_ENDL;
|
||||
LL_INFOS() << "Motion " << asset() << " had " << position_duplicates
|
||||
<< " duplicated position keys that were removed" << LL_ENDL;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -1766,14 +1810,14 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackS32(num_constraints, "num_constraints"))
|
||||
{
|
||||
LL_WARNS() << "can't read number of constraints"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (num_constraints > MAX_CONSTRAINTS || num_constraints < 0)
|
||||
{
|
||||
LL_WARNS() << "Bad number of constraints... ignoring: " << num_constraints
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1790,30 +1834,30 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackU8(byte, "chain_length"))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint chain length"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
constraintp->mChainLength = (S32) byte;
|
||||
|
||||
if((U32)constraintp->mChainLength > joint_motion_list->getNumJointMotions())
|
||||
{
|
||||
LL_WARNS() << "invalid constraint chain length"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackU8(byte, "constraint_type"))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint type"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( byte >= NUM_CONSTRAINT_TYPES )
|
||||
{
|
||||
LL_WARNS() << "invalid constraint type"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
constraintp->mConstraintType = (EConstraintType)byte;
|
||||
|
||||
|
|
@ -1822,8 +1866,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (!dp.unpackBinaryDataFixed(bin_data, BIN_DATA_LENGTH, "source_volume"))
|
||||
{
|
||||
LL_WARNS() << "can't read source volume name"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
bin_data[BIN_DATA_LENGTH] = 0; // Ensure null termination
|
||||
|
|
@ -1832,29 +1876,29 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (constraintp->mSourceConstraintVolume == -1)
|
||||
{
|
||||
LL_WARNS() << "not a valid source constraint volume " << str
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackVector3(constraintp->mSourceConstraintOffset, "source_offset"))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint source offset"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !(constraintp->mSourceConstraintOffset.isFinite()) )
|
||||
{
|
||||
LL_WARNS() << "non-finite constraint source offset"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackBinaryDataFixed(bin_data, BIN_DATA_LENGTH, "target_volume"))
|
||||
{
|
||||
LL_WARNS() << "can't read target volume name"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
bin_data[BIN_DATA_LENGTH] = 0; // Ensure null termination
|
||||
|
|
@ -1871,78 +1915,78 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (constraintp->mTargetConstraintVolume == -1)
|
||||
{
|
||||
LL_WARNS() << "not a valid target constraint volume " << str
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!dp.unpackVector3(constraintp->mTargetConstraintOffset, "target_offset"))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint target offset"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !(constraintp->mTargetConstraintOffset.isFinite()) )
|
||||
{
|
||||
LL_WARNS() << "non-finite constraint target offset"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackVector3(constraintp->mTargetConstraintDir, "target_dir"))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint target direction"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !(constraintp->mTargetConstraintDir.isFinite()) )
|
||||
{
|
||||
LL_WARNS() << "non-finite constraint target direction"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!constraintp->mTargetConstraintDir.isExactlyZero())
|
||||
{
|
||||
constraintp->mUseTargetOffset = TRUE;
|
||||
constraintp->mUseTargetOffset = true;
|
||||
// constraintp->mTargetConstraintDir *= constraintp->mSourceConstraintOffset.magVec();
|
||||
}
|
||||
|
||||
if (!dp.unpackF32(constraintp->mEaseInStartTime, "ease_in_start") || !llfinite(constraintp->mEaseInStartTime))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint ease in start time"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackF32(constraintp->mEaseInStopTime, "ease_in_stop") || !llfinite(constraintp->mEaseInStopTime))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint ease in stop time"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackF32(constraintp->mEaseOutStartTime, "ease_out_start") || !llfinite(constraintp->mEaseOutStartTime))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint ease out start time"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!dp.unpackF32(constraintp->mEaseOutStopTime, "ease_out_stop") || !llfinite(constraintp->mEaseOutStopTime))
|
||||
{
|
||||
LL_WARNS() << "can't read constraint ease out stop time"
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLJoint* joint = mCharacter->findCollisionVolume(constraintp->mSourceConstraintVolume);
|
||||
// get joint to which this collision volume is attached
|
||||
if (!joint)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
constraintp->mJointStateIndices = new S32[constraintp->mChainLength + 1]; // note: mChainLength is size-limited - comes from a byte
|
||||
|
|
@ -1954,8 +1998,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
{
|
||||
LL_WARNS() << "Joint with no parent: " << joint->getName()
|
||||
<< " Emote: " << joint_motion_list->mEmoteName
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
joint = parent;
|
||||
constraintp->mJointStateIndices[i] = -1;
|
||||
|
|
@ -1966,10 +2010,10 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if ( !constraint_joint )
|
||||
{
|
||||
LL_WARNS() << "Invalid joint " << j
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if(constraint_joint == joint)
|
||||
{
|
||||
constraintp->mJointStateIndices[i] = (S32)j;
|
||||
|
|
@ -1979,8 +2023,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
if (constraintp->mJointStateIndices[i] < 0 )
|
||||
{
|
||||
LL_WARNS() << "No joint index for constraint " << i
|
||||
<< " for animation " << asset_id << LL_ENDL;
|
||||
return FALSE;
|
||||
<< " for animation " << asset() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1995,15 +2039,15 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp, const LLUUID& asset_id, boo
|
|||
|
||||
setupPose();
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// serialize()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const
|
||||
bool LLKeyframeMotion::serialize(LLDataPacker& dp) const
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
bool success = true;
|
||||
|
||||
LL_DEBUGS("BVH") << "serializing" << LL_ENDL;
|
||||
|
||||
|
|
@ -2244,10 +2288,12 @@ void LLKeyframeMotion::setEmote(const LLUUID& emote_id)
|
|||
if (emote_name)
|
||||
{
|
||||
mJointMotionList->mEmoteName = emote_name;
|
||||
mJointMotionList->mEmoteID = emote_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
mJointMotionList->mEmoteName = "";
|
||||
mJointMotionList->mEmoteName.clear();
|
||||
mJointMotionList->mEmoteID.setNull();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2286,7 +2332,7 @@ void LLKeyframeMotion::flushKeyframeCache()
|
|||
//-----------------------------------------------------------------------------
|
||||
// setLoop()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLKeyframeMotion::setLoop(BOOL loop)
|
||||
void LLKeyframeMotion::setLoop(bool loop)
|
||||
{
|
||||
if (mJointMotionList)
|
||||
{
|
||||
|
|
@ -2534,7 +2580,7 @@ LLKeyframeMotion::JointConstraint::JointConstraint(JointConstraintSharedData* sh
|
|||
{
|
||||
mWeight = 0.f;
|
||||
mTotalLength = 0.f;
|
||||
mActive = FALSE;
|
||||
mActive = false;
|
||||
mSourceVolume = NULL;
|
||||
mTargetVolume = NULL;
|
||||
mFixupDistanceRMS = 0.f;
|
||||
|
|
|
|||
|
|
@ -86,9 +86,9 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() {
|
||||
if (mJointMotionList) return mJointMotionList->mLoop;
|
||||
else return FALSE;
|
||||
virtual bool getLoop() {
|
||||
if (mJointMotionList) return mJointMotionList->mLoop;
|
||||
else return false;
|
||||
}
|
||||
|
||||
// motions must report their total duration
|
||||
|
|
@ -135,14 +135,14 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
|
@ -155,14 +155,14 @@ public:
|
|||
|
||||
public:
|
||||
U32 getFileSize();
|
||||
BOOL serialize(LLDataPacker& dp) const;
|
||||
BOOL deserialize(LLDataPacker& dp, const LLUUID& asset_id, bool allow_invalid_joints = true);
|
||||
BOOL isLoaded() { return mJointMotionList != NULL; }
|
||||
bool serialize(LLDataPacker& dp) const;
|
||||
bool deserialize(LLDataPacker& dp, const LLUUID& asset_id, bool allow_invalid_joints = true);
|
||||
bool isLoaded() { return mJointMotionList != NULL; }
|
||||
bool dumpToFile(const std::string& name);
|
||||
|
||||
|
||||
// setters for modifying a keyframe animation
|
||||
void setLoop(BOOL loop);
|
||||
void setLoop(bool loop);
|
||||
|
||||
F32 getLoopIn() {
|
||||
return (mJointMotionList) ? mJointMotionList->mLoopInPoint : 0.f;
|
||||
|
|
@ -211,7 +211,7 @@ protected:
|
|||
mEaseInStopTime(0.f),
|
||||
mEaseOutStartTime(0.f),
|
||||
mEaseOutStopTime(0.f),
|
||||
mUseTargetOffset(FALSE),
|
||||
mUseTargetOffset(false),
|
||||
mConstraintType(CONSTRAINT_TYPE_POINT),
|
||||
mConstraintTargetType(CONSTRAINT_TARGET_TYPE_BODY),
|
||||
mSourceConstraintVolume(0),
|
||||
|
|
@ -231,7 +231,7 @@ protected:
|
|||
F32 mEaseInStopTime;
|
||||
F32 mEaseOutStartTime;
|
||||
F32 mEaseOutStopTime;
|
||||
BOOL mUseTargetOffset;
|
||||
bool mUseTargetOffset;
|
||||
EConstraintType mConstraintType;
|
||||
EConstraintTargetType mConstraintTargetType;
|
||||
};
|
||||
|
|
@ -251,7 +251,7 @@ protected:
|
|||
LLVector3 mPositions[MAX_CHAIN_LENGTH];
|
||||
F32 mJointLengths[MAX_CHAIN_LENGTH];
|
||||
F32 mJointLengthFractions[MAX_CHAIN_LENGTH];
|
||||
BOOL mActive;
|
||||
bool mActive;
|
||||
LLVector3d mGroundPos;
|
||||
LLVector3 mGroundNorm;
|
||||
LLJoint* mSourceVolume;
|
||||
|
|
@ -271,7 +271,7 @@ protected:
|
|||
|
||||
void applyConstraint(JointConstraint* constraintp, F32 time, U8* joint_mask);
|
||||
|
||||
BOOL setupPose();
|
||||
bool setupPose();
|
||||
|
||||
public:
|
||||
enum AssetStatus { ASSET_LOADED, ASSET_FETCHED, ASSET_NEEDS_FETCH, ASSET_FETCH_FAILED, ASSET_UNDEFINED };
|
||||
|
|
@ -398,7 +398,7 @@ public:
|
|||
public:
|
||||
std::vector<JointMotion*> mJointMotionArray;
|
||||
F32 mDuration;
|
||||
BOOL mLoop;
|
||||
bool mLoop;
|
||||
F32 mLoopInPoint;
|
||||
F32 mLoopOutPoint;
|
||||
F32 mEaseInDuration;
|
||||
|
|
@ -412,7 +412,9 @@ public:
|
|||
// mEmoteName is a facial motion, but it's necessary to appear here so that it's cached.
|
||||
// TODO: LLKeyframeDataCache::getKeyframeData should probably return a class containing
|
||||
// JointMotionList and mEmoteName, see LLKeyframeMotion::onInitialize.
|
||||
std::string mEmoteName;
|
||||
std::string mEmoteName;
|
||||
LLUUID mEmoteID;
|
||||
|
||||
public:
|
||||
JointMotionList();
|
||||
~JointMotionList();
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ LLMotion::LLMotionInitStatus LLKeyframeMotionParam::onInitialize(LLCharacter *ch
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeMotionParam::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotionParam::onActivate()
|
||||
bool LLKeyframeMotionParam::onActivate()
|
||||
{
|
||||
for (motion_map_t::value_type& motion_pair : mParameterizedMotions)
|
||||
{
|
||||
|
|
@ -146,14 +146,14 @@ BOOL LLKeyframeMotionParam::onActivate()
|
|||
paramMotion.mMotion->activate(mActivationTimestamp);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeMotionParam::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
F32 weightFactor = 1.f / (F32)mParameterizedMotions.size();
|
||||
|
|
@ -265,7 +265,7 @@ BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask)
|
|||
|
||||
LL_INFOS() << "Param Motion weight " << mPoseBlender.getBlendedPose()->getWeight() << LL_ENDL;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -286,13 +286,13 @@ void LLKeyframeMotionParam::onDeactivate()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeMotionParam::addKeyframeMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotionParam::addKeyframeMotion(char *name, const LLUUID &id, char *param, F32 value)
|
||||
bool LLKeyframeMotionParam::addKeyframeMotion(char *name, const LLUUID &id, char *param, F32 value)
|
||||
{
|
||||
LLMotion *newMotion = mCharacter->createMotion( id );
|
||||
|
||||
if (!newMotion)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
newMotion->setName(name);
|
||||
|
|
@ -300,7 +300,7 @@ BOOL LLKeyframeMotionParam::addKeyframeMotion(char *name, const LLUUID &id, char
|
|||
// now add motion to this list
|
||||
mParameterizedMotions[param].insert(ParameterizedMotion(newMotion, value));
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -325,7 +325,7 @@ void LLKeyframeMotionParam::setDefaultKeyframeMotion(char *name)
|
|||
//-----------------------------------------------------------------------------
|
||||
// loadMotions()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeMotionParam::loadMotions()
|
||||
bool LLKeyframeMotionParam::loadMotions()
|
||||
{
|
||||
//-------------------------------------------------------------------------
|
||||
// Load named file by concatenating the character prefix with the motion name.
|
||||
|
|
@ -352,7 +352,7 @@ BOOL LLKeyframeMotionParam::loadMotions()
|
|||
if (!fp || fileSize == 0)
|
||||
{
|
||||
LL_INFOS() << "ERROR: can't open: " << path << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// allocate a text buffer
|
||||
|
|
@ -391,7 +391,7 @@ BOOL LLKeyframeMotionParam::loadMotions()
|
|||
if ( error )
|
||||
{
|
||||
LL_INFOS() << "ERROR: error while reading from " << path << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LL_INFOS() << "Loading parametric keyframe data for: " << getName() << LL_ENDL;
|
||||
|
|
@ -409,7 +409,7 @@ BOOL LLKeyframeMotionParam::loadMotions()
|
|||
//-------------------------------------------------------------------------
|
||||
// get priority
|
||||
//-------------------------------------------------------------------------
|
||||
BOOL isFirstMotion = TRUE;
|
||||
bool isFirstMotion = true;
|
||||
num = sscanf(p, "%79s %79s %f", strA, strB, &floatA); /* Flawfinder: ignore */
|
||||
|
||||
while(1)
|
||||
|
|
@ -418,13 +418,13 @@ BOOL LLKeyframeMotionParam::loadMotions()
|
|||
if ((num != 3))
|
||||
{
|
||||
LL_INFOS() << "WARNING: can't read parametric motion" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
addKeyframeMotion(strA, gAnimLibrary.stringToAnimState(std::string(strA)), strB, floatA);
|
||||
if (isFirstMotion)
|
||||
{
|
||||
isFirstMotion = FALSE;
|
||||
isFirstMotion = false;
|
||||
setDefaultKeyframeMotion(strA);
|
||||
}
|
||||
|
||||
|
|
@ -438,7 +438,7 @@ BOOL LLKeyframeMotionParam::loadMotions()
|
|||
num = sscanf(p, "%79s %79s %f", strA, strB, &floatA); /* Flawfinder: ignore */
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// End
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() {
|
||||
return TRUE;
|
||||
virtual bool getLoop() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// motions must report their total duration
|
||||
|
|
@ -102,14 +102,14 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
|
@ -128,12 +128,12 @@ protected:
|
|||
};
|
||||
|
||||
// add a motion and associated parameter triplet
|
||||
BOOL addKeyframeMotion(char *name, const LLUUID &id, char *param, F32 value);
|
||||
bool addKeyframeMotion(char *name, const LLUUID &id, char *param, F32 value);
|
||||
|
||||
// set default motion for LOD and retrieving blend constants
|
||||
void setDefaultKeyframeMotion(char *);
|
||||
|
||||
BOOL loadMotions();
|
||||
bool loadMotions();
|
||||
|
||||
protected:
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ const F32 POSITION_THRESHOLD = 0.1f;
|
|||
//-----------------------------------------------------------------------------
|
||||
LLKeyframeStandMotion::LLKeyframeStandMotion(const LLUUID &id) : LLKeyframeMotion(id)
|
||||
{
|
||||
mFlipFeet = FALSE;
|
||||
mFlipFeet = false;
|
||||
mCharacter = NULL;
|
||||
|
||||
// create kinematic hierarchy
|
||||
|
|
@ -67,7 +67,7 @@ LLKeyframeStandMotion::LLKeyframeStandMotion(const LLUUID &id) : LLKeyframeMotio
|
|||
mKneeRightState = NULL;
|
||||
mAnkleRightState = NULL;
|
||||
|
||||
mTrackAnkles = TRUE;
|
||||
mTrackAnkles = true;
|
||||
|
||||
mFrameNum = 0;
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@ LLMotion::LLMotionInitStatus LLKeyframeStandMotion::onInitialize(LLCharacter *ch
|
|||
// save character pointer for later use
|
||||
mCharacter = character;
|
||||
|
||||
mFlipFeet = FALSE;
|
||||
mFlipFeet = false;
|
||||
|
||||
// load keyframe data, setup pose and joint states
|
||||
LLMotion::LLMotionInitStatus status = LLKeyframeMotion::onInitialize(character);
|
||||
|
|
@ -129,7 +129,7 @@ LLMotion::LLMotionInitStatus LLKeyframeStandMotion::onInitialize(LLCharacter *ch
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeStandMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeStandMotion::onActivate()
|
||||
bool LLKeyframeStandMotion::onActivate()
|
||||
{
|
||||
//-------------------------------------------------------------------------
|
||||
// setup the IK solvers
|
||||
|
|
@ -158,15 +158,15 @@ void LLKeyframeStandMotion::onDeactivate()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeStandMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeStandMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLKeyframeStandMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
//-------------------------------------------------------------------------
|
||||
// let the base class update the cycle
|
||||
//-------------------------------------------------------------------------
|
||||
BOOL status = LLKeyframeMotion::onUpdate(time, joint_mask);
|
||||
bool status = LLKeyframeMotion::onUpdate(time, joint_mask);
|
||||
if (!status)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLVector3 root_world_pos = mPelvisState->getJoint()->getParent()->getWorldPosition();
|
||||
|
|
@ -174,7 +174,7 @@ BOOL LLKeyframeStandMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
// have we received a valid world position for this avatar?
|
||||
if (root_world_pos.isExactlyZero())
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -185,16 +185,16 @@ BOOL LLKeyframeStandMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
{
|
||||
mLastGoodPelvisRotation = mPelvisState->getJoint()->getWorldRotation();
|
||||
mLastGoodPelvisRotation.normalize();
|
||||
mTrackAnkles = TRUE;
|
||||
mTrackAnkles = true;
|
||||
}
|
||||
else if ((mCharacter->getCharacterPosition() - mLastGoodPosition).magVecSquared() > POSITION_THRESHOLD)
|
||||
{
|
||||
mLastGoodPosition = mCharacter->getCharacterPosition();
|
||||
mTrackAnkles = TRUE;
|
||||
mTrackAnkles = true;
|
||||
}
|
||||
else if (mPose.getWeight() < 1.f)
|
||||
{
|
||||
mTrackAnkles = TRUE;
|
||||
mTrackAnkles = true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -255,7 +255,7 @@ BOOL LLKeyframeStandMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
else if (mFrameNum < 2)
|
||||
{
|
||||
mFrameNum++;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
mFrameNum++;
|
||||
|
|
@ -336,7 +336,7 @@ BOOL LLKeyframeStandMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
//LL_INFOS() << "Stand drift amount " << (mCharacter->getCharacterPosition() - mLastGoodPosition).magVec() << LL_ENDL;
|
||||
|
||||
// LL_INFOS() << "DEBUG: " << speed << " : " << mTrackAnkles << LL_ENDL;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// End
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ public:
|
|||
// animation callbacks to be implemented by subclasses
|
||||
//-------------------------------------------------------------------------
|
||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
void onDeactivate();
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
public:
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -85,7 +85,7 @@ public:
|
|||
|
||||
LLCharacter *mCharacter;
|
||||
|
||||
BOOL mFlipFeet;
|
||||
bool mFlipFeet;
|
||||
|
||||
LLPointer<LLJointState> mPelvisState;
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ public:
|
|||
|
||||
LLQuaternion mLastGoodPelvisRotation;
|
||||
LLVector3 mLastGoodPosition;
|
||||
BOOL mTrackAnkles;
|
||||
bool mTrackAnkles;
|
||||
|
||||
S32 mFrameNum;
|
||||
} LL_ALIGN_POSTFIX(16);
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ LLMotion::LLMotionInitStatus LLKeyframeWalkMotion::onInitialize(LLCharacter *cha
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeWalkMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeWalkMotion::onActivate()
|
||||
bool LLKeyframeWalkMotion::onActivate()
|
||||
{
|
||||
mRealTimeLast = 0.0f;
|
||||
mAdjTimeLast = 0.0f;
|
||||
|
|
@ -103,7 +103,7 @@ void LLKeyframeWalkMotion::onDeactivate()
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLKeyframeWalkMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLKeyframeWalkMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLKeyframeWalkMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
// compute time since last update
|
||||
|
|
@ -174,7 +174,7 @@ LLMotion::LLMotionInitStatus LLWalkAdjustMotion::onInitialize(LLCharacter *chara
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLWalkAdjustMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLWalkAdjustMotion::onActivate()
|
||||
bool LLWalkAdjustMotion::onActivate()
|
||||
{
|
||||
mAnimSpeed = 0.f;
|
||||
mAdjustedSpeed = 0.f;
|
||||
|
|
@ -191,13 +191,13 @@ BOOL LLWalkAdjustMotion::onActivate()
|
|||
F32 rightAnkleOffset = (mRightAnkleJoint->getWorldPosition() - mCharacter->getCharacterPosition()).magVec();
|
||||
mAnkleOffset = llmax(leftAnkleOffset, rightAnkleOffset);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLWalkAdjustMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
// delta_time is guaranteed to be non zero
|
||||
|
|
@ -318,7 +318,7 @@ BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
// need to update *some* joint to keep this animation active
|
||||
mPelvisState->setPosition(mPelvisOffset);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -365,18 +365,18 @@ LLMotion::LLMotionInitStatus LLFlyAdjustMotion::onInitialize(LLCharacter *charac
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLFlyAdjustMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLFlyAdjustMotion::onActivate()
|
||||
bool LLFlyAdjustMotion::onActivate()
|
||||
{
|
||||
mPelvisState->setPosition(LLVector3::zero);
|
||||
mPelvisState->setRotation(LLQuaternion::DEFAULT);
|
||||
mRoll = 0.f;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLFlyAdjustMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLFlyAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLFlyAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
LLVector3 ang_vel = mCharacter->getCharacterAngularVelocity() * mCharacter->getTimeDilation();
|
||||
|
|
@ -391,6 +391,6 @@ BOOL LLFlyAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
LLQuaternion roll(mRoll, LLVector3(0.f, 0.f, 1.f));
|
||||
mPelvisState->setRotation(roll);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,9 +65,9 @@ public:
|
|||
// animation callbacks to be implemented by subclasses
|
||||
//-------------------------------------------------------------------------
|
||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
virtual void onDeactivate();
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
public:
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -100,11 +100,11 @@ public:
|
|||
// animation callbacks to be implemented by subclasses
|
||||
//-------------------------------------------------------------------------
|
||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
virtual void onDeactivate();
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
virtual LLJoint::JointPriority getPriority(){return LLJoint::HIGH_PRIORITY;}
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
virtual F32 getDuration() { return 0.f; }
|
||||
virtual F32 getEaseInDuration() { return 0.f; }
|
||||
virtual F32 getEaseOutDuration() { return 0.f; }
|
||||
|
|
@ -150,11 +150,11 @@ public:
|
|||
// animation callbacks to be implemented by subclasses
|
||||
//-------------------------------------------------------------------------
|
||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
virtual void onDeactivate() {};
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
virtual LLJoint::JointPriority getPriority(){return LLJoint::HIGHER_PRIORITY;}
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
virtual F32 getDuration() { return 0.f; }
|
||||
virtual F32 getEaseInDuration() { return 0.f; }
|
||||
virtual F32 getEaseOutDuration() { return 0.f; }
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@
|
|||
// Class Constructor
|
||||
//-----------------------------------------------------------------------------
|
||||
LLMotion::LLMotion( const LLUUID &id ) :
|
||||
mStopped(TRUE),
|
||||
mActive(FALSE),
|
||||
mStopped(true),
|
||||
mActive(false),
|
||||
mID(id),
|
||||
mActivationTimestamp(0.f),
|
||||
mStopTimestamp(0.f),
|
||||
|
|
@ -132,10 +132,10 @@ void LLMotion::setDeactivateCallback( void (*cb)(void *), void* userdata )
|
|||
void LLMotion::setStopTime(F32 time)
|
||||
{
|
||||
mStopTimestamp = time;
|
||||
mStopped = TRUE;
|
||||
mStopped = true;
|
||||
}
|
||||
|
||||
BOOL LLMotion::isBlending()
|
||||
bool LLMotion::isBlending()
|
||||
{
|
||||
return mPose.getWeight() < 1.f;
|
||||
}
|
||||
|
|
@ -146,8 +146,8 @@ BOOL LLMotion::isBlending()
|
|||
void LLMotion::activate(F32 time)
|
||||
{
|
||||
mActivationTimestamp = time;
|
||||
mStopped = FALSE;
|
||||
mActive = TRUE;
|
||||
mStopped = false;
|
||||
mActive = true;
|
||||
onActivate();
|
||||
}
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ void LLMotion::activate(F32 time)
|
|||
//-----------------------------------------------------------------------------
|
||||
void LLMotion::deactivate()
|
||||
{
|
||||
mActive = FALSE;
|
||||
mActive = false;
|
||||
mPose.setWeight(0.f);
|
||||
|
||||
if (mDeactivateCallback)
|
||||
|
|
@ -169,9 +169,9 @@ void LLMotion::deactivate()
|
|||
onDeactivate();
|
||||
}
|
||||
|
||||
BOOL LLMotion::canDeprecate()
|
||||
bool LLMotion::canDeprecate()
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// End
|
||||
|
|
|
|||
|
|
@ -91,21 +91,21 @@ public:
|
|||
|
||||
virtual void setStopTime(F32 time);
|
||||
|
||||
BOOL isStopped() const { return mStopped; }
|
||||
bool isStopped() const { return mStopped; }
|
||||
|
||||
void setStopped(BOOL stopped) { mStopped = stopped; }
|
||||
void setStopped(bool stopped) { mStopped = stopped; }
|
||||
|
||||
BOOL isBlending();
|
||||
bool isBlending();
|
||||
|
||||
// Activation functions.
|
||||
// It is OK for other classes to activate a motion,
|
||||
// but only the controller can deactivate it.
|
||||
// Thus, if mActive == TRUE, the motion *may* be on the controllers active list,
|
||||
// but if mActive == FALSE, the motion is gauranteed not to be on the active list.
|
||||
// Thus, if mActive == true, the motion *may* be on the controllers active list,
|
||||
// but if mActive == false, the motion is gauranteed not to be on the active list.
|
||||
protected:
|
||||
// Used by LLMotionController only
|
||||
void deactivate();
|
||||
BOOL isActive() { return mActive; }
|
||||
bool isActive() { return mActive; }
|
||||
public:
|
||||
void activate(F32 time);
|
||||
|
||||
|
|
@ -115,7 +115,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() = 0;
|
||||
virtual bool getLoop() = 0;
|
||||
|
||||
// motions must report their total duration
|
||||
virtual F32 getDuration() = 0;
|
||||
|
|
@ -144,33 +144,33 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character) = 0;
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 activeTime, U8* joint_mask) = 0;
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
virtual bool onUpdate(F32 activeTime, U8* joint_mask) = 0;
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate() = 0;
|
||||
|
||||
// can we crossfade this motion with a new instance when restarted?
|
||||
// should ultimately always be TRUE, but lack of emote blending, etc
|
||||
// should ultimately always be true, but lack of emote blending, etc
|
||||
// requires this
|
||||
virtual BOOL canDeprecate();
|
||||
virtual bool canDeprecate();
|
||||
|
||||
// optional callback routine called when animation deactivated.
|
||||
void setDeactivateCallback( void (*cb)(void *), void* userdata );
|
||||
|
||||
protected:
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate() = 0;
|
||||
virtual bool onActivate() = 0;
|
||||
|
||||
void addJointState(const LLPointer<LLJointState>& jointState);
|
||||
|
||||
protected:
|
||||
LLPose mPose;
|
||||
BOOL mStopped; // motion has been stopped;
|
||||
BOOL mActive; // motion is on active list (can be stopped or not stopped)
|
||||
bool mStopped; // motion has been stopped;
|
||||
bool mActive; // motion is on active list (can be stopped or not stopped)
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// these are set implicitly by the motion controller and
|
||||
|
|
@ -199,7 +199,7 @@ public:
|
|||
LLTestMotion(const LLUUID &id) : LLMotion(id){}
|
||||
~LLTestMotion() {}
|
||||
static LLMotion *create(const LLUUID& id) { return new LLTestMotion(id); }
|
||||
BOOL getLoop() { return FALSE; }
|
||||
bool getLoop() { return false; }
|
||||
F32 getDuration() { return 0.0f; }
|
||||
F32 getEaseInDuration() { return 0.0f; }
|
||||
F32 getEaseOutDuration() { return 0.0f; }
|
||||
|
|
@ -208,8 +208,8 @@ public:
|
|||
F32 getMinPixelArea() { return 0.f; }
|
||||
|
||||
LLMotionInitStatus onInitialize(LLCharacter*) { LL_INFOS() << "LLTestMotion::onInitialize()" << LL_ENDL; return STATUS_SUCCESS; }
|
||||
BOOL onActivate() { LL_INFOS() << "LLTestMotion::onActivate()" << LL_ENDL; return TRUE; }
|
||||
BOOL onUpdate(F32 time, U8* joint_mask) { LL_INFOS() << "LLTestMotion::onUpdate(" << time << ")" << LL_ENDL; return TRUE; }
|
||||
bool onActivate() { LL_INFOS() << "LLTestMotion::onActivate()" << LL_ENDL; return true; }
|
||||
bool onUpdate(F32 time, U8* joint_mask) { LL_INFOS() << "LLTestMotion::onUpdate(" << time << ")" << LL_ENDL; return true; }
|
||||
void onDeactivate() { LL_INFOS() << "LLTestMotion::onDeactivate()" << LL_ENDL; }
|
||||
};
|
||||
|
||||
|
|
@ -225,7 +225,7 @@ public:
|
|||
static LLMotion *create(const LLUUID &id) { return new LLNullMotion(id); }
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
/*virtual*/ BOOL getLoop() { return TRUE; }
|
||||
/*virtual*/ bool getLoop() { return true; }
|
||||
|
||||
// motions must report their total duration
|
||||
/*virtual*/ F32 getDuration() { return 1.f; }
|
||||
|
|
@ -251,14 +251,14 @@ public:
|
|||
/*virtual*/ LLMotionInitStatus onInitialize(LLCharacter *character) { return STATUS_SUCCESS; }
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
/*virtual*/ BOOL onActivate() { return TRUE; }
|
||||
/*virtual*/ bool onActivate() { return true; }
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
/*virtual*/ BOOL onUpdate(F32 activeTime, U8* joint_mask) { return TRUE; }
|
||||
// must return true while it is active, and
|
||||
// must return false when the motion is completed.
|
||||
/*virtual*/ bool onUpdate(F32 activeTime, U8* joint_mask) { return true; }
|
||||
|
||||
// called when a motion is deactivated
|
||||
/*virtual*/ void onDeactivate() {}
|
||||
|
|
|
|||
|
|
@ -76,16 +76,16 @@ LLMotionRegistry::~LLMotionRegistry()
|
|||
//-----------------------------------------------------------------------------
|
||||
// addMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLMotionRegistry::registerMotion( const LLUUID& id, LLMotionConstructor constructor )
|
||||
bool LLMotionRegistry::registerMotion( const LLUUID& id, LLMotionConstructor constructor )
|
||||
{
|
||||
// LL_INFOS() << "Registering motion: " << name << LL_ENDL;
|
||||
if (!is_in_map(mMotionTable, id))
|
||||
{
|
||||
mMotionTable[id] = constructor;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -134,13 +134,13 @@ LLMotionController::LLMotionController()
|
|||
mAnimTime(0.f),
|
||||
mPrevTimerElapsed(0.f),
|
||||
mLastTime(0.0f),
|
||||
mHasRunOnce(FALSE),
|
||||
mPaused(FALSE),
|
||||
mHasRunOnce(false),
|
||||
mPaused(false),
|
||||
mPausedFrame(0),
|
||||
mTimeStep(0.f),
|
||||
mTimeStepCount(0),
|
||||
mLastInterp(0.f),
|
||||
mIsSelf(FALSE),
|
||||
mIsSelf(false),
|
||||
mLastCountAfterPurge(0)
|
||||
{
|
||||
}
|
||||
|
|
@ -278,7 +278,7 @@ void LLMotionController::setTimeStep(F32 step)
|
|||
LLMotion* motionp = *iter;
|
||||
F32 activation_time = motionp->mActivationTimestamp;
|
||||
motionp->mActivationTimestamp = (F32)(llfloor(activation_time / step)) * step;
|
||||
BOOL stopped = motionp->isStopped();
|
||||
bool stopped = motionp->isStopped();
|
||||
motionp->setStopTime((F32)(llfloor(motionp->getStopTime() / step)) * step);
|
||||
motionp->setStopped(stopped);
|
||||
motionp->mSendStopTimestamp = (F32)llfloor(motionp->mSendStopTimestamp / step) * step;
|
||||
|
|
@ -306,7 +306,7 @@ void LLMotionController::setCharacter(LLCharacter *character)
|
|||
//-----------------------------------------------------------------------------
|
||||
// registerMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLMotionController::registerMotion( const LLUUID& id, LLMotionConstructor constructor )
|
||||
bool LLMotionController::registerMotion( const LLUUID& id, LLMotionConstructor constructor )
|
||||
{
|
||||
return sRegistry.registerMotion(id, constructor);
|
||||
}
|
||||
|
|
@ -399,7 +399,7 @@ LLMotion* LLMotionController::createMotion( const LLUUID &id )
|
|||
//-----------------------------------------------------------------------------
|
||||
// startMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLMotionController::startMotion(const LLUUID &id, F32 start_offset)
|
||||
bool LLMotionController::startMotion(const LLUUID &id, F32 start_offset)
|
||||
{
|
||||
// do we have an instance of this motion for this character?
|
||||
LLMotion *motion = findMotion(id);
|
||||
|
|
@ -425,12 +425,12 @@ BOOL LLMotionController::startMotion(const LLUUID &id, F32 start_offset)
|
|||
|
||||
if (!motion)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
//if the motion is already active and allows deprecation, then let it keep playing
|
||||
else if (motion->canDeprecate() && isMotionActive(motion))
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// LL_INFOS() << "Starting motion " << name << LL_ENDL;
|
||||
|
|
@ -441,7 +441,7 @@ BOOL LLMotionController::startMotion(const LLUUID &id, F32 start_offset)
|
|||
//-----------------------------------------------------------------------------
|
||||
// stopMotionLocally()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLMotionController::stopMotionLocally(const LLUUID &id, BOOL stop_immediate)
|
||||
bool LLMotionController::stopMotionLocally(const LLUUID &id, bool stop_immediate)
|
||||
{
|
||||
// if already inactive, return false
|
||||
LLMotion *motion = findMotion(id);
|
||||
|
|
@ -449,11 +449,11 @@ BOOL LLMotionController::stopMotionLocally(const LLUUID &id, BOOL stop_immediate
|
|||
return stopMotionInstance(motion, stop_immediate||mPaused);
|
||||
}
|
||||
|
||||
BOOL LLMotionController::stopMotionInstance(LLMotion* motion, BOOL stop_immediate)
|
||||
bool LLMotionController::stopMotionInstance(LLMotion* motion, bool stop_immediate)
|
||||
{
|
||||
if (!motion)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -465,15 +465,15 @@ BOOL LLMotionController::stopMotionInstance(LLMotion* motion, BOOL stop_immediat
|
|||
{
|
||||
deactivateMotionInstance(motion);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
else if (isMotionLoading(motion))
|
||||
{
|
||||
motion->setStopped(TRUE);
|
||||
return TRUE;
|
||||
motion->setStopped(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -528,7 +528,7 @@ void LLMotionController::updateIdleMotion(LLMotion* motionp)
|
|||
if (mLastTime <= motionp->mSendStopTimestamp)
|
||||
{
|
||||
mCharacter->requestStopMotion( motionp );
|
||||
stopMotionInstance(motionp, FALSE);
|
||||
stopMotionInstance(motionp, false);
|
||||
}
|
||||
}
|
||||
else if (mAnimTime >= motionp->mActivationTimestamp)
|
||||
|
|
@ -562,7 +562,7 @@ void LLMotionController::updateIdleActiveMotions()
|
|||
void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_type)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
BOOL update_result = TRUE;
|
||||
bool update_result = true;
|
||||
U8 last_joint_signature[LL_CHARACTER_MAX_ANIMATED_JOINTS];
|
||||
|
||||
memset(&last_joint_signature, 0, sizeof(U8) * LL_CHARACTER_MAX_ANIMATED_JOINTS);
|
||||
|
|
@ -578,11 +578,11 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
|
|||
continue;
|
||||
}
|
||||
|
||||
BOOL update_motion = FALSE;
|
||||
bool update_motion = false;
|
||||
|
||||
if (motionp->getPose()->getWeight() < 1.f)
|
||||
{
|
||||
update_motion = TRUE;
|
||||
update_motion = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -594,7 +594,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
|
|||
if ((*current_signature | test_signature) > (*current_signature))
|
||||
{
|
||||
*current_signature |= test_signature;
|
||||
update_motion = TRUE;
|
||||
update_motion = true;
|
||||
}
|
||||
|
||||
*((U32*)&last_joint_signature[i * 4]) = *(U32*)&(mJointSignature[1][i * 4]);
|
||||
|
|
@ -604,7 +604,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
|
|||
if ((*current_signature | test_signature) > (*current_signature))
|
||||
{
|
||||
*current_signature |= test_signature;
|
||||
update_motion = TRUE;
|
||||
update_motion = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -630,7 +630,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
|
|||
if (mLastTime <= motionp->mSendStopTimestamp)
|
||||
{
|
||||
mCharacter->requestStopMotion( motionp );
|
||||
stopMotionInstance(motionp, FALSE);
|
||||
stopMotionInstance(motionp, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -711,7 +711,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
|
|||
if (mLastTime <= motionp->mSendStopTimestamp)
|
||||
{
|
||||
mCharacter->requestStopMotion( motionp );
|
||||
stopMotionInstance(motionp, FALSE);
|
||||
stopMotionInstance(motionp, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -757,12 +757,12 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
|
|||
// propagate this to the network
|
||||
// as not all viewers are guaranteed to have access to the same logic
|
||||
mCharacter->requestStopMotion( motionp );
|
||||
stopMotionInstance(motionp, FALSE);
|
||||
stopMotionInstance(motionp, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// even if onupdate returns FALSE, add this motion in to the blend one last time
|
||||
// even if onupdate returns false, add this motion in to the blend one last time
|
||||
mPoseBlender.addMotion(motionp);
|
||||
}
|
||||
}
|
||||
|
|
@ -825,7 +825,7 @@ void LLMotionController::updateMotions(bool force_update)
|
|||
// The use_quantum optimization or possibly the associated code in setTimeStamp()
|
||||
// does not work as implemented.
|
||||
// Currently setting mTimeStep to nonzero is disabled elsewhere.
|
||||
BOOL use_quantum = (mTimeStep != 0.f);
|
||||
bool use_quantum = (mTimeStep != 0.f);
|
||||
|
||||
// Always update mPrevTimerElapsed
|
||||
F32 cur_time = mTimer.getElapsedTimeF32();
|
||||
|
|
@ -898,7 +898,7 @@ void LLMotionController::updateMotions(bool force_update)
|
|||
|
||||
if (use_quantum)
|
||||
{
|
||||
mPoseBlender.blendAndCache(TRUE);
|
||||
mPoseBlender.blendAndCache(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -906,7 +906,7 @@ void LLMotionController::updateMotions(bool force_update)
|
|||
}
|
||||
}
|
||||
|
||||
mHasRunOnce = TRUE;
|
||||
mHasRunOnce = true;
|
||||
// LL_INFOS() << "Motion controller time " << motionTimer.getElapsedTimeF32() << LL_ENDL;
|
||||
}
|
||||
|
||||
|
|
@ -926,28 +926,28 @@ void LLMotionController::updateMotionsMinimal()
|
|||
|
||||
deactivateStoppedMotions();
|
||||
|
||||
mHasRunOnce = TRUE;
|
||||
mHasRunOnce = true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// activateMotionInstance()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLMotionController::activateMotionInstance(LLMotion *motion, F32 time)
|
||||
bool LLMotionController::activateMotionInstance(LLMotion *motion, F32 time)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
// It's not clear why the getWeight() line seems to be crashing this, but
|
||||
// hopefully this fixes it.
|
||||
if (motion == NULL || motion->getPose() == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mLoadingMotions.find(motion) != mLoadingMotions.end())
|
||||
{
|
||||
// we want to start this motion, but we can't yet, so flag it as started
|
||||
motion->setStopped(FALSE);
|
||||
motion->setStopped(false);
|
||||
// report pending animations as activated
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
motion->mResidualWeight = motion->getPose()->getWeight();
|
||||
|
|
@ -991,13 +991,13 @@ BOOL LLMotionController::activateMotionInstance(LLMotion *motion, F32 time)
|
|||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// deactivateMotionInstance()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLMotionController::deactivateMotionInstance(LLMotion *motion)
|
||||
bool LLMotionController::deactivateMotionInstance(LLMotion *motion)
|
||||
{
|
||||
motion->deactivate();
|
||||
|
||||
|
|
@ -1014,7 +1014,7 @@ BOOL LLMotionController::deactivateMotionInstance(LLMotion *motion)
|
|||
mActiveMotions.remove(motion);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLMotionController::deprecateMotionInstance(LLMotion* motion)
|
||||
|
|
@ -1022,7 +1022,7 @@ void LLMotionController::deprecateMotionInstance(LLMotion* motion)
|
|||
mDeprecatedMotions.insert(motion);
|
||||
|
||||
//fade out deprecated motion
|
||||
stopMotionInstance(motion, FALSE);
|
||||
stopMotionInstance(motion, false);
|
||||
//no longer canonical
|
||||
mAllMotions.erase(motion->getID());
|
||||
}
|
||||
|
|
@ -1137,7 +1137,7 @@ void LLMotionController::pauseAllMotions()
|
|||
if (!mPaused)
|
||||
{
|
||||
//LL_INFOS() << "Pausing animations..." << LL_ENDL;
|
||||
mPaused = TRUE;
|
||||
mPaused = true;
|
||||
mPausedFrame = LLFrameTimer::getFrameCount();
|
||||
}
|
||||
|
||||
|
|
@ -1151,7 +1151,7 @@ void LLMotionController::unpauseAllMotions()
|
|||
if (mPaused)
|
||||
{
|
||||
//LL_INFOS() << "Unpausing animations..." << LL_ENDL;
|
||||
mPaused = FALSE;
|
||||
mPaused = false;
|
||||
}
|
||||
}
|
||||
// End
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public:
|
|||
|
||||
// adds motion classes to the registry
|
||||
// returns true if successfull
|
||||
BOOL registerMotion( const LLUUID& id, LLMotionConstructor create);
|
||||
bool registerMotion( const LLUUID& id, LLMotionConstructor create);
|
||||
|
||||
// creates a new instance of a named motion
|
||||
// returns NULL motion is not registered
|
||||
|
|
@ -85,7 +85,7 @@ class LLMotionController
|
|||
public:
|
||||
typedef std::list<LLMotion*> motion_list_t;
|
||||
typedef std::set<LLMotion*> motion_set_t;
|
||||
BOOL mIsSelf;
|
||||
bool mIsSelf;
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
|
|
@ -102,7 +102,7 @@ public:
|
|||
// registers a motion with the controller
|
||||
// (actually just forwards call to motion registry)
|
||||
// returns true if successfull
|
||||
BOOL registerMotion( const LLUUID& id, LLMotionConstructor create );
|
||||
bool registerMotion( const LLUUID& id, LLMotionConstructor create );
|
||||
|
||||
// creates a motion from the registry
|
||||
LLMotion *createMotion( const LLUUID &id );
|
||||
|
|
@ -115,13 +115,13 @@ public:
|
|||
// start motion
|
||||
// begins playing the specified motion
|
||||
// returns true if successful
|
||||
BOOL startMotion( const LLUUID &id, F32 start_offset );
|
||||
bool startMotion( const LLUUID &id, F32 start_offset );
|
||||
|
||||
// stop motion
|
||||
// stops a playing motion
|
||||
// in reality, it begins the ease out transition phase
|
||||
// returns true if successful
|
||||
BOOL stopMotionLocally( const LLUUID &id, BOOL stop_immediate );
|
||||
bool stopMotionLocally( const LLUUID &id, bool stop_immediate );
|
||||
|
||||
// Move motions from loading to loaded
|
||||
void updateLoadingMotions();
|
||||
|
|
@ -147,7 +147,7 @@ public:
|
|||
// pause and continue all motions
|
||||
void pauseAllMotions();
|
||||
void unpauseAllMotions();
|
||||
BOOL isPaused() const { return mPaused; }
|
||||
bool isPaused() const { return mPaused; }
|
||||
S32 getPausedFrame() const { return mPausedFrame; }
|
||||
|
||||
void setTimeStep(F32 step);
|
||||
|
|
@ -181,10 +181,10 @@ protected:
|
|||
// internal operations act on motion instances directly
|
||||
// as there can be duplicate motions per id during blending overlap
|
||||
void deleteAllMotions();
|
||||
BOOL activateMotionInstance(LLMotion *motion, F32 time);
|
||||
BOOL deactivateMotionInstance(LLMotion *motion);
|
||||
bool activateMotionInstance(LLMotion *motion, F32 time);
|
||||
bool deactivateMotionInstance(LLMotion *motion);
|
||||
void deprecateMotionInstance(LLMotion* motion);
|
||||
BOOL stopMotionInstance(LLMotion *motion, BOOL stop_imemdiate);
|
||||
bool stopMotionInstance(LLMotion *motion, bool stop_imemdiate);
|
||||
void removeMotionInstance(LLMotion* motion);
|
||||
void updateRegularMotions();
|
||||
void updateAdditiveMotions();
|
||||
|
|
@ -224,8 +224,8 @@ protected:
|
|||
F32 mPrevTimerElapsed;
|
||||
F32 mAnimTime;
|
||||
F32 mLastTime;
|
||||
BOOL mHasRunOnce;
|
||||
BOOL mPaused;
|
||||
bool mHasRunOnce;
|
||||
bool mPaused;
|
||||
S32 mPausedFrame;
|
||||
F32 mTimeStep;
|
||||
S32 mTimeStepCount;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ LLMultiGesture::LLMultiGesture()
|
|||
mTrigger(),
|
||||
mReplaceText(),
|
||||
mSteps(),
|
||||
mPlaying(FALSE),
|
||||
mPlaying(false),
|
||||
mCurrentStep(0),
|
||||
mDoneCallback(NULL),
|
||||
mCallbackData(NULL)
|
||||
|
|
@ -64,12 +64,12 @@ LLMultiGesture::~LLMultiGesture()
|
|||
|
||||
void LLMultiGesture::reset()
|
||||
{
|
||||
mPlaying = FALSE;
|
||||
mPlaying = false;
|
||||
mCurrentStep = 0;
|
||||
mWaitTimer.reset();
|
||||
mWaitingTimer = FALSE;
|
||||
mWaitingAnimations = FALSE;
|
||||
mWaitingAtEnd = FALSE;
|
||||
mWaitingTimer = false;
|
||||
mWaitingAnimations = false;
|
||||
mWaitingAtEnd = false;
|
||||
mRequestedAnimIDs.clear();
|
||||
mPlayingAnimIDs.clear();
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ S32 LLMultiGesture::getMaxSerialSize() const
|
|||
return max_size;
|
||||
}
|
||||
|
||||
BOOL LLMultiGesture::serialize(LLDataPacker& dp) const
|
||||
bool LLMultiGesture::serialize(LLDataPacker& dp) const
|
||||
{
|
||||
dp.packS32(GESTURE_VERSION, "version");
|
||||
dp.packU8(mKey, "key");
|
||||
|
|
@ -130,16 +130,16 @@ BOOL LLMultiGesture::serialize(LLDataPacker& dp) const
|
|||
LLGestureStep* step = mSteps[i];
|
||||
|
||||
dp.packS32(step->getType(), "step_type");
|
||||
BOOL ok = step->serialize(dp);
|
||||
bool ok = step->serialize(dp);
|
||||
if (!ok)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLMultiGesture::deserialize(LLDataPacker& dp)
|
||||
bool LLMultiGesture::deserialize(LLDataPacker& dp)
|
||||
{
|
||||
S32 version;
|
||||
dp.unpackS32(version, "version");
|
||||
|
|
@ -148,7 +148,7 @@ BOOL LLMultiGesture::deserialize(LLDataPacker& dp)
|
|||
LL_WARNS() << "Bad LLMultiGesture version " << version
|
||||
<< " should be " << GESTURE_VERSION
|
||||
<< LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
dp.unpackU8(mKey, "key");
|
||||
|
|
@ -164,7 +164,7 @@ BOOL LLMultiGesture::deserialize(LLDataPacker& dp)
|
|||
if (count < 0)
|
||||
{
|
||||
LL_WARNS() << "Bad LLMultiGesture step count " << count << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
S32 i;
|
||||
|
|
@ -179,43 +179,43 @@ BOOL LLMultiGesture::deserialize(LLDataPacker& dp)
|
|||
case STEP_ANIMATION:
|
||||
{
|
||||
LLGestureStepAnimation* step = new LLGestureStepAnimation();
|
||||
BOOL ok = step->deserialize(dp);
|
||||
if (!ok) return FALSE;
|
||||
bool ok = step->deserialize(dp);
|
||||
if (!ok) return false;
|
||||
mSteps.push_back(step);
|
||||
break;
|
||||
}
|
||||
case STEP_SOUND:
|
||||
{
|
||||
LLGestureStepSound* step = new LLGestureStepSound();
|
||||
BOOL ok = step->deserialize(dp);
|
||||
if (!ok) return FALSE;
|
||||
bool ok = step->deserialize(dp);
|
||||
if (!ok) return false;
|
||||
mSteps.push_back(step);
|
||||
break;
|
||||
}
|
||||
case STEP_CHAT:
|
||||
{
|
||||
LLGestureStepChat* step = new LLGestureStepChat();
|
||||
BOOL ok = step->deserialize(dp);
|
||||
if (!ok) return FALSE;
|
||||
bool ok = step->deserialize(dp);
|
||||
if (!ok) return false;
|
||||
mSteps.push_back(step);
|
||||
break;
|
||||
}
|
||||
case STEP_WAIT:
|
||||
{
|
||||
LLGestureStepWait* step = new LLGestureStepWait();
|
||||
BOOL ok = step->deserialize(dp);
|
||||
if (!ok) return FALSE;
|
||||
bool ok = step->deserialize(dp);
|
||||
if (!ok) return false;
|
||||
mSteps.push_back(step);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
LL_WARNS() << "Bad LLMultiGesture step type " << type << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLMultiGesture::dump()
|
||||
|
|
@ -262,15 +262,15 @@ S32 LLGestureStepAnimation::getMaxSerialSize() const
|
|||
return max_size;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepAnimation::serialize(LLDataPacker& dp) const
|
||||
bool LLGestureStepAnimation::serialize(LLDataPacker& dp) const
|
||||
{
|
||||
dp.packString(mAnimName, "anim_name");
|
||||
dp.packUUID(mAnimAssetID, "asset_id");
|
||||
dp.packU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepAnimation::deserialize(LLDataPacker& dp)
|
||||
bool LLGestureStepAnimation::deserialize(LLDataPacker& dp)
|
||||
{
|
||||
dp.unpackString(mAnimName, "anim_name");
|
||||
|
||||
|
|
@ -284,7 +284,7 @@ BOOL LLGestureStepAnimation::deserialize(LLDataPacker& dp)
|
|||
|
||||
dp.unpackUUID(mAnimAssetID, "asset_id");
|
||||
dp.unpackU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
// *NOTE: result is translated in LLPreviewGesture::getLabel()
|
||||
std::vector<std::string> LLGestureStepAnimation::getLabel() const
|
||||
|
|
@ -344,21 +344,21 @@ S32 LLGestureStepSound::getMaxSerialSize() const
|
|||
return max_size;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepSound::serialize(LLDataPacker& dp) const
|
||||
bool LLGestureStepSound::serialize(LLDataPacker& dp) const
|
||||
{
|
||||
dp.packString(mSoundName, "sound_name");
|
||||
dp.packUUID(mSoundAssetID, "asset_id");
|
||||
dp.packU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepSound::deserialize(LLDataPacker& dp)
|
||||
bool LLGestureStepSound::deserialize(LLDataPacker& dp)
|
||||
{
|
||||
dp.unpackString(mSoundName, "sound_name");
|
||||
|
||||
dp.unpackUUID(mSoundAssetID, "asset_id");
|
||||
dp.unpackU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
// *NOTE: result is translated in LLPreviewGesture::getLabel()
|
||||
std::vector<std::string> LLGestureStepSound::getLabel() const
|
||||
|
|
@ -404,19 +404,19 @@ S32 LLGestureStepChat::getMaxSerialSize() const
|
|||
return max_size;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepChat::serialize(LLDataPacker& dp) const
|
||||
bool LLGestureStepChat::serialize(LLDataPacker& dp) const
|
||||
{
|
||||
dp.packString(mChatText, "chat_text");
|
||||
dp.packU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepChat::deserialize(LLDataPacker& dp)
|
||||
bool LLGestureStepChat::deserialize(LLDataPacker& dp)
|
||||
{
|
||||
dp.unpackString(mChatText, "chat_text");
|
||||
|
||||
dp.unpackU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
// *NOTE: result is translated in LLPreviewGesture::getLabel()
|
||||
std::vector<std::string> LLGestureStepChat::getLabel() const
|
||||
|
|
@ -459,18 +459,18 @@ S32 LLGestureStepWait::getMaxSerialSize() const
|
|||
return max_size;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepWait::serialize(LLDataPacker& dp) const
|
||||
bool LLGestureStepWait::serialize(LLDataPacker& dp) const
|
||||
{
|
||||
dp.packF32(mWaitSeconds, "wait_seconds");
|
||||
dp.packU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL LLGestureStepWait::deserialize(LLDataPacker& dp)
|
||||
bool LLGestureStepWait::deserialize(LLDataPacker& dp)
|
||||
{
|
||||
dp.unpackF32(mWaitSeconds, "wait_seconds");
|
||||
dp.unpackU32(mFlags, "flags");
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
// *NOTE: result is translated in LLPreviewGesture::getLabel()
|
||||
std::vector<std::string> LLGestureStepWait::getLabel() const
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ public:
|
|||
// Maximum number of bytes this could hold once serialized.
|
||||
S32 getMaxSerialSize() const;
|
||||
|
||||
BOOL serialize(LLDataPacker& dp) const;
|
||||
BOOL deserialize(LLDataPacker& dp);
|
||||
bool serialize(LLDataPacker& dp) const;
|
||||
bool deserialize(LLDataPacker& dp);
|
||||
|
||||
void dump();
|
||||
|
||||
|
|
@ -75,19 +75,19 @@ public:
|
|||
std::vector<LLGestureStep*> mSteps;
|
||||
|
||||
// Is the gesture currently playing?
|
||||
BOOL mPlaying;
|
||||
bool mPlaying;
|
||||
|
||||
// "instruction pointer" for steps
|
||||
S32 mCurrentStep;
|
||||
|
||||
// We're waiting for triggered animations to stop playing
|
||||
BOOL mWaitingAnimations;
|
||||
bool mWaitingAnimations;
|
||||
|
||||
// We're waiting a fixed amount of time
|
||||
BOOL mWaitingTimer;
|
||||
bool mWaitingTimer;
|
||||
|
||||
// Waiting after the last step played for all animations to complete
|
||||
BOOL mWaitingAtEnd;
|
||||
bool mWaitingAtEnd;
|
||||
|
||||
// Timer for waiting
|
||||
LLFrameTimer mWaitTimer;
|
||||
|
|
@ -129,8 +129,8 @@ public:
|
|||
virtual std::vector<std::string> getLabel() const = 0;
|
||||
|
||||
virtual S32 getMaxSerialSize() const = 0;
|
||||
virtual BOOL serialize(LLDataPacker& dp) const = 0;
|
||||
virtual BOOL deserialize(LLDataPacker& dp) = 0;
|
||||
virtual bool serialize(LLDataPacker& dp) const = 0;
|
||||
virtual bool deserialize(LLDataPacker& dp) = 0;
|
||||
|
||||
virtual void dump() = 0;
|
||||
};
|
||||
|
|
@ -151,8 +151,8 @@ public:
|
|||
virtual std::vector<std::string> getLabel() const;
|
||||
|
||||
virtual S32 getMaxSerialSize() const;
|
||||
virtual BOOL serialize(LLDataPacker& dp) const;
|
||||
virtual BOOL deserialize(LLDataPacker& dp);
|
||||
virtual bool serialize(LLDataPacker& dp) const;
|
||||
virtual bool deserialize(LLDataPacker& dp);
|
||||
|
||||
virtual void dump();
|
||||
|
||||
|
|
@ -174,8 +174,8 @@ public:
|
|||
virtual std::vector<std::string> getLabel() const;
|
||||
|
||||
virtual S32 getMaxSerialSize() const;
|
||||
virtual BOOL serialize(LLDataPacker& dp) const;
|
||||
virtual BOOL deserialize(LLDataPacker& dp);
|
||||
virtual bool serialize(LLDataPacker& dp) const;
|
||||
virtual bool deserialize(LLDataPacker& dp);
|
||||
|
||||
virtual void dump();
|
||||
|
||||
|
|
@ -197,8 +197,8 @@ public:
|
|||
virtual std::vector<std::string> getLabel() const;
|
||||
|
||||
virtual S32 getMaxSerialSize() const;
|
||||
virtual BOOL serialize(LLDataPacker& dp) const;
|
||||
virtual BOOL deserialize(LLDataPacker& dp);
|
||||
virtual bool serialize(LLDataPacker& dp) const;
|
||||
virtual bool deserialize(LLDataPacker& dp);
|
||||
|
||||
virtual void dump();
|
||||
|
||||
|
|
@ -222,8 +222,8 @@ public:
|
|||
virtual std::vector<std::string> getLabel() const;
|
||||
|
||||
virtual S32 getMaxSerialSize() const;
|
||||
virtual BOOL serialize(LLDataPacker& dp) const;
|
||||
virtual BOOL deserialize(LLDataPacker& dp);
|
||||
virtual bool serialize(LLDataPacker& dp) const;
|
||||
virtual bool deserialize(LLDataPacker& dp);
|
||||
|
||||
virtual void dump();
|
||||
|
||||
|
|
|
|||
|
|
@ -81,31 +81,31 @@ LLJointState *LLPose::getNextJointState()
|
|||
//-----------------------------------------------------------------------------
|
||||
// addJointState()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPose::addJointState(const LLPointer<LLJointState>& jointState)
|
||||
bool LLPose::addJointState(const LLPointer<LLJointState>& jointState)
|
||||
{
|
||||
if (mJointMap.find(jointState->getJoint()->getName()) == mJointMap.end())
|
||||
{
|
||||
mJointMap[jointState->getJoint()->getName()] = jointState;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// removeJointState()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPose::removeJointState(const LLPointer<LLJointState>& jointState)
|
||||
bool LLPose::removeJointState(const LLPointer<LLJointState>& jointState)
|
||||
{
|
||||
mJointMap.erase(jointState->getJoint()->getName());
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// removeAllJointStates()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPose::removeAllJointStates()
|
||||
bool LLPose::removeAllJointStates()
|
||||
{
|
||||
mJointMap.clear();
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -181,7 +181,7 @@ LLJointStateBlender::LLJointStateBlender()
|
|||
{
|
||||
mJointStates[i] = NULL;
|
||||
mPriorities[i] = S32_MIN;
|
||||
mAdditiveBlends[i] = FALSE;
|
||||
mAdditiveBlends[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -193,13 +193,13 @@ LLJointStateBlender::~LLJointStateBlender()
|
|||
//-----------------------------------------------------------------------------
|
||||
// addJointState()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_state, S32 priority, BOOL additive_blend)
|
||||
bool LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_state, S32 priority, bool additive_blend)
|
||||
{
|
||||
llassert(joint_state);
|
||||
|
||||
if (!joint_state->getJoint())
|
||||
// this joint state doesn't point to an actual joint, so we don't care about applying it
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
for(S32 i = 0; i < JSB_NUM_JOINT_STATES; i++)
|
||||
{
|
||||
|
|
@ -208,7 +208,7 @@ BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_sta
|
|||
mJointStates[i] = joint_state;
|
||||
mPriorities[i] = priority;
|
||||
mAdditiveBlends[i] = additive_blend;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
else if (priority > mPriorities[i])
|
||||
{
|
||||
|
|
@ -225,17 +225,17 @@ BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_sta
|
|||
mJointStates[i] = joint_state;
|
||||
mPriorities[i] = priority;
|
||||
mAdditiveBlends[i] = additive_blend;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// blendJointStates()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLJointStateBlender::blendJointStates(BOOL apply_now)
|
||||
void LLJointStateBlender::blendJointStates(bool apply_now)
|
||||
{
|
||||
// we need at least one joint to blend
|
||||
// if there is one, it will be in slot zero according to insertion logic
|
||||
|
|
@ -468,7 +468,7 @@ LLPoseBlender::~LLPoseBlender()
|
|||
//-----------------------------------------------------------------------------
|
||||
// addMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPoseBlender::addMotion(LLMotion* motion)
|
||||
bool LLPoseBlender::addMotion(LLMotion* motion)
|
||||
{
|
||||
LLPose* pose = motion->getPose();
|
||||
|
||||
|
|
@ -503,7 +503,7 @@ BOOL LLPoseBlender::addMotion(LLMotion* motion)
|
|||
mActiveBlenders.push_front(joint_blender);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -525,7 +525,7 @@ void LLPoseBlender::blendAndApply()
|
|||
//-----------------------------------------------------------------------------
|
||||
// blendAndCache()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLPoseBlender::blendAndCache(BOOL reset_cached_joints)
|
||||
void LLPoseBlender::blendAndCache(bool reset_cached_joints)
|
||||
{
|
||||
for (blender_list_t::iterator iter = mActiveBlenders.begin();
|
||||
iter != mActiveBlenders.end(); ++iter)
|
||||
|
|
@ -535,7 +535,7 @@ void LLPoseBlender::blendAndCache(BOOL reset_cached_joints)
|
|||
{
|
||||
jsbp->resetCachedJoint();
|
||||
}
|
||||
jsbp->blendJointStates(FALSE);
|
||||
jsbp->blendJointStates(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,11 +65,11 @@ public:
|
|||
// Destructor
|
||||
~LLPose();
|
||||
// add a joint state in this pose
|
||||
BOOL addJointState(const LLPointer<LLJointState>& jointState);
|
||||
bool addJointState(const LLPointer<LLJointState>& jointState);
|
||||
// remove a joint state from this pose
|
||||
BOOL removeJointState(const LLPointer<LLJointState>& jointState);
|
||||
bool removeJointState(const LLPointer<LLJointState>& jointState);
|
||||
// removes all joint states from this pose
|
||||
BOOL removeAllJointStates();
|
||||
bool removeAllJointStates();
|
||||
// set weight for all joint states in this pose
|
||||
void setWeight(F32 weight);
|
||||
// get weight for this pose
|
||||
|
|
@ -87,12 +87,12 @@ class LLJointStateBlender
|
|||
protected:
|
||||
LLPointer<LLJointState> mJointStates[JSB_NUM_JOINT_STATES];
|
||||
S32 mPriorities[JSB_NUM_JOINT_STATES];
|
||||
BOOL mAdditiveBlends[JSB_NUM_JOINT_STATES];
|
||||
bool mAdditiveBlends[JSB_NUM_JOINT_STATES];
|
||||
public:
|
||||
LLJointStateBlender();
|
||||
~LLJointStateBlender();
|
||||
void blendJointStates(BOOL apply_now = TRUE);
|
||||
BOOL addJointState(const LLPointer<LLJointState>& joint_state, S32 priority, BOOL additive_blend);
|
||||
void blendJointStates(bool apply_now = true);
|
||||
bool addJointState(const LLPointer<LLJointState>& joint_state, S32 priority, bool additive_blend);
|
||||
void interpolate(F32 u);
|
||||
void clear();
|
||||
void resetCachedJoint();
|
||||
|
|
@ -120,7 +120,7 @@ public:
|
|||
~LLPoseBlender();
|
||||
|
||||
// request motion joint states to be added to pose blender joint state records
|
||||
BOOL addMotion(LLMotion* motion);
|
||||
bool addMotion(LLMotion* motion);
|
||||
|
||||
// blend all joint states and apply to skeleton
|
||||
void blendAndApply();
|
||||
|
|
@ -129,7 +129,7 @@ public:
|
|||
void clearBlenders();
|
||||
|
||||
// blend all joint states and cache results
|
||||
void blendAndCache(BOOL reset_cached_joints);
|
||||
void blendAndCache(bool reset_cached_joints);
|
||||
|
||||
// interpolate all joints towards cached values
|
||||
void interpolate(F32 u);
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ bool operator!=(const LLUniqueID &a, const LLUniqueID &b)
|
|||
LLStateDiagram::LLStateDiagram()
|
||||
{
|
||||
mDefaultState = NULL;
|
||||
mUseDefaultState = FALSE;
|
||||
mUseDefaultState = false;
|
||||
}
|
||||
|
||||
LLStateDiagram::~LLStateDiagram()
|
||||
|
|
@ -58,14 +58,14 @@ LLStateDiagram::~LLStateDiagram()
|
|||
}
|
||||
|
||||
// add a state to the state graph
|
||||
BOOL LLStateDiagram::addState(LLFSMState *state)
|
||||
bool LLStateDiagram::addState(LLFSMState *state)
|
||||
{
|
||||
mStates[state] = Transitions();
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// add a directed transition between 2 states
|
||||
BOOL LLStateDiagram::addTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition)
|
||||
bool LLStateDiagram::addTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition)
|
||||
{
|
||||
StateMap::iterator state_it;
|
||||
state_it = mStates.find(&start_state);
|
||||
|
|
@ -89,17 +89,17 @@ BOOL LLStateDiagram::addTransition(LLFSMState& start_state, LLFSMState& end_stat
|
|||
if (transition_it != state_transitions->end())
|
||||
{
|
||||
LL_ERRS() << "LLStateTable::addDirectedTransition() : transition already exists" << LL_ENDL;
|
||||
return FALSE; // transition already exists
|
||||
return false; // transition already exists
|
||||
}
|
||||
|
||||
(*state_transitions)[&transition] = &end_state;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// add an undirected transition between 2 states
|
||||
BOOL LLStateDiagram::addUndirectedTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition)
|
||||
bool LLStateDiagram::addUndirectedTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition)
|
||||
{
|
||||
BOOL result;
|
||||
bool result;
|
||||
result = addTransition(start_state, end_state, transition);
|
||||
if (result)
|
||||
{
|
||||
|
|
@ -162,7 +162,7 @@ LLFSMState* LLStateDiagram::processTransition(LLFSMState& start_state, LLFSMTran
|
|||
|
||||
void LLStateDiagram::setDefaultState(LLFSMState& default_state)
|
||||
{
|
||||
mUseDefaultState = TRUE;
|
||||
mUseDefaultState = true;
|
||||
mDefaultState = &default_state;
|
||||
}
|
||||
|
||||
|
|
@ -179,13 +179,13 @@ S32 LLStateDiagram::numDeadendStates()
|
|||
return numDeadends;
|
||||
}
|
||||
|
||||
BOOL LLStateDiagram::stateIsValid(LLFSMState& state)
|
||||
bool LLStateDiagram::stateIsValid(LLFSMState& state)
|
||||
{
|
||||
if (mStates.find(&state) != mStates.end())
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
LLFSMState* LLStateDiagram::getState(U32 state_id)
|
||||
|
|
@ -200,7 +200,7 @@ LLFSMState* LLStateDiagram::getState(U32 state_id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
BOOL LLStateDiagram::saveDotFile(const std::string& filename)
|
||||
bool LLStateDiagram::saveDotFile(const std::string& filename)
|
||||
{
|
||||
LLAPRFile outfile ;
|
||||
outfile.open(filename, LL_APR_W);
|
||||
|
|
@ -213,7 +213,7 @@ BOOL LLStateDiagram::saveDotFile(const std::string& filename)
|
|||
if (!dot_file)
|
||||
{
|
||||
LL_WARNS() << "LLStateDiagram::saveDotFile() : Couldn't open " << filename << " to save state diagram." << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
apr_file_printf(dot_file, "digraph StateMachine {\n\tsize=\"100,100\";\n\tfontsize=40;\n\tlabel=\"Finite State Machine\";\n\torientation=landscape\n\tratio=.77\n");
|
||||
|
||||
|
|
@ -252,7 +252,7 @@ BOOL LLStateDiagram::saveDotFile(const std::string& filename)
|
|||
|
||||
apr_file_printf(dot_file, "}\n");
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream &s, LLStateDiagram &FSM)
|
||||
|
|
@ -312,7 +312,7 @@ void LLStateMachine::runCurrentState(void *data)
|
|||
}
|
||||
|
||||
// set current state
|
||||
BOOL LLStateMachine::setCurrentState(LLFSMState *initial_state, void* user_data, BOOL skip_entry)
|
||||
bool LLStateMachine::setCurrentState(LLFSMState *initial_state, void* user_data, bool skip_entry)
|
||||
{
|
||||
llassert(mStateDiagram);
|
||||
|
||||
|
|
@ -323,13 +323,13 @@ BOOL LLStateMachine::setCurrentState(LLFSMState *initial_state, void* user_data,
|
|||
{
|
||||
initial_state->onEntry(user_data);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
BOOL LLStateMachine::setCurrentState(U32 state_id, void* user_data, BOOL skip_entry)
|
||||
bool LLStateMachine::setCurrentState(U32 state_id, void* user_data, bool skip_entry)
|
||||
{
|
||||
llassert(mStateDiagram);
|
||||
|
||||
|
|
@ -342,10 +342,10 @@ BOOL LLStateMachine::setCurrentState(U32 state_id, void* user_data, BOOL skip_en
|
|||
{
|
||||
state->onEntry(user_data);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
void LLStateMachine::processTransition(LLFSMTransition& transition, void* user_data)
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ protected:
|
|||
StateMap mStates;
|
||||
Transitions mDefaultTransitions;
|
||||
LLFSMState* mDefaultState;
|
||||
BOOL mUseDefaultState;
|
||||
bool mUseDefaultState;
|
||||
|
||||
public:
|
||||
LLStateDiagram();
|
||||
|
|
@ -82,13 +82,13 @@ public:
|
|||
|
||||
protected:
|
||||
// add a state to the state graph, executed implicitly when adding transitions
|
||||
BOOL addState(LLFSMState *state);
|
||||
bool addState(LLFSMState *state);
|
||||
|
||||
// add a directed transition between 2 states
|
||||
BOOL addTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition);
|
||||
bool addTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition);
|
||||
|
||||
// add an undirected transition between 2 states
|
||||
BOOL addUndirectedTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition);
|
||||
bool addUndirectedTransition(LLFSMState& start_state, LLFSMState& end_state, LLFSMTransition& transition);
|
||||
|
||||
// add a transition that is taken if none other exist
|
||||
void addDefaultTransition(LLFSMState& end_state, LLFSMTransition& transition);
|
||||
|
|
@ -103,14 +103,14 @@ protected:
|
|||
S32 numDeadendStates();
|
||||
|
||||
// does this state exist in the state diagram?
|
||||
BOOL stateIsValid(LLFSMState& state);
|
||||
bool stateIsValid(LLFSMState& state);
|
||||
|
||||
// get a state pointer by ID
|
||||
LLFSMState* getState(U32 state_id);
|
||||
|
||||
public:
|
||||
// save the graph in a DOT file for rendering and visualization
|
||||
BOOL saveDotFile(const std::string& filename);
|
||||
bool saveDotFile(const std::string& filename);
|
||||
};
|
||||
|
||||
class LLStateMachine
|
||||
|
|
@ -138,10 +138,10 @@ public:
|
|||
void runCurrentState(void *data);
|
||||
|
||||
// set state by state pointer
|
||||
BOOL setCurrentState(LLFSMState *initial_state, void* user_data, BOOL skip_entry = TRUE);
|
||||
bool setCurrentState(LLFSMState *initial_state, void* user_data, bool skip_entry = true);
|
||||
|
||||
// set state by unique ID
|
||||
BOOL setCurrentState(U32 state_id, void* user_data, BOOL skip_entry = TRUE);
|
||||
bool setCurrentState(U32 state_id, void* user_data, bool skip_entry = true);
|
||||
};
|
||||
|
||||
#endif //_LL_LLSTATEMACHINE_H
|
||||
|
|
|
|||
|
|
@ -93,15 +93,15 @@ LLMotion::LLMotionInitStatus LLTargetingMotion::onInitialize(LLCharacter *charac
|
|||
//-----------------------------------------------------------------------------
|
||||
// LLTargetingMotion::onActivate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLTargetingMotion::onActivate()
|
||||
bool LLTargetingMotion::onActivate()
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLTargetingMotion::onUpdate()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLTargetingMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
bool LLTargetingMotion::onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
F32 slerp_amt = LLSmoothInterpolation::getInterpolant(TORSO_TARGET_HALF_LIFE);
|
||||
|
|
@ -109,11 +109,11 @@ BOOL LLTargetingMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
LLVector3 target;
|
||||
LLVector3* lookAtPoint = (LLVector3*)mCharacter->getAnimationData("LookAtPoint");
|
||||
|
||||
BOOL result = TRUE;
|
||||
bool result = true;
|
||||
|
||||
if (!lookAtPoint)
|
||||
{
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() { return TRUE; }
|
||||
virtual bool getLoop() { return true; }
|
||||
|
||||
// motions must report their total duration
|
||||
virtual F32 getDuration() { return 0.0; }
|
||||
|
|
@ -91,14 +91,14 @@ public:
|
|||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||
|
||||
// called when a motion is activated
|
||||
// must return TRUE to indicate success, or else
|
||||
// must return true to indicate success, or else
|
||||
// it will be deactivated
|
||||
virtual BOOL onActivate();
|
||||
virtual bool onActivate();
|
||||
|
||||
// called per time step
|
||||
// must return TRUE while it is active, and
|
||||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||
// must return true while it is active, and
|
||||
// must return true when the motion is completed.
|
||||
virtual bool onUpdate(F32 time, U8* joint_mask);
|
||||
|
||||
// called when a motion is deactivated
|
||||
virtual void onDeactivate();
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ LLVisualParamInfo::LLVisualParamInfo()
|
|||
//-----------------------------------------------------------------------------
|
||||
// parseXml()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
||||
bool LLVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
||||
{
|
||||
// attribute: id
|
||||
static LLStdStringHandle id_string = LLXmlTree::addAttributeString("id");
|
||||
|
|
@ -102,7 +102,7 @@ BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
|||
else
|
||||
{
|
||||
LL_WARNS() << "Avatar file: <param> has invalid sex attribute: " << sex << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// attribute: name
|
||||
|
|
@ -110,7 +110,7 @@ BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
|||
if( !node->getFastAttributeString( name_string, mName ) )
|
||||
{
|
||||
LL_WARNS() << "Avatar file: <param> is missing name attribute" << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// attribute: label
|
||||
|
|
@ -138,7 +138,7 @@ BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node)
|
|||
mMaxName = "More";
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -164,8 +164,8 @@ LLVisualParam::LLVisualParam()
|
|||
mLastWeight( 0.f ),
|
||||
mNext( NULL ),
|
||||
mTargetWeight( 0.f ),
|
||||
mIsAnimating( FALSE ),
|
||||
mIsDummy(FALSE),
|
||||
mIsAnimating( false ),
|
||||
mIsDummy(false),
|
||||
mID( -1 ),
|
||||
mInfo( 0 ),
|
||||
mParamLocation(LOC_UNKNOWN)
|
||||
|
|
@ -207,29 +207,29 @@ LLVisualParam::~LLVisualParam()
|
|||
// setInfo()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
BOOL LLVisualParam::setInfo(LLVisualParamInfo *info)
|
||||
bool LLVisualParam::setInfo(LLVisualParamInfo *info)
|
||||
{
|
||||
llassert(mInfo == NULL);
|
||||
if (info->mID < 0)
|
||||
return FALSE;
|
||||
return false;
|
||||
mInfo = info;
|
||||
mID = info->mID;
|
||||
setWeight(getDefaultWeight(), FALSE );
|
||||
return TRUE;
|
||||
setWeight(getDefaultWeight(), false );
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// parseData()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLVisualParam::parseData(LLXmlTreeNode *node)
|
||||
bool LLVisualParam::parseData(LLXmlTreeNode *node)
|
||||
{
|
||||
LLVisualParamInfo *info = new LLVisualParamInfo;
|
||||
|
||||
info->parseXml(node);
|
||||
if (!setInfo(info))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
|
|
@ -238,7 +238,7 @@ BOOL LLVisualParam::parseData(LLXmlTreeNode *node)
|
|||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLVisualParam::setWeight(F32 weight)
|
||||
void LLVisualParam::setWeight(F32 weight, BOOL upload_bake)
|
||||
void LLVisualParam::setWeight(F32 weight, bool upload_bake)
|
||||
{
|
||||
if (mIsAnimating)
|
||||
{
|
||||
|
|
@ -267,7 +267,7 @@ void LLVisualParam::setWeight(F32 weight, BOOL upload_bake)
|
|||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLVisualParam::setAnimationTarget(F32 target_value)
|
||||
void LLVisualParam::setAnimationTarget(F32 target_value, BOOL upload_bake)
|
||||
void LLVisualParam::setAnimationTarget(F32 target_value, bool upload_bake)
|
||||
{
|
||||
// don't animate dummy parameters
|
||||
if (mIsDummy)
|
||||
|
|
@ -290,7 +290,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value, BOOL upload_bake)
|
|||
{
|
||||
mTargetWeight = target_value;
|
||||
}
|
||||
mIsAnimating = TRUE;
|
||||
mIsAnimating = true;
|
||||
|
||||
if (mNext)
|
||||
{
|
||||
|
|
@ -323,7 +323,7 @@ void LLVisualParam::clearNextParam()
|
|||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLVisualParam::animate( F32 delta)
|
||||
void LLVisualParam::animate( F32 delta, BOOL upload_bake)
|
||||
void LLVisualParam::animate( F32 delta, bool upload_bake)
|
||||
{
|
||||
if (mIsAnimating)
|
||||
{
|
||||
|
|
@ -339,11 +339,11 @@ void LLVisualParam::animate( F32 delta, BOOL upload_bake)
|
|||
//-----------------------------------------------------------------------------
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//void LLVisualParam::stopAnimating()
|
||||
void LLVisualParam::stopAnimating(BOOL upload_bake)
|
||||
void LLVisualParam::stopAnimating(bool upload_bake)
|
||||
{
|
||||
if (mIsAnimating && isTweakable())
|
||||
{
|
||||
mIsAnimating = FALSE;
|
||||
mIsAnimating = false;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//setWeight(mTargetWeight);
|
||||
setWeight(mTargetWeight, upload_bake);
|
||||
|
|
@ -351,10 +351,10 @@ void LLVisualParam::stopAnimating(BOOL upload_bake)
|
|||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLVisualParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params)
|
||||
bool LLVisualParam::linkDrivenParams(visual_param_mapper mapper, bool only_cross_params)
|
||||
{
|
||||
// nothing to do for non-driver parameters
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public:
|
|||
LLVisualParamInfo();
|
||||
virtual ~LLVisualParamInfo() {};
|
||||
|
||||
virtual BOOL parseXml(LLXmlTreeNode *node);
|
||||
virtual bool parseXml(LLXmlTreeNode *node);
|
||||
|
||||
S32 getID() const { return mID; }
|
||||
|
||||
|
|
@ -113,11 +113,11 @@ public:
|
|||
// (They can not be virtual because they use specific derived Info classes)
|
||||
LLVisualParamInfo* getInfo() const { return mInfo; }
|
||||
// This sets mInfo and calls initialization functions
|
||||
BOOL setInfo(LLVisualParamInfo *info);
|
||||
bool setInfo(LLVisualParamInfo *info);
|
||||
|
||||
// Virtual functions
|
||||
// Pure virtuals
|
||||
//virtual BOOL parseData( LLXmlTreeNode *node ) = 0;
|
||||
//virtual bool parseData( LLXmlTreeNode *node ) = 0;
|
||||
virtual void apply( ESex avatar_sex ) = 0;
|
||||
// Default functions
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
|
|
@ -125,13 +125,13 @@ public:
|
|||
//virtual void setAnimationTarget( F32 target_value);
|
||||
//virtual void animate(F32 delta);
|
||||
//virtual void stopAnimating();
|
||||
virtual void setWeight(F32 weight, BOOL upload_bake);
|
||||
virtual void setAnimationTarget( F32 target_value, BOOL upload_bake);
|
||||
virtual void animate(F32 delta, BOOL upload_bake);
|
||||
virtual void stopAnimating(BOOL upload_bake);
|
||||
virtual void setWeight(F32 weight, bool upload_bake);
|
||||
virtual void setAnimationTarget( F32 target_value, bool upload_bake);
|
||||
virtual void animate(F32 delta, bool upload_bake);
|
||||
virtual void stopAnimating(bool upload_bake);
|
||||
// </FS:Ansariel> [Legacy Bake]
|
||||
|
||||
virtual BOOL linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params);
|
||||
virtual bool linkDrivenParams(visual_param_mapper mapper, bool only_cross_params);
|
||||
virtual void resetDrivenParams();
|
||||
|
||||
// Interface methods
|
||||
|
|
@ -157,17 +157,17 @@ public:
|
|||
F32 getCurrentWeight() const { return mCurWeight; }
|
||||
F32 getLastWeight() const { return mLastWeight; }
|
||||
void setLastWeight(F32 val) { mLastWeight = val; }
|
||||
BOOL isAnimating() const { return mIsAnimating; }
|
||||
BOOL isTweakable() const { return (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) || (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT); }
|
||||
bool isAnimating() const { return mIsAnimating; }
|
||||
bool isTweakable() const { return (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) || (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT); }
|
||||
|
||||
LLVisualParam* getNextParam() { return mNext; }
|
||||
void setNextParam( LLVisualParam *next );
|
||||
void clearNextParam();
|
||||
|
||||
virtual void setAnimating(BOOL is_animating) { mIsAnimating = is_animating && !mIsDummy; }
|
||||
BOOL getAnimating() const { return mIsAnimating; }
|
||||
virtual void setAnimating(bool is_animating) { mIsAnimating = is_animating && !mIsDummy; }
|
||||
bool getAnimating() const { return mIsAnimating; }
|
||||
|
||||
void setIsDummy(BOOL is_dummy) { mIsDummy = is_dummy; }
|
||||
void setIsDummy(bool is_dummy) { mIsDummy = is_dummy; }
|
||||
|
||||
void setParamLocation(EParamLocation loc);
|
||||
EParamLocation getParamLocation() const { return mParamLocation; }
|
||||
|
|
@ -179,8 +179,8 @@ protected:
|
|||
F32 mLastWeight; // last weight
|
||||
LLVisualParam* mNext; // next param in a shared chain
|
||||
F32 mTargetWeight; // interpolation target
|
||||
BOOL mIsAnimating; // this value has been given an interpolation target
|
||||
BOOL mIsDummy; // this is used to prevent dummy visual params from animating
|
||||
bool mIsAnimating; // this value has been given an interpolation target
|
||||
bool mIsDummy; // this is used to prevent dummy visual params from animating
|
||||
|
||||
|
||||
S32 mID; // id for storing weight/morphtarget compares compactly
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ include(bugsplat)
|
|||
include(Linking)
|
||||
include(Boost)
|
||||
include(LLSharedLibs)
|
||||
include(JsonCpp)
|
||||
include(Copy3rdPartyLibs)
|
||||
include(ZLIBNG)
|
||||
include(URIPARSER)
|
||||
|
|
@ -195,6 +194,7 @@ set(llcommon_HEADER_FILES
|
|||
llmetrics.h
|
||||
llmetricperformancetester.h
|
||||
llmortician.h
|
||||
llmutex.h
|
||||
llnametable.h
|
||||
llpointer.h
|
||||
llprofiler.h
|
||||
|
|
@ -315,7 +315,6 @@ target_link_libraries(
|
|||
llcommon
|
||||
ll::apr
|
||||
ll::expat
|
||||
ll::jsoncpp
|
||||
ll::zlib-ng
|
||||
ll::boost
|
||||
ll::uriparser
|
||||
|
|
|
|||
|
|
@ -292,10 +292,10 @@ public:
|
|||
free(m_szSymPath);
|
||||
m_szSymPath = NULL;
|
||||
}
|
||||
BOOL Init(LPCSTR szSymPath)
|
||||
bool Init(LPCSTR szSymPath)
|
||||
{
|
||||
if (m_parent == NULL)
|
||||
return FALSE;
|
||||
return false;
|
||||
// Dynamically load the Entry-Points for dbghelp.dll:
|
||||
// First try to load the newsest one from
|
||||
TCHAR szTemp[4096];
|
||||
|
|
@ -364,7 +364,7 @@ public:
|
|||
if (m_hDbhHelp == NULL) // if not already loaded, try to load a default-one
|
||||
m_hDbhHelp = LoadLibrary( _T("dbghelp.dll") );
|
||||
if (m_hDbhHelp == NULL)
|
||||
return FALSE;
|
||||
return false;
|
||||
pSI = (tSI) GetProcAddress(m_hDbhHelp, "SymInitialize" );
|
||||
pSC = (tSC) GetProcAddress(m_hDbhHelp, "SymCleanup" );
|
||||
|
||||
|
|
@ -388,7 +388,7 @@ public:
|
|||
FreeLibrary(m_hDbhHelp);
|
||||
m_hDbhHelp = NULL;
|
||||
pSC = NULL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// SymInitialize
|
||||
|
|
@ -415,7 +415,7 @@ public:
|
|||
GetUserNameA(szUserName, &dwSize);
|
||||
this->m_parent->OnSymInit(buf, symOptions, szUserName);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
StackWalker *m_parent;
|
||||
|
|
@ -555,7 +555,7 @@ private:
|
|||
typedef MODULEENTRY32 * LPMODULEENTRY32;
|
||||
#pragma pack( pop )
|
||||
|
||||
BOOL GetModuleListTH32(HANDLE hProcess, DWORD pid)
|
||||
bool GetModuleListTH32(HANDLE hProcess, DWORD pid)
|
||||
{
|
||||
// CreateToolhelp32Snapshot()
|
||||
typedef HANDLE (__stdcall *tCT32S)(DWORD dwFlags, DWORD th32ProcessID);
|
||||
|
|
@ -592,13 +592,13 @@ private:
|
|||
}
|
||||
|
||||
if (hToolhelp == NULL)
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
hSnap = pCT32S( TH32CS_SNAPMODULE, pid );
|
||||
if (hSnap == (HANDLE) -1)
|
||||
{
|
||||
FreeLibrary(hToolhelp);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
keepGoing = !!pM32F( hSnap, &me );
|
||||
|
|
@ -612,8 +612,8 @@ private:
|
|||
CloseHandle(hSnap);
|
||||
FreeLibrary(hToolhelp);
|
||||
if (cnt <= 0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
return false;
|
||||
return true;
|
||||
} // GetModuleListTH32
|
||||
|
||||
// **************************************** PSAPI ************************
|
||||
|
|
@ -623,7 +623,7 @@ private:
|
|||
LPVOID EntryPoint;
|
||||
} MODULEINFO, *LPMODULEINFO;
|
||||
|
||||
BOOL GetModuleListPSAPI(HANDLE hProcess)
|
||||
bool GetModuleListPSAPI(HANDLE hProcess)
|
||||
{
|
||||
// EnumProcessModules()
|
||||
typedef BOOL (__stdcall *tEPM)(HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded );
|
||||
|
|
@ -652,7 +652,7 @@ private:
|
|||
|
||||
hPsapi = LoadLibrary( _T("psapi.dll") );
|
||||
if (hPsapi == NULL)
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
pEPM = (tEPM) GetProcAddress( hPsapi, "EnumProcessModules" );
|
||||
pGMFNE = (tGMFNE) GetProcAddress( hPsapi, "GetModuleFileNameExA" );
|
||||
|
|
@ -662,7 +662,7 @@ private:
|
|||
{
|
||||
// we couldn't find all functions
|
||||
FreeLibrary(hPsapi);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
hMods = (HMODULE*) malloc(sizeof(HMODULE) * (TTBUFLEN / sizeof(HMODULE)));
|
||||
|
|
@ -797,7 +797,7 @@ private:
|
|||
return result;
|
||||
}
|
||||
public:
|
||||
BOOL LoadModules(HANDLE hProcess, DWORD dwProcessId)
|
||||
bool LoadModules(HANDLE hProcess, DWORD dwProcessId)
|
||||
{
|
||||
// first try toolhelp32
|
||||
if (GetModuleListTH32(hProcess, dwProcessId))
|
||||
|
|
@ -807,13 +807,13 @@ public:
|
|||
}
|
||||
|
||||
|
||||
BOOL GetModuleInfo(HANDLE hProcess, DWORD64 baseAddr, IMAGEHLP_MODULE64_V3 *pModuleInfo)
|
||||
bool GetModuleInfo(HANDLE hProcess, DWORD64 baseAddr, IMAGEHLP_MODULE64_V3 *pModuleInfo)
|
||||
{
|
||||
memset(pModuleInfo, 0, sizeof(IMAGEHLP_MODULE64_V3));
|
||||
if(this->pSGMI == NULL)
|
||||
{
|
||||
SetLastError(ERROR_DLL_INIT_FAILED);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
// First try to use the larger ModuleInfo-Structure
|
||||
pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V3);
|
||||
|
|
@ -821,7 +821,7 @@ public:
|
|||
if (pData == NULL)
|
||||
{
|
||||
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
memcpy(pData, pModuleInfo, sizeof(IMAGEHLP_MODULE64_V3));
|
||||
static bool s_useV3Version = true;
|
||||
|
|
@ -833,7 +833,7 @@ public:
|
|||
memcpy(pModuleInfo, pData, sizeof(IMAGEHLP_MODULE64_V3));
|
||||
pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V3);
|
||||
free(pData);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
s_useV3Version = false; // to prevent unneccessarry calls with the larger struct...
|
||||
}
|
||||
|
|
@ -847,11 +847,11 @@ public:
|
|||
memcpy(pModuleInfo, pData, sizeof(IMAGEHLP_MODULE64_V2));
|
||||
pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V2);
|
||||
free(pData);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
free(pData);
|
||||
SetLastError(ERROR_DLL_INIT_FAILED);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -860,7 +860,7 @@ StackWalker::StackWalker(DWORD dwProcessId, HANDLE hProcess)
|
|||
{
|
||||
this->m_verbose = true;
|
||||
this->m_options = OptionsAll;
|
||||
this->m_modulesLoaded = FALSE;
|
||||
this->m_modulesLoaded = false;
|
||||
this->m_hProcess = hProcess;
|
||||
this->m_sw = new StackWalkerInternal(this, this->m_hProcess);
|
||||
this->m_dwProcessId = dwProcessId;
|
||||
|
|
@ -871,7 +871,7 @@ StackWalker::StackWalker(bool verbose, int options, LPCSTR szSymPath, DWORD dwPr
|
|||
{
|
||||
this->m_verbose = verbose;
|
||||
this->m_options = options;
|
||||
this->m_modulesLoaded = FALSE;
|
||||
this->m_modulesLoaded = false;
|
||||
this->m_hProcess = hProcess;
|
||||
this->m_sw = new StackWalkerInternal(this, this->m_hProcess);
|
||||
this->m_dwProcessId = dwProcessId;
|
||||
|
|
@ -895,15 +895,15 @@ StackWalker::~StackWalker()
|
|||
this->m_sw = NULL;
|
||||
}
|
||||
|
||||
BOOL StackWalker::LoadModules()
|
||||
bool StackWalker::LoadModules()
|
||||
{
|
||||
if (this->m_sw == NULL)
|
||||
{
|
||||
SetLastError(ERROR_DLL_INIT_FAILED);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if (m_modulesLoaded != FALSE)
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
// Build the sym-path:
|
||||
char *szSymPath = NULL;
|
||||
|
|
@ -914,7 +914,7 @@ BOOL StackWalker::LoadModules()
|
|||
if (szSymPath == NULL)
|
||||
{
|
||||
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
szSymPath[0] = 0;
|
||||
// Now first add the (optional) provided sympath:
|
||||
|
|
@ -994,18 +994,18 @@ BOOL StackWalker::LoadModules()
|
|||
} // if SymBuildPath
|
||||
|
||||
// First Init the whole stuff...
|
||||
BOOL bRet = this->m_sw->Init(szSymPath);
|
||||
bool bRet = this->m_sw->Init(szSymPath);
|
||||
if (szSymPath != NULL) free(szSymPath); szSymPath = NULL;
|
||||
if (bRet == FALSE)
|
||||
if (!bRet)
|
||||
{
|
||||
this->OnDbgHelpErr("Error while initializing dbghelp.dll", 0, 0);
|
||||
SetLastError(ERROR_DLL_INIT_FAILED);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
bRet = this->m_sw->LoadModules(this->m_hProcess, this->m_dwProcessId);
|
||||
if (bRet != FALSE)
|
||||
m_modulesLoaded = TRUE;
|
||||
if (bRet)
|
||||
m_modulesLoaded = true;
|
||||
return bRet;
|
||||
}
|
||||
|
||||
|
|
@ -1017,7 +1017,7 @@ BOOL StackWalker::LoadModules()
|
|||
static StackWalker::PReadProcessMemoryRoutine s_readMemoryFunction = NULL;
|
||||
static LPVOID s_readMemoryFunction_UserData = NULL;
|
||||
|
||||
BOOL StackWalker::ShowCallstack(bool verbose, HANDLE hThread, const CONTEXT *context, PReadProcessMemoryRoutine readMemoryFunction, LPVOID pUserData)
|
||||
bool StackWalker::ShowCallstack(bool verbose, HANDLE hThread, const CONTEXT *context, PReadProcessMemoryRoutine readMemoryFunction, LPVOID pUserData)
|
||||
{
|
||||
m_verbose = verbose;
|
||||
CONTEXT c;
|
||||
|
|
@ -1029,13 +1029,13 @@ BOOL StackWalker::ShowCallstack(bool verbose, HANDLE hThread, const CONTEXT *con
|
|||
bool bLastEntryCalled = true;
|
||||
int curRecursionCount = 0;
|
||||
|
||||
if (m_modulesLoaded == FALSE)
|
||||
if (!m_modulesLoaded)
|
||||
this->LoadModules(); // ignore the result...
|
||||
|
||||
if (this->m_sw->m_hDbhHelp == NULL)
|
||||
{
|
||||
SetLastError(ERROR_DLL_INIT_FAILED);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
s_readMemoryFunction = readMemoryFunction;
|
||||
|
|
@ -1062,7 +1062,7 @@ BOOL StackWalker::ShowCallstack(bool verbose, HANDLE hThread, const CONTEXT *con
|
|||
if (GetThreadContext(hThread, &c) == FALSE)
|
||||
{
|
||||
ResumeThread(hThread);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1256,13 +1256,13 @@ BOOL StackWalker::ShowCallstack(bool verbose, HANDLE hThread, const CONTEXT *con
|
|||
cleanup:
|
||||
if (pSym) free( pSym );
|
||||
|
||||
if (bLastEntryCalled == false)
|
||||
if (!bLastEntryCalled)
|
||||
this->OnCallstackEntry(lastEntry, csEntry);
|
||||
|
||||
if (context == NULL)
|
||||
ResumeThread(hThread);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL __stdcall StackWalker::myReadProcMem(
|
||||
|
|
|
|||
|
|
@ -112,9 +112,9 @@ public:
|
|||
LPVOID pUserData // optional data, which was passed in "ShowCallstack"
|
||||
);
|
||||
|
||||
BOOL LoadModules();
|
||||
bool LoadModules();
|
||||
|
||||
BOOL ShowCallstack(
|
||||
bool ShowCallstack(
|
||||
bool verbose,
|
||||
HANDLE hThread = GetCurrentThread(),
|
||||
const CONTEXT *context = NULL,
|
||||
|
|
@ -159,7 +159,7 @@ protected:
|
|||
StackWalkerInternal *m_sw;
|
||||
HANDLE m_hProcess;
|
||||
DWORD m_dwProcessId;
|
||||
BOOL m_modulesLoaded;
|
||||
bool m_modulesLoaded;
|
||||
LPSTR m_szSymPath;
|
||||
|
||||
bool m_verbose;
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@
|
|||
* signatures.
|
||||
*/
|
||||
template <typename FTYPE>
|
||||
inline BOOL is_approx_equal_fraction_impl(FTYPE x, FTYPE y, U32 frac_bits)
|
||||
inline bool is_approx_equal_fraction_impl(FTYPE x, FTYPE y, U32 frac_bits)
|
||||
{
|
||||
BOOL ret = TRUE;
|
||||
bool ret = true;
|
||||
FTYPE diff = (FTYPE) fabs(x - y);
|
||||
|
||||
S32 diffInt = (S32) diff;
|
||||
|
|
@ -58,20 +58,20 @@ inline BOOL is_approx_equal_fraction_impl(FTYPE x, FTYPE y, U32 frac_bits)
|
|||
// based on the number of bits used for packing decimal portion.
|
||||
if (diffInt != 0 || diffFracTolerance > 1)
|
||||
{
|
||||
ret = FALSE;
|
||||
ret = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// F32 flavor
|
||||
inline BOOL is_approx_equal_fraction(F32 x, F32 y, U32 frac_bits)
|
||||
inline bool is_approx_equal_fraction(F32 x, F32 y, U32 frac_bits)
|
||||
{
|
||||
return is_approx_equal_fraction_impl<F32>(x, y, frac_bits);
|
||||
}
|
||||
|
||||
/// F64 flavor
|
||||
inline BOOL is_approx_equal_fraction(F64 x, F64 y, U32 frac_bits)
|
||||
inline bool is_approx_equal_fraction(F64 x, F64 y, U32 frac_bits)
|
||||
{
|
||||
return is_approx_equal_fraction_impl<F64>(x, y, frac_bits);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,15 +52,7 @@
|
|||
|
||||
//
|
||||
// Signal handling
|
||||
//
|
||||
// Windows uses structured exceptions, so it's handled a bit differently.
|
||||
//
|
||||
#if LL_WINDOWS
|
||||
#include "windows.h"
|
||||
|
||||
LONG WINAPI default_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop);
|
||||
BOOL ConsoleCtrlHandler(DWORD fdwCtrlType);
|
||||
#else
|
||||
#ifndef LL_WINDOWS
|
||||
# include <signal.h>
|
||||
# include <unistd.h> // for fork()
|
||||
void setup_signals();
|
||||
|
|
@ -87,18 +79,18 @@ S32 LL_HEARTBEAT_SIGNAL = SIGUSR2;
|
|||
S32 LL_SMACKDOWN_SIGNAL = (SIGRTMAX >= 0) ? (SIGRTMAX-1) : SIGUSR1;
|
||||
S32 LL_HEARTBEAT_SIGNAL = (SIGRTMAX >= 0) ? (SIGRTMAX-0) : SIGUSR2;
|
||||
# endif // LL_DARWIN
|
||||
#endif // LL_WINDOWS
|
||||
#endif // !LL_WINDOWS
|
||||
|
||||
// the static application instance
|
||||
LLApp* LLApp::sApplication = NULL;
|
||||
|
||||
// Allows the generation of core files for post mortem under gdb
|
||||
// and disables crashlogger
|
||||
BOOL LLApp::sDisableCrashlogger = FALSE;
|
||||
bool LLApp::sDisableCrashlogger = false;
|
||||
|
||||
// Local flag for whether or not to do logging in signal handlers.
|
||||
//static
|
||||
BOOL LLApp::sLogInSignal = FALSE;
|
||||
bool LLApp::sLogInSignal = false;
|
||||
|
||||
// static
|
||||
// Keeps track of application status
|
||||
|
|
@ -326,33 +318,6 @@ void LLApp::stepFrame()
|
|||
mRunner.run();
|
||||
}
|
||||
|
||||
#if LL_WINDOWS
|
||||
//The following code is needed for 32-bit apps on 64-bit windows to keep it from eating
|
||||
//crashes. It is a lovely undocumented 'feature' in SP1 of Windows 7. An excellent
|
||||
//in-depth article on the issue may be found here: http://randomascii.wordpress.com/2012/07/05/when-even-crashing-doesn-work/
|
||||
void EnableCrashingOnCrashes()
|
||||
{
|
||||
typedef BOOL (WINAPI *tGetPolicy)(LPDWORD lpFlags);
|
||||
typedef BOOL (WINAPI *tSetPolicy)(DWORD dwFlags);
|
||||
const DWORD EXCEPTION_SWALLOWING = 0x1;
|
||||
|
||||
HMODULE kernel32 = LoadLibraryA("kernel32.dll");
|
||||
tGetPolicy pGetPolicy = (tGetPolicy)GetProcAddress(kernel32,
|
||||
"GetProcessUserModeExceptionPolicy");
|
||||
tSetPolicy pSetPolicy = (tSetPolicy)GetProcAddress(kernel32,
|
||||
"SetProcessUserModeExceptionPolicy");
|
||||
if (pGetPolicy && pSetPolicy)
|
||||
{
|
||||
DWORD dwFlags;
|
||||
if (pGetPolicy(&dwFlags))
|
||||
{
|
||||
// Turn off the filter
|
||||
pSetPolicy(dwFlags & ~EXCEPTION_SWALLOWING);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void LLApp::setupErrorHandling(bool second_instance)
|
||||
{
|
||||
// Error handling is done by starting up an error handling thread, which just sleeps and
|
||||
|
|
@ -509,13 +474,13 @@ bool LLApp::isExiting()
|
|||
|
||||
void LLApp::disableCrashlogger()
|
||||
{
|
||||
sDisableCrashlogger = TRUE;
|
||||
sDisableCrashlogger = true;
|
||||
}
|
||||
|
||||
// static
|
||||
bool LLApp::isCrashloggerDisabled()
|
||||
{
|
||||
return (sDisableCrashlogger == TRUE);
|
||||
return sDisableCrashlogger;
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -528,77 +493,7 @@ int LLApp::getPid()
|
|||
#endif
|
||||
}
|
||||
|
||||
#if LL_WINDOWS
|
||||
LONG WINAPI default_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop)
|
||||
{
|
||||
// Translate the signals/exceptions into cross-platform stuff
|
||||
// Windows implementation
|
||||
|
||||
// Make sure the user sees something to indicate that the app crashed.
|
||||
LONG retval;
|
||||
|
||||
if (LLApp::isError())
|
||||
{
|
||||
LL_WARNS() << "Got another fatal signal while in the error handler, die now!" << LL_ENDL;
|
||||
retval = EXCEPTION_EXECUTE_HANDLER;
|
||||
return retval;
|
||||
}
|
||||
|
||||
// Flag status to error, so thread_error starts its work
|
||||
LLApp::setError();
|
||||
|
||||
// Block in the exception handler until the app has stopped
|
||||
// This is pretty sketchy, but appears to work just fine
|
||||
while (!LLApp::isStopped())
|
||||
{
|
||||
ms_sleep(10);
|
||||
}
|
||||
|
||||
//
|
||||
// Generate a minidump if we can.
|
||||
//
|
||||
// TODO: This needs to be ported over form the viewer-specific
|
||||
// LLWinDebug class
|
||||
|
||||
//
|
||||
// At this point, we always want to exit the app. There's no graceful
|
||||
// recovery for an unhandled exception.
|
||||
//
|
||||
// Just kill the process.
|
||||
retval = EXCEPTION_EXECUTE_HANDLER;
|
||||
return retval;
|
||||
}
|
||||
|
||||
// Win32 doesn't support signals. This is used instead.
|
||||
BOOL ConsoleCtrlHandler(DWORD fdwCtrlType)
|
||||
{
|
||||
switch (fdwCtrlType)
|
||||
{
|
||||
case CTRL_BREAK_EVENT:
|
||||
case CTRL_LOGOFF_EVENT:
|
||||
case CTRL_SHUTDOWN_EVENT:
|
||||
case CTRL_CLOSE_EVENT: // From end task or the window close button.
|
||||
case CTRL_C_EVENT: // from CTRL-C on the keyboard
|
||||
// Just set our state to quitting, not error
|
||||
if (LLApp::isQuitting() || LLApp::isError())
|
||||
{
|
||||
// We're already trying to die, just ignore this signal
|
||||
if (LLApp::sLogInSignal)
|
||||
{
|
||||
LL_INFOS() << "Signal handler - Already trying to quit, ignoring signal!" << LL_ENDL;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
LLApp::setQuitting();
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
#else //!LL_WINDOWS
|
||||
|
||||
#ifndef LL_WINDOWS
|
||||
void setup_signals()
|
||||
{
|
||||
//
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ protected:
|
|||
|
||||
static void setStatus(EAppStatus status); // Use this to change the application status.
|
||||
static LLScalarCond<EAppStatus> sStatus; // Reflects current application status
|
||||
static BOOL sDisableCrashlogger; // Let the OS handle crashes for us.
|
||||
static bool sDisableCrashlogger; // Let the OS handle crashes for us.
|
||||
std::wstring mCrashReportPipeStr; //Name of pipe to use for crash reporting.
|
||||
|
||||
std::string mDumpPath; //output path for google breakpad. Dependency workaround.
|
||||
|
|
@ -336,7 +336,7 @@ private:
|
|||
#endif
|
||||
|
||||
public:
|
||||
static BOOL sLogInSignal;
|
||||
static bool sLogInSignal;
|
||||
};
|
||||
|
||||
#endif // LL_LLAPP_H
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ void ll_init_apr()
|
|||
|
||||
if(!LLAPRFile::sAPRFilePoolp)
|
||||
{
|
||||
LLAPRFile::sAPRFilePoolp = new LLVolatileAPRPool(FALSE) ;
|
||||
LLAPRFile::sAPRFilePoolp = new LLVolatileAPRPool(false) ;
|
||||
}
|
||||
|
||||
gAPRInitialized = true;
|
||||
|
|
@ -91,7 +91,7 @@ void ll_cleanup_apr()
|
|||
//
|
||||
//LLAPRPool
|
||||
//
|
||||
LLAPRPool::LLAPRPool(apr_pool_t *parent, apr_size_t size, BOOL releasePoolFlag)
|
||||
LLAPRPool::LLAPRPool(apr_pool_t *parent, apr_size_t size, bool releasePoolFlag)
|
||||
: mParent(parent),
|
||||
mReleasePoolFlag(releasePoolFlag),
|
||||
mMaxSize(size),
|
||||
|
|
@ -145,14 +145,14 @@ apr_pool_t* LLAPRPool::getAPRPool()
|
|||
return mPool ;
|
||||
}
|
||||
|
||||
LLVolatileAPRPool::LLVolatileAPRPool(BOOL is_local, apr_pool_t *parent, apr_size_t size, BOOL releasePoolFlag)
|
||||
LLVolatileAPRPool::LLVolatileAPRPool(bool is_local, apr_pool_t *parent, apr_size_t size, bool releasePoolFlag)
|
||||
: LLAPRPool(parent, size, releasePoolFlag),
|
||||
mNumActiveRef(0),
|
||||
mNumTotalRef(0)
|
||||
{
|
||||
//create mutex
|
||||
|
||||
// <FS:ND> Crashfix/FIRE-4090/FIRE-4820: is_local is default to TRUE. And of today (2012-07-15) all instances of LLVolatileAPRPool seem
|
||||
// <FS:ND> Crashfix/FIRE-4090/FIRE-4820: is_local is default to true. And of today (2012-07-15) all instances of LLVolatileAPRPool seem
|
||||
// to be created just using this default argument.
|
||||
// Using apr_os_thread_current and apr_os_thread_equal it appears that there are pools that get access from different threads nonetheless.
|
||||
// This would explain why mNumActiveRef sometimes gets garbled.
|
||||
|
|
@ -229,7 +229,7 @@ void LLVolatileAPRPool::clearVolatileAPRPool()
|
|||
llassert(mNumTotalRef <= (FULL_VOLATILE_APR_POOL << 2)) ;
|
||||
}
|
||||
|
||||
BOOL LLVolatileAPRPool::isFull()
|
||||
bool LLVolatileAPRPool::isFull()
|
||||
{
|
||||
return mNumTotalRef > FULL_VOLATILE_APR_POOL ;
|
||||
}
|
||||
|
|
@ -395,7 +395,7 @@ apr_status_t LLAPRFile::open(const std::string& filename, apr_int32_t flags, LLV
|
|||
}
|
||||
|
||||
//use gAPRPoolp.
|
||||
apr_status_t LLAPRFile::open(const std::string& filename, apr_int32_t flags, BOOL use_global_pool)
|
||||
apr_status_t LLAPRFile::open(const std::string& filename, apr_int32_t flags, bool use_global_pool)
|
||||
{
|
||||
apr_status_t s;
|
||||
|
||||
|
|
@ -581,7 +581,7 @@ S32 LLAPRFile::readEx(const std::string& filename, void *buf, S32 offset, S32 nb
|
|||
}
|
||||
|
||||
//static
|
||||
S32 LLAPRFile::writeEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool)
|
||||
S32 LLAPRFile::writeEx(const std::string& filename, const void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
apr_int32_t flags = APR_CREATE|APR_WRITE|APR_BINARY;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ bool LL_COMMON_API ll_apr_is_initialized();
|
|||
class LL_COMMON_API LLAPRPool
|
||||
{
|
||||
public:
|
||||
LLAPRPool(apr_pool_t *parent = NULL, apr_size_t size = 0, BOOL releasePoolFlag = TRUE) ;
|
||||
LLAPRPool(apr_pool_t *parent = NULL, apr_size_t size = 0, bool releasePoolFlag = true) ;
|
||||
virtual ~LLAPRPool() ;
|
||||
|
||||
virtual apr_pool_t* getAPRPool() ;
|
||||
|
|
@ -93,7 +93,7 @@ protected:
|
|||
apr_pool_t* mParent ; //parent pool
|
||||
apr_size_t mMaxSize ; //max size of mPool, mPool should return memory to system if allocated memory beyond this limit. However it seems not to work.
|
||||
apr_status_t mStatus ; //status when creating the pool
|
||||
BOOL mReleasePoolFlag ; //if set, mPool is destroyed when LLAPRPool is deleted. default value is true.
|
||||
bool mReleasePoolFlag ; //if set, mPool is destroyed when LLAPRPool is deleted. default value is true.
|
||||
};
|
||||
|
||||
//
|
||||
|
|
@ -104,14 +104,14 @@ protected:
|
|||
class LL_COMMON_API LLVolatileAPRPool : public LLAPRPool
|
||||
{
|
||||
public:
|
||||
LLVolatileAPRPool(BOOL is_local = TRUE, apr_pool_t *parent = NULL, apr_size_t size = 0, BOOL releasePoolFlag = TRUE);
|
||||
LLVolatileAPRPool(bool is_local = true, apr_pool_t *parent = NULL, apr_size_t size = 0, bool releasePoolFlag = true);
|
||||
virtual ~LLVolatileAPRPool();
|
||||
|
||||
/*virtual*/ apr_pool_t* getAPRPool() ; //define this virtual function to avoid any mistakenly calling LLAPRPool::getAPRPool().
|
||||
apr_pool_t* getVolatileAPRPool() ;
|
||||
void clearVolatileAPRPool() ;
|
||||
|
||||
BOOL isFull() ;
|
||||
bool isFull() ;
|
||||
|
||||
private:
|
||||
S32 mNumActiveRef ; //number of active pointers pointing to the apr_pool.
|
||||
|
|
@ -162,7 +162,7 @@ public:
|
|||
~LLAPRFile() ;
|
||||
|
||||
apr_status_t open(const std::string& filename, apr_int32_t flags, LLVolatileAPRPool* pool = NULL, S32* sizep = NULL);
|
||||
apr_status_t open(const std::string& filename, apr_int32_t flags, BOOL use_global_pool); //use gAPRPoolp.
|
||||
apr_status_t open(const std::string& filename, apr_int32_t flags, bool use_global_pool); //use gAPRPoolp.
|
||||
apr_status_t close() ;
|
||||
|
||||
// Returns actual offset, -1 if seek fails
|
||||
|
|
@ -199,7 +199,7 @@ public:
|
|||
|
||||
// Returns bytes read/written, 0 if read/write fails:
|
||||
static S32 readEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool = NULL);
|
||||
static S32 writeEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool = NULL); // offset<0 means append
|
||||
static S32 writeEx(const std::string& filename, const void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool = NULL); // offset<0 means append
|
||||
//*******************************************************************************************************************************
|
||||
};
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue