Merge branch 'master' of https://bitbucket.org/Ansariel/phoenix-firestorm-gltf-development
# Conflicts: # indra/newview/llimview.h # indra/newview/llpanelpeople.h # indra/newview/llpanelvoicedevicesettings.cpp # indra/newview/llvoavatar.cpp # indra/newview/llvoavatar.h # indra/newview/llvoicechannel.cpp # indra/newview/llvoicechannel.h # indra/newview/llvoiceclient.cpp # indra/newview/llvoiceclient.h # indra/newview/llvoicevivox.cpp # indra/newview/llvoicevivox.hmaster
commit
e33d2fad5f
|
|
@ -0,0 +1,9 @@
|
|||
# Replace tabs with spaces
|
||||
1b68f71348ecf3983b76b40d7940da8377f049b7
|
||||
# Trim trailing whitespace
|
||||
a0b3021bdcf76859054fda8e30abb3ed47749e83
|
||||
8444cd9562a6a7b755fcb075864e205122354192
|
||||
# Wrong line endings
|
||||
1b67dd855c41f5a0cda7ec2a68d98071986ca703
|
||||
6cc7dd09d5e69cf57e6de7fb568a0ad2693f9c9a
|
||||
e2e37cced861b98de8c1a7c9c0d3a50d2d90e433
|
||||
|
|
@ -33,3 +33,6 @@ FILES_ARE_UNICODE_UTF-16LE.txt text eol=crlf
|
|||
|
||||
# Windows Manifest files
|
||||
*.manifest text eol=crlf
|
||||
|
||||
# Windows Installer Script files (normalization disabled)
|
||||
*.nsi -text
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
llappearance:
|
||||
- indra/llappearance/**/*
|
||||
|
||||
|
||||
llaudio:
|
||||
- indra/llaudio/**/*
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
name: Stale PRs
|
||||
name: Stale PRs
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
repos:
|
||||
- repo: https://github.com/secondlife/git-hooks.git
|
||||
- repo: https://github.com/secondlife/git-hooks.git
|
||||
rev: v1.0.2
|
||||
hooks:
|
||||
- id: opensource-license
|
||||
|
|
@ -16,3 +16,5 @@ repos:
|
|||
hooks:
|
||||
- id: check-xml
|
||||
- id: mixed-line-ending
|
||||
- id: trailing-whitespace
|
||||
files: \.(cpp|c|h|inl|py|glsl|cmake|yaml|sh)$
|
||||
|
|
|
|||
238
autobuild.xml
238
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>
|
||||
|
|
@ -1131,63 +1131,47 @@
|
|||
<key>description</key>
|
||||
<string>glh - is a platform-indepenedent C++ OpenGL helper library</string>
|
||||
</map>
|
||||
<key>googlemock</key>
|
||||
<key>glm</key>
|
||||
<map>
|
||||
<key>canonical_repo</key>
|
||||
<string>https://github.com/secondlife/3p-glm</string>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2005 - G-Truc Creation</string>
|
||||
<key>description</key>
|
||||
<string>OpenGL Mathematics</string>
|
||||
<key>license</key>
|
||||
<string>MIT</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/glm_license.txt</string>
|
||||
<key>name</key>
|
||||
<string>glm</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin64</key>
|
||||
<key>common</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>dce3174b12136746f5f910e311e895c1b47bf8fb</string>
|
||||
<string>353ae3a560143732503a8e14499ae12db1e66056</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>
|
||||
<string>https://github.com/secondlife/3p-glm/releases/download/v1.0.1-r1/glm-v1.0.1-common-9066386153.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>
|
||||
<string>common</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>source_type</key>
|
||||
<string>git</string>
|
||||
<key>vcs_branch</key>
|
||||
<string>refs/tags/v1.0.1-r1</string>
|
||||
<key>vcs_revision</key>
|
||||
<string>399cd5ba57a9267a560ce07e50a0f8c5fe3dc66f</string>
|
||||
<key>vcs_url</key>
|
||||
<string>git://github.com/secondlife/3p-glm.git</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>
|
||||
<string>v1.0.1</string>
|
||||
</map>
|
||||
<key>havok-source</key>
|
||||
<map>
|
||||
|
|
@ -1369,66 +1353,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>
|
||||
|
|
@ -1802,6 +1726,14 @@
|
|||
</map>
|
||||
<key>llphysicsextensions_source</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2010, Linden Research, Inc.</string>
|
||||
<key>license</key>
|
||||
<string>internal</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/llphysicsextensions.txt</string>
|
||||
<key>name</key>
|
||||
<string>llphysicsextensions_source</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin64</key>
|
||||
|
|
@ -1811,11 +1743,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>b037cc0b29ea70ee834cfae6dda5b7a25cd57174</string>
|
||||
<string>755a3de464149ae88b048f976828a8c0c46e3bdb</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851460</string>
|
||||
<string>https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/172966323</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -1827,11 +1759,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>bdea1fd5c4da9da5afde088d16188b45d0853e04</string>
|
||||
<string>813e7b5e294d7958e3d69e2252752ff346953b0c</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851461</string>
|
||||
<string>https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/172966322</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1843,26 +1775,18 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>f652ce0d6aef864689f0ed44255da4d9cd65a43f</string>
|
||||
<string>67f647538b1b49d0152fd9d03cfb9bdf978e33d1</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851463</string>
|
||||
<string>https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/172966328</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>internal</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/llphysicsextensions.txt</string>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2010, Linden Research, Inc.</string>
|
||||
<key>version</key>
|
||||
<string>1.0.479d20a</string>
|
||||
<key>name</key>
|
||||
<string>llphysicsextensions_source</string>
|
||||
<string>1.0.b8b1f73</string>
|
||||
</map>
|
||||
<key>llphysicsextensions_stub</key>
|
||||
<map>
|
||||
|
|
@ -2427,18 +2351,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>
|
||||
|
|
@ -2448,42 +2396,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>
|
||||
|
|
|
|||
12
build.sh
12
build.sh
|
|
@ -199,14 +199,14 @@ package_llphysicsextensions_tpv()
|
|||
tpv_status=0
|
||||
# nat 2016-12-21: without HAVOK, can't build PhysicsExtensions_TPV.
|
||||
if [ "$variant" = "Release" -a "${HAVOK:-}" != "OFF" ]
|
||||
then
|
||||
then
|
||||
tpvconfig="$build_dir/packages/llphysicsextensions/autobuild-tpv.xml"
|
||||
test -r "$tpvconfig" || fatal "No llphysicsextensions_tpv autobuild configuration found"
|
||||
# SL-19942: autobuild ignores -c switch if AUTOBUILD_CONFIGURATION set
|
||||
unset AUTOBUILD_CONFIGURATION
|
||||
"$autobuild" build --quiet --config-file "$(native_path "$tpvconfig")" -c Tpv \
|
||||
|| fatal "failed to build llphysicsextensions_tpv"
|
||||
|
||||
|
||||
# capture the package file name for use in upload later...
|
||||
PKGTMP=`mktemp -t pgktpv.XXXXXX`
|
||||
cleanup="$cleanup ; rm $PKGTMP* 2>/dev/null"
|
||||
|
|
@ -239,7 +239,7 @@ build()
|
|||
|| fatal "failed building $variant"
|
||||
echo true >"$build_dir"/build_ok
|
||||
end_section "autobuild $variant"
|
||||
|
||||
|
||||
begin_section "extensions $variant"
|
||||
# Run build extensions
|
||||
if [ -d ${build_dir}/packages/build-extensions ]
|
||||
|
|
@ -312,7 +312,7 @@ begin_section "select viewer channel"
|
|||
# Look for a branch-specific viewer_channel setting
|
||||
# changeset_branch is set in the sling-buildscripts
|
||||
viewer_build_branch=$(echo -n "${changeset_branch:-$(repo_branch ${BUILDSCRIPTS_SRC:-$(pwd)})}" | tr -Cs 'A-Za-z0-9_' '_' | sed -E 's/^_+//; s/_+$//')
|
||||
if [ -n "$viewer_build_branch" ]
|
||||
if [ -n "$viewer_build_branch" ]
|
||||
then
|
||||
branch_viewer_channel_var="${viewer_build_branch}_viewer_channel"
|
||||
if [ -n "${!branch_viewer_channel_var}" ]
|
||||
|
|
@ -434,7 +434,7 @@ do
|
|||
record_event "configure for $variant failed: build skipped"
|
||||
fi
|
||||
|
||||
if ! $succeeded
|
||||
if ! $succeeded
|
||||
then
|
||||
record_event "remaining variants skipped due to $variant failure"
|
||||
break
|
||||
|
|
@ -496,7 +496,7 @@ then
|
|||
fi
|
||||
done
|
||||
end_section "Upload Debian Repository"
|
||||
|
||||
|
||||
else
|
||||
record_event "debian build not enabled"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
# PBR Terrain Appearance
|
||||
|
||||
## Tiling
|
||||
## Tiling Without Texture Transforms
|
||||
|
||||
This section assumes the PBR terrain of the current region and adjacent regions have the default texture transforms.
|
||||
|
||||
The southwest corner of a region with PBR materials should exactly match up with the bottom left corner of the material texture(s).
|
||||
|
||||
If two adjacent regions have the same PBR terrain settings, then:
|
||||
If two adjacent regions have the same PBR terrain settings, then there should not be seams between the two regions at their shared border.
|
||||
|
||||
- There should not be seams between the two regions at their shared border
|
||||
- The ground should not suddenly slide beneath the avatar when moving between regions (except due to movement of the avatar, which is not covered by this test plan)
|
||||
The ground should not suddenly slide beneath the avatar when moving between two PBR terrain regions (except due to movement of the avatar, which is not covered by this test plan)
|
||||
|
||||
## Feature Gating
|
||||
|
||||
|
|
@ -35,3 +36,17 @@ Availability of PBR textures varies by machine and graphics setting:
|
|||
### PBR Alpha
|
||||
|
||||
PBR terrain does not support materials with alpha blend or double-sided. In addition, the viewer does not make any guarantees about what will render behind the terrain if alpha is used.
|
||||
|
||||
## PBR Terrain Texture Transforms
|
||||
|
||||
Like PBR materials on prims, PBR terrain repeats are based on the [KHR\_texture\_transform](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_transform) spec, and thus should be expected to behave the same way.
|
||||
|
||||
The southwest corner of a region, at z=0, is the UV origin for all texture coordinates of the whole region. Unless an offset is also applied, scale and rotation of the terrain texture transforms are relative to that point.
|
||||
|
||||
When an avatar faces north and looks down at flat ground, the textures of the materials should appear to face upright, unless a rotation is applied.
|
||||
|
||||
If triplanar mapping is enabled, and an avatar faces an axially-aligned wall, the textures of the materials should appear to face upright, unless a rotation is applied.
|
||||
|
||||
Textures of materials should not appear mirrored.
|
||||
|
||||
When triplanar mapping is enabled, rotations on the axially aligned walls should apply in the same direction as they would on flat ground.
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ All tests in this section assume the PBR terrain feature flag is enabled, and th
|
|||
|
||||
### Feature Availability
|
||||
|
||||
These features are related to UI, where the Region/Estate floater is opened to the terrain Tab.
|
||||
|
||||
#### Feature: PBR Terrain
|
||||
|
||||
On the client, the advanced setting `RenderTerrainPBREnabled` is the PBR terrain feature flag.
|
||||
|
||||
The PBR terrain feature flag should be set automatically when logging in/teleporting to a new region.
|
||||
|
|
@ -29,6 +33,24 @@ When the PBR terrain feature flag is enabled:
|
|||
- The "PBR Metallic Roughness" checkbox should be visible
|
||||
- The user should be able to apply PBR terrain or textures to the region, depending on if the "PBR Metallic Roughness" checkbox is checked.
|
||||
|
||||
#### Feature: PBR Terrain Texture Transforms
|
||||
|
||||
On the client, the advanced setting, `RenderTerrainPBRTransformsEnabled` is the PBR terrain texture transform flag. Generally, this feature should not be expected to work correctly unless the PBR terrain feature is also enabled.
|
||||
|
||||
The PBR terrain texture transform flag should be set automatically when logging in/teleporting to a new region.
|
||||
|
||||
- The flag should be enabled on regions where the PBR terrain texture transform feature is enabled
|
||||
- Otherwise the flag should be disabled
|
||||
|
||||
When the PBR terrain texture transform feature is enabled, the UI of the Terrain tab should be overhauled. Availability of features depends on the type of terrain.
|
||||
|
||||
When "PBR Metallic Roughness" is checked:
|
||||
|
||||
- There should be a way for the user to change the texture transforms for the terrain in the current region
|
||||
- For each of the four swatches, the user can change the scale, offset, and rotation of that swatch. Nonuniform scale is allowed
|
||||
|
||||
When "PBR Metallic Roughness" is unchecked, the controls for texture transforms should be hidden.
|
||||
|
||||
### Current Composition Type
|
||||
|
||||
When the Region/Estate floater is opened to the terrain Tab, the current terrain should be shown in the four swatches, and the "PBR Metallic Roughness" checkbox should be checked or unchecked accordingly.
|
||||
|
|
|
|||
|
|
@ -28,10 +28,8 @@ set(cmake_SOURCE_FILES
|
|||
GLEXT.cmake
|
||||
GLH.cmake
|
||||
GLOD.cmake # <FS:Ansariel> Bring back GLOD
|
||||
GoogleMock.cmake
|
||||
Havok.cmake
|
||||
Hunspell.cmake
|
||||
JsonCpp.cmake
|
||||
LLAddBuildTest.cmake
|
||||
LLAppearance.cmake
|
||||
LLAudio.cmake
|
||||
|
|
|
|||
|
|
@ -124,7 +124,6 @@ if(WINDOWS)
|
|||
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
|
||||
endif (MSVC80)
|
||||
|
||||
# <FS:Ansariel> Try using the VC runtime redistributables that came with the VS installation first
|
||||
if (MSVC_TOOLSET_VER AND DEFINED ENV{VCTOOLSREDISTDIR})
|
||||
if(ADDRESS_SIZE EQUAL 32)
|
||||
set(redist_find_path "$ENV{VCTOOLSREDISTDIR}x86\\Microsoft.VC${MSVC_TOOLSET_VER}.CRT")
|
||||
|
|
@ -134,7 +133,6 @@ if(WINDOWS)
|
|||
get_filename_component(redist_path "${redist_find_path}" ABSOLUTE)
|
||||
MESSAGE(STATUS "VC Runtime redist path: ${redist_path}")
|
||||
endif (MSVC_TOOLSET_VER AND DEFINED ENV{VCTOOLSREDISTDIR})
|
||||
# </FS:Ansariel>
|
||||
|
||||
if(ADDRESS_SIZE EQUAL 32)
|
||||
# this folder contains the 32bit DLLs.. (yes really!)
|
||||
|
|
@ -158,14 +156,12 @@ if(WINDOWS)
|
|||
vcruntime${MSVC_VER}.dll
|
||||
vcruntime${MSVC_VER}_1.dll
|
||||
)
|
||||
# <FS:Ansariel> Try using the VC runtime redistributables that came with the VS installation first
|
||||
if(redist_path AND EXISTS "${redist_path}/${release_msvc_file}")
|
||||
MESSAGE(STATUS "Copying redist file from ${redist_path}/${release_msvc_file}")
|
||||
to_staging_dirs(
|
||||
${redist_path}
|
||||
third_party_targets
|
||||
${release_msvc_file})
|
||||
# </FS:Ansariel>
|
||||
elseif(EXISTS "${registry_path}/${release_msvc_file}")
|
||||
MESSAGE(STATUS "Copying redist file from ${registry_path}/${release_msvc_file}")
|
||||
to_staging_dirs(
|
||||
|
|
@ -217,6 +213,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...
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
# -*- cmake -*-
|
||||
include(Prebuilt)
|
||||
|
||||
add_library( ll::glm INTERFACE IMPORTED )
|
||||
|
||||
use_system_binary( glm )
|
||||
use_prebuilt_binary(glm)
|
||||
|
|
@ -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 ()
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@ include(Prebuilt)
|
|||
|
||||
use_prebuilt_binary(tinyexr)
|
||||
|
||||
set(TINYEXR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinyexr)
|
||||
set(TINYEXR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinyexr)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#
|
||||
# Platform variables:
|
||||
#
|
||||
# DARWIN - Mac OS X
|
||||
# DARWIN - macOS
|
||||
# LINUX - Linux
|
||||
# WINDOWS - Windows
|
||||
|
||||
|
|
@ -117,7 +117,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|||
set(FIND_LIBRARY_USE_LIB64_PATHS ON)
|
||||
endif (ADDRESS_SIZE EQUAL 32)
|
||||
|
||||
execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
|
||||
execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
|
||||
RESULT_VARIABLE DPKG_RESULT
|
||||
OUTPUT_VARIABLE DPKG_ARCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
||||
|
|
|
|||
|
|
@ -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.',
|
||||
|
|
@ -537,8 +537,8 @@ class LLManifest(object, metaclass=LLManifestRegistry):
|
|||
return path
|
||||
|
||||
def run_command(self, command, **kwds):
|
||||
"""
|
||||
Runs an external command.
|
||||
"""
|
||||
Runs an external command.
|
||||
Raises ManifestError exception if the command returns a nonzero status.
|
||||
"""
|
||||
print("Running command:", shlex.join(command))
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -70,10 +70,10 @@ public:
|
|||
static void initClass();
|
||||
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();
|
||||
S32 mInitFlags{ 0 };
|
||||
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
|
||||
** **
|
||||
|
|
@ -137,8 +137,8 @@ public:
|
|||
F32 getPelvisToFoot() const { return mPelvisToFoot; }
|
||||
/*virtual*/ LLJoint* getRootJoint() { return mRoot; }
|
||||
|
||||
LLVector3 mHeadOffset; // current head position
|
||||
LLAvatarJoint *mRoot;
|
||||
LLVector3 mHeadOffset{}; // current head position
|
||||
LLAvatarJoint* mRoot{ nullptr };
|
||||
|
||||
// <FS:ND> This map gets queried a huge amount of time.
|
||||
// typedef std::map<std::string, LLJoint*> joint_map_t;
|
||||
|
|
@ -152,7 +152,7 @@ public:
|
|||
joint_state_map_t mCurrBodySizeState;
|
||||
void compareJointStateMaps(joint_state_map_t& last_state,
|
||||
joint_state_map_t& curr_state);
|
||||
void computeBodySize();
|
||||
void computeBodySize();
|
||||
|
||||
public:
|
||||
typedef std::vector<LLAvatarJoint*> avatar_joint_list_t;
|
||||
|
|
@ -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{ false }; // state of deferred character building
|
||||
avatar_joint_list_t mSkeleton;
|
||||
LLVector3OverrideMap mPelvisFixups;
|
||||
joint_alias_map_t mJointAliasMap;
|
||||
|
|
@ -193,30 +193,30 @@ public:
|
|||
LLVector3 mBodySize;
|
||||
LLVector3 mAvatarOffset;
|
||||
protected:
|
||||
F32 mPelvisToFoot;
|
||||
F32 mPelvisToFoot{ 0.f };
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Cached pointers to well known joints
|
||||
//--------------------------------------------------------------------
|
||||
public:
|
||||
LLJoint* mPelvisp;
|
||||
LLJoint* mTorsop;
|
||||
LLJoint* mChestp;
|
||||
LLJoint* mNeckp;
|
||||
LLJoint* mHeadp;
|
||||
LLJoint* mSkullp;
|
||||
LLJoint* mEyeLeftp;
|
||||
LLJoint* mEyeRightp;
|
||||
LLJoint* mHipLeftp;
|
||||
LLJoint* mHipRightp;
|
||||
LLJoint* mKneeLeftp;
|
||||
LLJoint* mKneeRightp;
|
||||
LLJoint* mAnkleLeftp;
|
||||
LLJoint* mAnkleRightp;
|
||||
LLJoint* mFootLeftp;
|
||||
LLJoint* mFootRightp;
|
||||
LLJoint* mWristLeftp;
|
||||
LLJoint* mWristRightp;
|
||||
LLJoint* mPelvisp{nullptr};
|
||||
LLJoint* mTorsop{ nullptr };
|
||||
LLJoint* mChestp{ nullptr };
|
||||
LLJoint* mNeckp{ nullptr };
|
||||
LLJoint* mHeadp{ nullptr };
|
||||
LLJoint* mSkullp{ nullptr };
|
||||
LLJoint* mEyeLeftp{ nullptr };
|
||||
LLJoint* mEyeRightp{ nullptr };
|
||||
LLJoint* mHipLeftp{ nullptr };
|
||||
LLJoint* mHipRightp{ nullptr };
|
||||
LLJoint* mKneeLeftp{ nullptr };
|
||||
LLJoint* mKneeRightp{ nullptr };
|
||||
LLJoint* mAnkleLeftp{ nullptr };
|
||||
LLJoint* mAnkleRightp{ nullptr };
|
||||
LLJoint* mFootLeftp{ nullptr };
|
||||
LLJoint* mFootRightp{ nullptr };
|
||||
LLJoint* mWristLeftp{ nullptr };
|
||||
LLJoint* mWristRightp{ nullptr };
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// XML parse tree
|
||||
|
|
@ -240,14 +240,14 @@ public:
|
|||
** RENDERING
|
||||
**/
|
||||
public:
|
||||
BOOL mIsDummy; // for special views and animated object controllers; local to viewer
|
||||
bool mIsDummy{ false }; // 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,12 +308,12 @@ 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;
|
||||
LLTexGlobalColor* mTexHairColor;
|
||||
LLTexGlobalColor* mTexEyeColor;
|
||||
LLTexGlobalColor* mTexSkinColor{ nullptr };
|
||||
LLTexGlobalColor* mTexHairColor{ nullptr };
|
||||
LLTexGlobalColor* mTexEyeColor{ nullptr };
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Visibility
|
||||
|
|
@ -332,11 +332,11 @@ 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;
|
||||
LLWearableData* mWearableData{ nullptr };
|
||||
|
||||
/********************************************************************************
|
||||
** **
|
||||
|
|
@ -354,11 +354,11 @@ protected:
|
|||
struct BakedTextureData
|
||||
{
|
||||
LLUUID mLastTextureID;
|
||||
LLTexLayerSet* mTexLayerSet; // Only exists for self
|
||||
bool mIsLoaded;
|
||||
bool mIsUsed;
|
||||
LLAvatarAppearanceDefines::ETextureIndex mTextureIndex;
|
||||
U32 mMaskTexName;
|
||||
LLTexLayerSet* mTexLayerSet{ nullptr }; // Only exists for self
|
||||
bool mIsLoaded{ false };
|
||||
bool mIsUsed{ false };
|
||||
LLAvatarAppearanceDefines::ETextureIndex mTextureIndex{ LLAvatarAppearanceDefines::ETextureIndex::TEX_INVALID };
|
||||
U32 mMaskTexName{ 0 };
|
||||
// Stores pointers to the joint meshes that this baked texture deals with
|
||||
avatar_joint_mesh_list_t mJointMeshes;
|
||||
morph_list_t mMaskedMorphs;
|
||||
|
|
@ -375,11 +375,11 @@ protected:
|
|||
// Collision volumes
|
||||
//--------------------------------------------------------------------
|
||||
public:
|
||||
S32 mNumBones;
|
||||
S32 mNumCollisionVolumes;
|
||||
LLAvatarJointCollisionVolume* mCollisionVolumes;
|
||||
S32 mNumBones{ 0 };
|
||||
S32 mNumCollisionVolumes{ 0 };
|
||||
LLAvatarJointCollisionVolume* mCollisionVolumes{ nullptr };
|
||||
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();
|
||||
|
|
@ -435,7 +435,7 @@ const LLVector4a* LLDriverParam::getNextDistortion(U32 *index, LLPolyMesh **po
|
|||
|
||||
S32 LLDriverParam::getDrivenParamsCount() const
|
||||
{
|
||||
return mDriven.size();
|
||||
return static_cast<S32>(mDriven.size());
|
||||
}
|
||||
|
||||
const LLViewerVisualParam* LLDriverParam::getDrivenParam(S32 index) const
|
||||
|
|
@ -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
|
||||
|
|
@ -138,10 +138,10 @@ protected:
|
|||
|
||||
LL_ALIGN_16(LLVector4a mDefaultVec); // temp holder
|
||||
entry_list_t mDriven;
|
||||
LLViewerVisualParam* mCurrentDistortionParam;
|
||||
LLViewerVisualParam* mCurrentDistortionParam{ nullptr };
|
||||
// Backlink only; don't make this an LLPointer.
|
||||
LLAvatarAppearance* mAvatarAppearance;
|
||||
LLWearable* mWearablep;
|
||||
LLAvatarAppearance* mAvatarAppearance{ nullptr };
|
||||
LLWearable* mWearablep{ nullptr };
|
||||
};
|
||||
|
||||
#endif // LL_LLDRIVERPARAM_H
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -109,7 +109,7 @@ LLTexLayer* LLLocalTextureObject::getTexLayer(const std::string &name)
|
|||
|
||||
U32 LLLocalTextureObject::getNumTexLayers() const
|
||||
{
|
||||
return mTexLayers.size();
|
||||
return static_cast<U32>(mTexLayers.size());
|
||||
}
|
||||
|
||||
LLUUID LLLocalTextureObject::getID() const
|
||||
|
|
@ -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)
|
||||
|
|
@ -983,7 +983,7 @@ void LLPolyMesh::initializeForMorph()
|
|||
LLVector4a::memcpyNonAliased16((F32*) mScaledBinormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
|
||||
LLVector4a::memcpyNonAliased16((F32*) mTexCoords, (F32*) mSharedData->mTexCoords, sizeof(LLVector2) * (mSharedData->mNumVertices + mSharedData->mNumVertices%2));
|
||||
|
||||
for (U32 i = 0; i < mSharedData->mNumVertices; ++i)
|
||||
for (S32 i = 0; i < mSharedData->mNumVertices; ++i)
|
||||
{
|
||||
mClothingWeights[i].clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,17 +104,17 @@ LLPolyMorphData::~LLPolyMorphData()
|
|||
//-----------------------------------------------------------------------------
|
||||
// loadBinary()
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
||||
bool LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
|
||||
{
|
||||
S32 numVertices;
|
||||
S32 numRead;
|
||||
size_t numRead;
|
||||
|
||||
numRead = fread(&numVertices, sizeof(S32), 1, fp);
|
||||
llendianswizzle(&numVertices, sizeof(S32), 1);
|
||||
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)
|
||||
|
|
@ -386,8 +386,8 @@ BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
|
|||
if (!mMorphData)
|
||||
{
|
||||
const std::string driven_tag = "_Driven";
|
||||
U32 pos = morph_param_name.find(driven_tag);
|
||||
if (pos > 0)
|
||||
auto pos = morph_param_name.find(driven_tag);
|
||||
if (pos != std::string::npos && pos > 0)
|
||||
{
|
||||
morph_param_name = morph_param_name.substr(0,pos);
|
||||
mMorphData = mMesh->getMorphData(morph_param_name);
|
||||
|
|
@ -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,7 +432,7 @@ 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,15 +1042,15 @@ 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] ) )
|
||||
if( is_approx_zero( net_color.mV[VALPHA] ) )
|
||||
{
|
||||
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)
|
||||
|
|
@ -1220,7 +1220,7 @@ BOOL LLTexLayer::findNetColor(LLColor4* net_color) const
|
|||
{
|
||||
net_color->setVec( mTexLayerSet->getAvatarAppearance()->getGlobalColor( getInfo()->mGlobalColor ) );
|
||||
}
|
||||
else if (getInfo()->mFixedColor.mV[VW])
|
||||
else if (getInfo()->mFixedColor.mV[VALPHA])
|
||||
{
|
||||
net_color->setVec( getInfo()->mFixedColor );
|
||||
}
|
||||
|
|
@ -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] )
|
||||
if( getInfo()->mFixedColor.mV[VALPHA] )
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
|
@ -1380,7 +1380,7 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
|
|||
|
||||
// Draw a rectangle with the layer color to multiply the alpha by that color's alpha.
|
||||
// Note: we're still using gGL.blendFunc( GL_DST_ALPHA, GL_ZERO );
|
||||
if ( !is_approx_equal(layer_color.mV[VW], 1.f) )
|
||||
if ( !is_approx_equal(layer_color.mV[VALPHA], 1.f) )
|
||||
{
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
gGL.color4fv(layer_color.mV);
|
||||
|
|
@ -1486,8 +1486,8 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
|
|||
// <FS:ND> Check invariants and allocate memory
|
||||
llassert_always(textureH > 0);
|
||||
llassert_always(textureW > 0);
|
||||
llassert_always(textureH >= height);
|
||||
llassert_always(textureW >= width);
|
||||
llassert_always(textureH >= (U32)height);
|
||||
llassert_always(textureW >= (U32)width);
|
||||
llassert_always(x == 0);
|
||||
llassert_always(y == 0);
|
||||
|
||||
|
|
@ -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,7 +1756,7 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
|
|||
}
|
||||
}
|
||||
|
||||
/*virtual*/ void LLTexLayerTemplate::setHasMorph(BOOL newval)
|
||||
/*virtual*/ void LLTexLayerTemplate::setHasMorph(bool newval)
|
||||
{
|
||||
mHasMorph = newval;
|
||||
U32 num_wearables = updateWearableCache();
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -482,17 +482,17 @@ LLColor4 LLTexLayerParamColor::getNetColor() const
|
|||
F32 weight = scaled_weight - index_start;
|
||||
const LLColor4 *start = &info->mColors[ index_start ];
|
||||
const LLColor4 *end = &info->mColors[ index_end ];
|
||||
return LLColor4((1.f - weight) * start->mV[VX] + weight * end->mV[VX],
|
||||
(1.f - weight) * start->mV[VY] + weight * end->mV[VY],
|
||||
(1.f - weight) * start->mV[VZ] + weight * end->mV[VZ],
|
||||
(1.f - weight) * start->mV[VW] + weight * end->mV[VW]);
|
||||
return LLColor4((1.f - weight) * start->mV[VRED] + weight * end->mV[VRED],
|
||||
(1.f - weight) * start->mV[VGREEN] + weight * end->mV[VGREEN],
|
||||
(1.f - weight) * start->mV[VBLUE] + weight * end->mV[VBLUE],
|
||||
(1.f - weight) * start->mV[VALPHA] + weight * end->mV[VALPHA]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <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
|
||||
|
|
@ -554,8 +554,8 @@ void LLWearable::revertValues()
|
|||
{
|
||||
F32 value = vp_pair.second;
|
||||
// <FS:Ansariel> [Legacy Bake]
|
||||
//param->setWeight(value);
|
||||
param->setWeight(value, TRUE);
|
||||
//setVisualParamWeight(id, value);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -763,7 +763,7 @@ void LLWearable::writeToAvatar(LLAvatarAppearance* avatarp)
|
|||
std::string terse_F32_to_string(F32 f)
|
||||
{
|
||||
std::string r = llformat("%.2f", f);
|
||||
S32 len = r.length();
|
||||
auto len = r.length();
|
||||
|
||||
// "1.20" -> "1.2"
|
||||
// "24.00" -> "24."
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
}
|
||||
|
|
@ -346,7 +346,7 @@ U32 LLWearableData::getWearableCount(const LLWearableType::EType type) const
|
|||
return 0;
|
||||
}
|
||||
const wearableentry_vec_t& wearable_vec = wearable_iter->second;
|
||||
return wearable_vec.size();
|
||||
return static_cast<U32>(wearable_vec.size());
|
||||
}
|
||||
|
||||
U32 LLWearableData::getWearableCount(const U32 tex_index) const
|
||||
|
|
@ -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())
|
||||
|
|
@ -422,7 +422,7 @@ BOOL LLVorbisDecodeState::finishDecode()
|
|||
ov_clear(&mVF);
|
||||
|
||||
// write "data" chunk length, in little-endian format
|
||||
S32 data_length = mWAVBuffer.size() - WAV_HEADER_SIZE;
|
||||
S32 data_length = static_cast<S32>(mWAVBuffer.size()) - WAV_HEADER_SIZE;
|
||||
mWAVBuffer[40] = (data_length) & 0x000000FF;
|
||||
mWAVBuffer[41] = (data_length >> 8) & 0x000000FF;
|
||||
mWAVBuffer[42] = (data_length >> 16) & 0x000000FF;
|
||||
|
|
@ -463,7 +463,7 @@ BOOL LLVorbisDecodeState::finishDecode()
|
|||
{
|
||||
memcpy(&mWAVBuffer[WAV_HEADER_SIZE], pcmout, (2 * fade_length)); /*Flawfinder: ignore*/
|
||||
}
|
||||
S32 near_end = mWAVBuffer.size() - (2 * fade_length);
|
||||
S32 near_end = static_cast<S32>(mWAVBuffer.size()) - (2 * fade_length);
|
||||
if ((S32)mWAVBuffer.size() >= ( near_end + 2* fade_length))
|
||||
{
|
||||
memcpy(pcmout, &mWAVBuffer[near_end], (2 * fade_length)); /*Flawfinder: ignore*/
|
||||
|
|
@ -487,11 +487,11 @@ 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(),
|
||||
mFileHandle = LLLFSThread::sLocal->write(mOutFilename, &mWAVBuffer[0], 0, static_cast<S32>(mWAVBuffer.size()),
|
||||
new WriteResponder(this));
|
||||
}
|
||||
|
||||
|
|
@ -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()
|
||||
|
|
@ -73,8 +73,8 @@ LLCharacter::~LLCharacter()
|
|||
delete param;
|
||||
}
|
||||
|
||||
U32 i ;
|
||||
U32 size = sInstances.size() ;
|
||||
size_t i ;
|
||||
size_t size = sInstances.size() ;
|
||||
for(i = 0 ; i < size ; i++)
|
||||
{
|
||||
if(sInstances[i] == this)
|
||||
|
|
@ -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,14 +275,14 @@ BOOL LLGestureList::trigger(KEY key, MASK mask)
|
|||
LL_WARNS() << "NULL gesture in gesture list (" << i << ")" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// NOT endian-neutral
|
||||
U8 *LLGestureList::serialize(U8 *buffer) const
|
||||
{
|
||||
// a single S32 serves as the header that tells us how many to read
|
||||
U32 count = mList.size();
|
||||
auto count = mList.size();
|
||||
htolememcpy(buffer, &count, MVT_S32, 4);
|
||||
buffer += sizeof(count);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,13 +84,13 @@ 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(); }
|
||||
S32 count() const { return static_cast<S32>(mList.size()); }
|
||||
virtual LLGesture* get(S32 i) const { return mList.at(i); }
|
||||
virtual void put(LLGesture* gesture) { mList.push_back( gesture ); }
|
||||
void deleteAll();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
// 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();
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ JointKey JointKey::construct(const std::string& aName)
|
|||
return { aName, itr->second };
|
||||
}
|
||||
|
||||
U32 size = mpStringToKeys.size() + 1;
|
||||
U32 size = static_cast<U32>(mpStringToKeys.size()) + 1;
|
||||
mpStringToKeys.try_emplace(aName, size);
|
||||
return { aName, size };
|
||||
}
|
||||
|
|
@ -94,7 +94,7 @@ void LLVector3OverrideMap::showJointVector3Overrides( std::ostringstream& os ) c
|
|||
|
||||
U32 LLVector3OverrideMap::count() const
|
||||
{
|
||||
return m_map.size();
|
||||
return static_cast<U32>(m_map.size());
|
||||
}
|
||||
|
||||
void LLVector3OverrideMap::add(const LLUUID& mesh_id, const LLVector3& pos)
|
||||
|
|
@ -104,7 +104,7 @@ void LLVector3OverrideMap::add(const LLUUID& mesh_id, const LLVector3& pos)
|
|||
|
||||
bool LLVector3OverrideMap::remove(const LLUUID& mesh_id)
|
||||
{
|
||||
U32 remove_count = m_map.erase(mesh_id);
|
||||
auto remove_count = m_map.erase(mesh_id);
|
||||
return (remove_count > 0);
|
||||
}
|
||||
|
||||
|
|
@ -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:
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -86,9 +86,9 @@ public:
|
|||
//-------------------------------------------------------------------------
|
||||
|
||||
// motions must specify whether or not they loop
|
||||
virtual BOOL getLoop() {
|
||||
virtual bool getLoop() {
|
||||
if (mJointMotionList) return mJointMotionList->mLoop;
|
||||
else return FALSE;
|
||||
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;
|
||||
|
|
@ -413,12 +413,14 @@ public:
|
|||
// TODO: LLKeyframeDataCache::getKeyframeData should probably return a class containing
|
||||
// JointMotionList and mEmoteName, see LLKeyframeMotion::onInitialize.
|
||||
std::string mEmoteName;
|
||||
LLUUID mEmoteID;
|
||||
|
||||
public:
|
||||
JointMotionList();
|
||||
~JointMotionList();
|
||||
U32 dumpDiagInfo();
|
||||
JointMotion* getJointMotion(U32 index) const { llassert(index < mJointMotionArray.size()); return mJointMotionArray[index]; }
|
||||
U32 getNumJointMotions() const { return mJointMotionArray.size(); }
|
||||
U32 getNumJointMotions() const { return static_cast<U32>(mJointMotionArray.size()); }
|
||||
};
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
|
@ -157,11 +157,11 @@ LLMotionController::~LLMotionController()
|
|||
|
||||
void LLMotionController::incMotionCounts(S32& num_motions, S32& num_loading_motions, S32& num_loaded_motions, S32& num_active_motions, S32& num_deprecated_motions)
|
||||
{
|
||||
num_motions += mAllMotions.size();
|
||||
num_loading_motions += mLoadingMotions.size();
|
||||
num_loaded_motions += mLoadedMotions.size();
|
||||
num_active_motions += mActiveMotions.size();
|
||||
num_deprecated_motions += mDeprecatedMotions.size();
|
||||
num_motions += static_cast<S32>(mAllMotions.size());
|
||||
num_loading_motions += static_cast<S32>(mLoadingMotions.size());
|
||||
num_loaded_motions += static_cast<S32>(mLoadedMotions.size());
|
||||
num_active_motions += static_cast<S32>(mActiveMotions.size());
|
||||
num_deprecated_motions += static_cast<S32>(mDeprecatedMotions.size());
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -223,7 +223,7 @@ void LLMotionController::purgeExcessMotions()
|
|||
}
|
||||
|
||||
// clean up all inactive, loaded motions
|
||||
for (LLUUID motion_id : motions_to_kill)
|
||||
for (const LLUUID& motion_id : motions_to_kill)
|
||||
{
|
||||
// look up the motion again by ID to get canonical instance
|
||||
// and kill it only if that one is inactive
|
||||
|
|
@ -234,7 +234,7 @@ void LLMotionController::purgeExcessMotions()
|
|||
}
|
||||
}
|
||||
|
||||
U32 loaded_count = mLoadedMotions.size();
|
||||
U32 loaded_count = static_cast<U32>(mLoadedMotions.size());
|
||||
// <FS:Ansariel> Can't do anything about it anyway - stop spamming the log
|
||||
//if (loaded_count > (2 * MAX_MOTION_INSTANCES) && loaded_count > mLastCountAfterPurge)
|
||||
//{
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -54,15 +54,15 @@ LLMultiGesture::~LLMultiGesture()
|
|||
|
||||
void LLMultiGesture::reset()
|
||||
{
|
||||
mPlaying = FALSE;
|
||||
mPlaying = false;
|
||||
mCurrentStep = 0;
|
||||
mWaitTimer.reset();
|
||||
mWaitingAnimations = FALSE;
|
||||
mWaitingKeyRelease = FALSE;
|
||||
mWaitingTimer = FALSE;
|
||||
mTriggeredByKey = FALSE;
|
||||
mKeyReleased = FALSE;
|
||||
mWaitingAtEnd = FALSE;
|
||||
mWaitingAnimations = false;
|
||||
mWaitingKeyRelease = false;
|
||||
mWaitingTimer = false;
|
||||
mTriggeredByKey = false;
|
||||
mKeyReleased = false;
|
||||
mWaitingAtEnd = false;
|
||||
mRequestedAnimIDs.clear();
|
||||
mPlayingAnimIDs.clear();
|
||||
}
|
||||
|
|
@ -107,7 +107,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");
|
||||
|
|
@ -123,16 +123,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");
|
||||
|
|
@ -141,7 +141,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");
|
||||
|
|
@ -157,7 +157,7 @@ BOOL LLMultiGesture::deserialize(LLDataPacker& dp)
|
|||
if (count < 0)
|
||||
{
|
||||
LL_WARNS() << "Bad LLMultiGesture step count " << count << LL_ENDL;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
S32 i;
|
||||
|
|
@ -172,43 +172,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()
|
||||
|
|
@ -255,15 +255,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");
|
||||
|
||||
|
|
@ -277,7 +277,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
|
||||
|
|
@ -337,21 +337,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
|
||||
|
|
@ -397,19 +397,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
|
||||
|
|
@ -452,18 +452,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,28 +75,28 @@ public:
|
|||
std::vector<LLGestureStep*> mSteps;
|
||||
|
||||
// Is the gesture currently playing?
|
||||
BOOL mPlaying { FALSE };
|
||||
bool mPlaying { false };
|
||||
|
||||
// "instruction pointer" for steps
|
||||
S32 mCurrentStep { 0 };
|
||||
|
||||
// We're waiting for triggered animations to stop playing
|
||||
BOOL mWaitingAnimations { FALSE };
|
||||
bool mWaitingAnimations { false };
|
||||
|
||||
// We're waiting for key release
|
||||
BOOL mWaitingKeyRelease { FALSE };
|
||||
bool mWaitingKeyRelease { false };
|
||||
|
||||
// We're waiting a fixed amount of time
|
||||
BOOL mWaitingTimer { FALSE };
|
||||
bool mWaitingTimer { false };
|
||||
|
||||
// We're waiting for triggered animations to stop playing
|
||||
BOOL mTriggeredByKey { FALSE };
|
||||
bool mTriggeredByKey { false };
|
||||
|
||||
// Has the key been released?
|
||||
BOOL mKeyReleased { FALSE };
|
||||
bool mKeyReleased { false };
|
||||
|
||||
// Waiting after the last step played for all animations to complete
|
||||
BOOL mWaitingAtEnd { FALSE };
|
||||
bool mWaitingAtEnd { false };
|
||||
|
||||
// Timer for waiting
|
||||
LLFrameTimer mWaitTimer;
|
||||
|
|
@ -138,8 +138,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;
|
||||
};
|
||||
|
|
@ -160,8 +160,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();
|
||||
|
||||
|
|
@ -183,8 +183,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();
|
||||
|
||||
|
|
@ -206,8 +206,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();
|
||||
|
||||
|
|
@ -232,8 +232,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();
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue