pull latest changes from viewer-vs2010
commit
ed73c8bf63
19
.hgtags
19
.hgtags
|
|
@ -51,3 +51,22 @@ a82e5b1e22c7f90e3c7977d146b80588f004ed0d 2.5.0-start
|
|||
345b17e7cf630db77e840b4fe3451bd476d750a3 2.5.0-beta1
|
||||
345b17e7cf630db77e840b4fe3451bd476d750a3 76f586a8e22b
|
||||
0000000000000000000000000000000000000000 76f586a8e22b
|
||||
54d772d8687c69b1d773f6ce14bbc7bdc9d6c05f 2.5.0-beta2
|
||||
7076e22f9f43f479a4ea75eac447a36364bead5a DRTVWR-5_2.2.0-beta1
|
||||
9822eb3e25f7fe0c28ffd8aba45c507caa383cbc DRTVWR-3_2.2.0-beta2
|
||||
b0cd7e150009809a0b5b0a9d5785cd4bb230413a DRTVWR-7_2.2.0-beta3
|
||||
1415e6538d54fd5d568ee88343424d57c6803c2c DRTVWR-8_2.2.0-release
|
||||
a3c12342b1af0951b8aa3b828aacef17fcea8178 DRTVWR-14_2.3.0-beta1
|
||||
db0fe9bb65187f365e58a717dd23d0f4754a9c1d DRTVWR-17_2.3.0-beta2
|
||||
6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 DRTVWR-20_2.3.0-beta3
|
||||
6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 DRTVWR-13_2.3.0-release
|
||||
3bc1f50a72e117f4d4ad8d555f0c785ea8cc201e DRTVWR-26_2.4.0-beta1
|
||||
25bd6007e3d2fc15db9326ed4b18a24a5969a46a DRTVWR-27_2.4.0-beta2
|
||||
1ed382c6a08ba3850b6ce9061bc551ddece0ea07 DRTVWR-25_2.4.0-release
|
||||
345b17e7cf630db77e840b4fe3451bd476d750a3 DRTVWR-32_2.5.0-beta1
|
||||
54d772d8687c69b1d773f6ce14bbc7bdc9d6c05f DRTVWR-33_2.5.0-beta2
|
||||
b723921b5c711bd24dbe77dc76ef488b544dac78 2.5.0-beta3
|
||||
b723921b5c711bd24dbe77dc76ef488b544dac78 DRTVWR-34_2.5.0-beta3
|
||||
b723921b5c711bd24dbe77dc76ef488b544dac78 2.5.0-release
|
||||
b723921b5c711bd24dbe77dc76ef488b544dac78 DRTVWR-31_2.5.0-release
|
||||
92e58e51776a4f8c29069b1a62ff21454d2085f0 2.6.0-start
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ viewer-development.show_changes_since = last_sprint
|
|||
|
||||
# Build Settings
|
||||
viewer-development_coverity.coverity_product = viewer
|
||||
viewer-development_coverity.run_tests = false
|
||||
viewer-development.build_debug_release_separately = true
|
||||
|
||||
# Notifications - to configure email notices, add a setting like this:
|
||||
|
|
@ -143,8 +144,8 @@ media.build_viewer_update_version_manager = false
|
|||
# oz
|
||||
# ================
|
||||
|
||||
oz_viewer-autobuild2010.build_link_parallel = false
|
||||
oz_viewer-vs2010.build_link_parallel = false
|
||||
L-oz_viewer-autobuild.build_link_parallel=false
|
||||
L-oz_viewer-autobuildvs2010.build_link_parallel=false
|
||||
|
||||
# ========================================
|
||||
# enus
|
||||
|
|
|
|||
753
autobuild.xml
753
autobuild.xml
|
|
@ -1587,22 +1587,172 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=Debug</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>Debug</string>
|
||||
</map>
|
||||
<key>OpenSourceDebug</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=Debug</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelWithDebInfo</string>
|
||||
</map>
|
||||
<!-- OPEN-1 WORKAROUND begin - to be removed when VC express is detected correctly -->
|
||||
<key>VCexpressRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>VCexpressRelWithDebInfo</string>
|
||||
</map>
|
||||
<!-- OPEN-1 WORKAROUND end -->
|
||||
<key>OpenSourceRelease</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=Release</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelease</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneDebug</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=Debug</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelWithDebInfo</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelease</key>
|
||||
<map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=Release</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelease</string>
|
||||
</map>
|
||||
<key>RelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
|
|
@ -1610,17 +1760,18 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
|
|
@ -1633,17 +1784,18 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>cmake</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-DCMAKE_BUILD_TYPE:STRING=Release</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DUNATTENDED:BOOL=OFF</string>
|
||||
<string>-DWORD_SIZE:STRING=32</string>
|
||||
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
|
|
@ -1680,19 +1832,174 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>Debug</string>
|
||||
</map>
|
||||
<key>OpenSourceDebug</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>xcodebuild</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-configuration Debug</string>
|
||||
<string>-project SecondLife.xcodeproj</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>xcodebuild</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-configuration RelWithDebInfo</string>
|
||||
<string>-project SecondLife.xcodeproj</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelWithDebInfo</string>
|
||||
</map>
|
||||
<key>OpenSourceRelease</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>xcodebuild</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-configuration Release</string>
|
||||
<string>-project SecondLife.xcodeproj</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelease</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneDebug</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>xcodebuild</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-configuration Debug</string>
|
||||
<string>-project SecondLife.xcodeproj</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>xcodebuild</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-configuration RelWithDebInfo</string>
|
||||
<string>-project SecondLife.xcodeproj</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelWithDebInfo</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelease</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>xcodebuild</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-configuration Release</string>
|
||||
<string>-project SecondLife.xcodeproj</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelease</string>
|
||||
</map>
|
||||
<key>RelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
|
|
@ -1714,14 +2021,13 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>default</key>
|
||||
|
|
@ -1750,14 +2056,13 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Xcode'</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
|
|
@ -1786,19 +2091,168 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>Debug</string>
|
||||
</map>
|
||||
<key>OpenSourceDebug</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>make</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-j 12</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>make</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-j 12</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelWithDebInfo</string>
|
||||
</map>
|
||||
<key>OpenSourceRelease</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>make</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-j 12</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelease</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneDebug</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>make</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-j 12</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>make</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-j 12</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelWithDebInfo</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelease</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>command</key>
|
||||
<string>make</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-j 12</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelease</string>
|
||||
</map>
|
||||
<key>RelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
|
|
@ -1812,14 +2266,13 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>default</key>
|
||||
|
|
@ -1840,14 +2293,13 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>../indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>'Unix Makefiles'</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
|
|
@ -1889,19 +2341,230 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>..\indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>Debug</string>
|
||||
</map>
|
||||
<key>OpenSourceDebug</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>devenv.com</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/build</string>
|
||||
<string>Debug</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>devenv.com</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/build</string>
|
||||
<string>RelWithDebInfo</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelWithDebInfo</string>
|
||||
</map>
|
||||
<!-- OPEN-1 WORKAROUND begin - to be removed when VC express is detected correctly -->
|
||||
<key>VCexpressRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>"RelWithDebInfo|Win32"</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>vcbuild.exe</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/u</string>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>VCexpressRelWithDebInfo</string>
|
||||
</map>
|
||||
<!-- OPEN-1 WORKAROUND end -->
|
||||
<key>OpenSourceRelease</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>devenv.com</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/build</string>
|
||||
<string>Release</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=FALSE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceRelease</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneDebug</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>devenv.com</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/build</string>
|
||||
<string>Debug</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneDebug</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>devenv.com</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/build</string>
|
||||
<string>RelWithDebInfo</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelWithDebInfo</string>
|
||||
</map>
|
||||
<key>OpenSourceStandAloneRelease</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>SecondLife.sln</string>
|
||||
</array>
|
||||
<key>command</key>
|
||||
<string>devenv.com</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>/build</string>
|
||||
<string>Release</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 8 2005"</string>
|
||||
<string>-DSTANDALONE:BOOL=TRUE</string>
|
||||
<string>-DINSTALL_PROPRIETARY=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>OpenSourceStandAloneRelease</string>
|
||||
</map>
|
||||
<key>RelWithDebInfo</key>
|
||||
<map>
|
||||
<key>build</key>
|
||||
|
|
@ -1920,14 +2583,13 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>..\indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>default</key>
|
||||
|
|
@ -1953,14 +2615,13 @@
|
|||
</map>
|
||||
<key>configure</key>
|
||||
<map>
|
||||
<key>arguments</key>
|
||||
<array>
|
||||
<string>..\indra</string>
|
||||
</array>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>-DSTANDALONE:BOOL=OFF</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DFMOD=TRUE</string>
|
||||
</array>
|
||||
</map>
|
||||
<key>name</key>
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ Aleric Inglewood
|
|||
SNOW-626
|
||||
SNOW-756
|
||||
SNOW-764
|
||||
SNOW-800
|
||||
VWR-10001
|
||||
VWR-10579
|
||||
VWR-10759
|
||||
|
|
@ -85,17 +86,21 @@ Aleric Inglewood
|
|||
VWR-24320
|
||||
VWR-24321
|
||||
VWR-24354
|
||||
VWR-24366
|
||||
VWR-24519
|
||||
SNOW-84
|
||||
SNOW-477
|
||||
SNOW-744
|
||||
SNOW-766
|
||||
STORM-163
|
||||
STORM-955
|
||||
STORM-960
|
||||
Ales Beaumont
|
||||
VWR-9352
|
||||
SNOW-240
|
||||
Alexandrea Fride
|
||||
STORM-255
|
||||
STORM-960
|
||||
Alissa Sabre
|
||||
VWR-81
|
||||
VWR-83
|
||||
|
|
@ -373,20 +378,28 @@ JB Kraft
|
|||
Joghert LeSabre
|
||||
VWR-64
|
||||
Jonathan Yap
|
||||
STORM-435
|
||||
STORM-523
|
||||
STORM-596
|
||||
STORM-615
|
||||
STORM-616
|
||||
STORM-643
|
||||
STORM-679
|
||||
STORM-723
|
||||
STORM-726
|
||||
STORM-737
|
||||
STORM-869
|
||||
STORM-785
|
||||
STORM-812
|
||||
STORM-829
|
||||
STORM-844
|
||||
STORM-869
|
||||
VWR-17801
|
||||
VWR-24347
|
||||
STORM-844
|
||||
STORM-975
|
||||
STORM-643
|
||||
STORM-960
|
||||
STORM-953
|
||||
Kage Pixel
|
||||
VWR-11
|
||||
Ken March
|
||||
|
|
@ -614,6 +627,7 @@ Robin Cornelius
|
|||
SNOW-599
|
||||
SNOW-747
|
||||
STORM-422
|
||||
STORM-960
|
||||
VWR-2488
|
||||
VWR-9557
|
||||
VWR-10579
|
||||
|
|
@ -662,6 +676,8 @@ Sergen Davies
|
|||
CT-321
|
||||
Shawn Kaufmat
|
||||
SNOW-240
|
||||
Siana Gearz
|
||||
STORM-960
|
||||
SignpostMarv Martin
|
||||
VWR-153
|
||||
VWR-154
|
||||
|
|
@ -769,6 +785,7 @@ Twisted Laws
|
|||
STORM-466
|
||||
STORM-467
|
||||
STORM-844
|
||||
STORM-643
|
||||
Vadim Bigbear
|
||||
VWR-2681
|
||||
Vector Hastings
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@ set(GOOGLEMOCK_INCLUDE_DIRS
|
|||
${LIBS_PREBUILT_DIR}/include)
|
||||
|
||||
if (LINUX)
|
||||
# VWR-24366: gmock is underlinked, it needs gtest.
|
||||
set(GOOGLEMOCK_LIBRARIES
|
||||
gmock
|
||||
gtest)
|
||||
gmock -Wl,--no-as-needed
|
||||
gtest -Wl,--as-needed)
|
||||
elseif(WINDOWS)
|
||||
set(GOOGLEMOCK_LIBRARIES
|
||||
gmock)
|
||||
|
|
|
|||
|
|
@ -57,11 +57,6 @@ INCLUDE(GoogleMock)
|
|||
${CMAKE_SOURCE_DIR}/test/test.h
|
||||
)
|
||||
|
||||
# Use the default flags
|
||||
if (LINUX)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "")
|
||||
endif (LINUX)
|
||||
|
||||
# start the source test executable definitions
|
||||
SET(${project}_TEST_OUTPUT "")
|
||||
FOREACH (source ${sources})
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file run_build_test.py
|
||||
@author Nat Goodspeed
|
||||
|
|
|
|||
|
|
@ -1,4 +1,28 @@
|
|||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file start-client.py
|
||||
|
||||
$LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
Second Life Viewer Source Code
|
||||
Copyright (C) 2010-2011, Linden Research, Inc.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation;
|
||||
version 2.1 of the License only.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
$/LicenseInfo$
|
||||
"""
|
||||
import sys, getopt
|
||||
import os
|
||||
import llstart
|
||||
|
|
|
|||
|
|
@ -1,4 +1,28 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file llperformance.py
|
||||
|
||||
$LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
Second Life Viewer Source Code
|
||||
Copyright (C) 2010-2011, Linden Research, Inc.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation;
|
||||
version 2.1 of the License only.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
$/LicenseInfo$
|
||||
"""
|
||||
|
||||
# ------------------------------------------------
|
||||
# Sim metrics utility functions.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file simperf_proc_interface.py
|
||||
@brief Utility to extract log messages from *.<pid>.llsd files containing performance statistics.
|
||||
|
|
|
|||
|
|
@ -1,28 +1,29 @@
|
|||
#!/usr/bin/env python
|
||||
# @file test_win32_manifest.py
|
||||
# @brief Test an assembly binding version and uniqueness in a windows dll or exe.
|
||||
#
|
||||
# $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
# Second Life Viewer Source Code
|
||||
# Copyright (C) 2010, Linden Research, Inc.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation;
|
||||
# version 2.1 of the License only.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
# $/LicenseInfo$
|
||||
"""\
|
||||
@file test_win32_manifest.py
|
||||
@brief Test an assembly binding version and uniqueness in a windows dll or exe.
|
||||
|
||||
$LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
Second Life Viewer Source Code
|
||||
Copyright (C) 2009-2011, Linden Research, Inc.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation;
|
||||
version 2.1 of the License only.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
$/LicenseInfo$
|
||||
"""
|
||||
import sys, os
|
||||
import tempfile
|
||||
from xml.dom.minidom import parse
|
||||
|
|
|
|||
|
|
@ -33,145 +33,145 @@
|
|||
#include "llanimationstates.h"
|
||||
#include "llstring.h"
|
||||
|
||||
const LLUUID ANIM_AGENT_AFRAID = LLUUID("6b61c8e8-4747-0d75-12d7-e49ff207a4ca");
|
||||
const LLUUID ANIM_AGENT_AIM_BAZOOKA_R = LLUUID("b5b4a67d-0aee-30d2-72cd-77b333e932ef");
|
||||
const LLUUID ANIM_AGENT_AIM_BOW_L = LLUUID("46bb4359-de38-4ed8-6a22-f1f52fe8f506");
|
||||
const LLUUID ANIM_AGENT_AIM_HANDGUN_R = LLUUID("3147d815-6338-b932-f011-16b56d9ac18b");
|
||||
const LLUUID ANIM_AGENT_AIM_RIFLE_R = LLUUID("ea633413-8006-180a-c3ba-96dd1d756720");
|
||||
const LLUUID ANIM_AGENT_ANGRY = LLUUID("5747a48e-073e-c331-f6f3-7c2149613d3e");
|
||||
const LLUUID ANIM_AGENT_AWAY = LLUUID("fd037134-85d4-f241-72c6-4f42164fedee");
|
||||
const LLUUID ANIM_AGENT_BACKFLIP = LLUUID("c4ca6188-9127-4f31-0158-23c4e2f93304");
|
||||
const LLUUID ANIM_AGENT_BELLY_LAUGH = LLUUID("18b3a4b5-b463-bd48-e4b6-71eaac76c515");
|
||||
const LLUUID ANIM_AGENT_BLOW_KISS = LLUUID("db84829b-462c-ee83-1e27-9bbee66bd624");
|
||||
const LLUUID ANIM_AGENT_BORED = LLUUID("b906c4ba-703b-1940-32a3-0c7f7d791510");
|
||||
const LLUUID ANIM_AGENT_BOW = LLUUID("82e99230-c906-1403-4d9c-3889dd98daba");
|
||||
const LLUUID ANIM_AGENT_BRUSH = LLUUID("349a3801-54f9-bf2c-3bd0-1ac89772af01");
|
||||
const LLUUID ANIM_AGENT_BUSY = LLUUID("efcf670c-2d18-8128-973a-034ebc806b67");
|
||||
const LLUUID ANIM_AGENT_CLAP = LLUUID("9b0c1c4e-8ac7-7969-1494-28c874c4f668");
|
||||
const LLUUID ANIM_AGENT_COURTBOW = LLUUID("9ba1c942-08be-e43a-fb29-16ad440efc50");
|
||||
const LLUUID ANIM_AGENT_CROUCH = LLUUID("201f3fdf-cb1f-dbec-201f-7333e328ae7c");
|
||||
const LLUUID ANIM_AGENT_CROUCHWALK = LLUUID("47f5f6fb-22e5-ae44-f871-73aaaf4a6022");
|
||||
const LLUUID ANIM_AGENT_CRY = LLUUID("92624d3e-1068-f1aa-a5ec-8244585193ed");
|
||||
const LLUUID ANIM_AGENT_CUSTOMIZE = LLUUID("038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53");
|
||||
const LLUUID ANIM_AGENT_CUSTOMIZE_DONE = LLUUID("6883a61a-b27b-5914-a61e-dda118a9ee2c");
|
||||
const LLUUID ANIM_AGENT_DANCE1 = LLUUID("b68a3d7c-de9e-fc87-eec8-543d787e5b0d");
|
||||
const LLUUID ANIM_AGENT_DANCE2 = LLUUID("928cae18-e31d-76fd-9cc9-2f55160ff818");
|
||||
const LLUUID ANIM_AGENT_DANCE3 = LLUUID("30047778-10ea-1af7-6881-4db7a3a5a114");
|
||||
const LLUUID ANIM_AGENT_DANCE4 = LLUUID("951469f4-c7b2-c818-9dee-ad7eea8c30b7");
|
||||
const LLUUID ANIM_AGENT_DANCE5 = LLUUID("4bd69a1d-1114-a0b4-625f-84e0a5237155");
|
||||
const LLUUID ANIM_AGENT_DANCE6 = LLUUID("cd28b69b-9c95-bb78-3f94-8d605ff1bb12");
|
||||
const LLUUID ANIM_AGENT_DANCE7 = LLUUID("a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6");
|
||||
const LLUUID ANIM_AGENT_DANCE8 = LLUUID("b0dc417c-1f11-af36-2e80-7e7489fa7cdc");
|
||||
const LLUUID ANIM_AGENT_DEAD = LLUUID("57abaae6-1d17-7b1b-5f98-6d11a6411276");
|
||||
const LLUUID ANIM_AGENT_DRINK = LLUUID("0f86e355-dd31-a61c-fdb0-3a96b9aad05f");
|
||||
const LLUUID ANIM_AGENT_EMBARRASSED = LLUUID("514af488-9051-044a-b3fc-d4dbf76377c6");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_AFRAID = LLUUID("aa2df84d-cf8f-7218-527b-424a52de766e");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_ANGER = LLUUID("1a03b575-9634-b62a-5767-3a679e81f4de");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_BORED = LLUUID("214aa6c1-ba6a-4578-f27c-ce7688f61d0d");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_CRY = LLUUID("d535471b-85bf-3b4d-a542-93bea4f59d33");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_DISDAIN = LLUUID("d4416ff1-09d3-300f-4183-1b68a19b9fc1");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_EMBARRASSED = LLUUID("0b8c8211-d78c-33e8-fa28-c51a9594e424");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_FROWN = LLUUID("fee3df48-fa3d-1015-1e26-a205810e3001");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_KISS = LLUUID("1e8d90cc-a84e-e135-884c-7c82c8b03a14");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_LAUGH = LLUUID("62570842-0950-96f8-341c-809e65110823");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_OPEN_MOUTH = LLUUID("d63bc1f9-fc81-9625-a0c6-007176d82eb7");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_REPULSED = LLUUID("f76cda94-41d4-a229-2872-e0296e58afe1");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_SAD = LLUUID("eb6ebfb2-a4b3-a19c-d388-4dd5c03823f7");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_SHRUG = LLUUID("a351b1bc-cc94-aac2-7bea-a7e6ebad15ef");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_SMILE = LLUUID("b7c7c833-e3d3-c4e3-9fc0-131237446312");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_SURPRISE = LLUUID("728646d9-cc79-08b2-32d6-937f0a835c24");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_TONGUE_OUT = LLUUID("835965c6-7f2f-bda2-5deb-2478737f91bf");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_TOOTHSMILE = LLUUID("b92ec1a5-e7ce-a76b-2b05-bcdb9311417e");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_WINK = LLUUID("da020525-4d94-59d6-23d7-81fdebf33148");
|
||||
const LLUUID ANIM_AGENT_EXPRESS_WORRY = LLUUID("9c05e5c7-6f07-6ca4-ed5a-b230390c3950");
|
||||
const LLUUID ANIM_AGENT_FALLDOWN = LLUUID("666307d9-a860-572d-6fd4-c3ab8865c094");
|
||||
const LLUUID ANIM_AGENT_FEMALE_RUN_NEW = LLUUID("85995026-eade-5d78-d364-94a64512cb66");
|
||||
const LLUUID ANIM_AGENT_FEMALE_WALK = LLUUID("f5fc7433-043d-e819-8298-f519a119b688");
|
||||
const LLUUID ANIM_AGENT_FEMALE_WALK_NEW = LLUUID("d60c41d2-7c24-7074-d3fa-6101cea22a51");
|
||||
const LLUUID ANIM_AGENT_FINGER_WAG = LLUUID("c1bc7f36-3ba0-d844-f93c-93be945d644f");
|
||||
const LLUUID ANIM_AGENT_FIST_PUMP = LLUUID("7db00ccd-f380-f3ee-439d-61968ec69c8a");
|
||||
const LLUUID ANIM_AGENT_FLY = LLUUID("aec4610c-757f-bc4e-c092-c6e9caf18daf");
|
||||
const LLUUID ANIM_AGENT_FLYSLOW = LLUUID("2b5a38b2-5e00-3a97-a495-4c826bc443e6");
|
||||
const LLUUID ANIM_AGENT_HELLO = LLUUID("9b29cd61-c45b-5689-ded2-91756b8d76a9");
|
||||
const LLUUID ANIM_AGENT_HOLD_BAZOOKA_R = LLUUID("ef62d355-c815-4816-2474-b1acc21094a6");
|
||||
const LLUUID ANIM_AGENT_HOLD_BOW_L = LLUUID("8b102617-bcba-037b-86c1-b76219f90c88");
|
||||
const LLUUID ANIM_AGENT_HOLD_HANDGUN_R = LLUUID("efdc1727-8b8a-c800-4077-975fc27ee2f2");
|
||||
const LLUUID ANIM_AGENT_HOLD_RIFLE_R = LLUUID("3d94bad0-c55b-7dcc-8763-033c59405d33");
|
||||
const LLUUID ANIM_AGENT_HOLD_THROW_R = LLUUID("7570c7b5-1f22-56dd-56ef-a9168241bbb6");
|
||||
const LLUUID ANIM_AGENT_HOVER = LLUUID("4ae8016b-31b9-03bb-c401-b1ea941db41d");
|
||||
const LLUUID ANIM_AGENT_HOVER_DOWN = LLUUID("20f063ea-8306-2562-0b07-5c853b37b31e");
|
||||
const LLUUID ANIM_AGENT_HOVER_UP = LLUUID("62c5de58-cb33-5743-3d07-9e4cd4352864");
|
||||
const LLUUID ANIM_AGENT_IMPATIENT = LLUUID("5ea3991f-c293-392e-6860-91dfa01278a3");
|
||||
const LLUUID ANIM_AGENT_JUMP = LLUUID("2305bd75-1ca9-b03b-1faa-b176b8a8c49e");
|
||||
const LLUUID ANIM_AGENT_JUMP_FOR_JOY = LLUUID("709ea28e-1573-c023-8bf8-520c8bc637fa");
|
||||
const LLUUID ANIM_AGENT_KISS_MY_BUTT = LLUUID("19999406-3a3a-d58c-a2ac-d72e555dcf51");
|
||||
const LLUUID ANIM_AGENT_LAND = LLUUID("7a17b059-12b2-41b1-570a-186368b6aa6f");
|
||||
const LLUUID ANIM_AGENT_LAUGH_SHORT = LLUUID("ca5b3f14-3194-7a2b-c894-aa699b718d1f");
|
||||
const LLUUID ANIM_AGENT_MEDIUM_LAND = LLUUID("f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57");
|
||||
const LLUUID ANIM_AGENT_MOTORCYCLE_SIT = LLUUID("08464f78-3a8e-2944-cba5-0c94aff3af29");
|
||||
const LLUUID ANIM_AGENT_MUSCLE_BEACH = LLUUID("315c3a41-a5f3-0ba4-27da-f893f769e69b");
|
||||
const LLUUID ANIM_AGENT_NO = LLUUID("5a977ed9-7f72-44e9-4c4c-6e913df8ae74");
|
||||
const LLUUID ANIM_AGENT_NO_UNHAPPY = LLUUID("d83fa0e5-97ed-7eb2-e798-7bd006215cb4");
|
||||
const LLUUID ANIM_AGENT_NYAH_NYAH = LLUUID("f061723d-0a18-754f-66ee-29a44795a32f");
|
||||
const LLUUID ANIM_AGENT_ONETWO_PUNCH = LLUUID("eefc79be-daae-a239-8c04-890f5d23654a");
|
||||
const LLUUID ANIM_AGENT_PEACE = LLUUID("b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9");
|
||||
const LLUUID ANIM_AGENT_POINT_ME = LLUUID("17c024cc-eef2-f6a0-3527-9869876d7752");
|
||||
const LLUUID ANIM_AGENT_POINT_YOU = LLUUID("ec952cca-61ef-aa3b-2789-4d1344f016de");
|
||||
const LLUUID ANIM_AGENT_PRE_JUMP = LLUUID("7a4e87fe-de39-6fcb-6223-024b00893244");
|
||||
const LLUUID ANIM_AGENT_PUNCH_LEFT = LLUUID("f3300ad9-3462-1d07-2044-0fef80062da0");
|
||||
const LLUUID ANIM_AGENT_PUNCH_RIGHT = LLUUID("c8e42d32-7310-6906-c903-cab5d4a34656");
|
||||
const LLUUID ANIM_AGENT_REPULSED = LLUUID("36f81a92-f076-5893-dc4b-7c3795e487cf");
|
||||
const LLUUID ANIM_AGENT_ROUNDHOUSE_KICK = LLUUID("49aea43b-5ac3-8a44-b595-96100af0beda");
|
||||
const LLUUID ANIM_AGENT_RPS_COUNTDOWN = LLUUID("35db4f7e-28c2-6679-cea9-3ee108f7fc7f");
|
||||
const LLUUID ANIM_AGENT_RPS_PAPER = LLUUID("0836b67f-7f7b-f37b-c00a-460dc1521f5a");
|
||||
const LLUUID ANIM_AGENT_RPS_ROCK = LLUUID("42dd95d5-0bc6-6392-f650-777304946c0f");
|
||||
const LLUUID ANIM_AGENT_RPS_SCISSORS = LLUUID("16803a9f-5140-e042-4d7b-d28ba247c325");
|
||||
const LLUUID ANIM_AGENT_RUN = LLUUID("05ddbff8-aaa9-92a1-2b74-8fe77a29b445");
|
||||
const LLUUID ANIM_AGENT_RUN_NEW = LLUUID("1ab1b236-cd08-21e6-0cbc-0d923fc6eca2");
|
||||
const LLUUID ANIM_AGENT_SAD = LLUUID("0eb702e2-cc5a-9a88-56a5-661a55c0676a");
|
||||
const LLUUID ANIM_AGENT_SALUTE = LLUUID("cd7668a6-7011-d7e2-ead8-fc69eff1a104");
|
||||
const LLUUID ANIM_AGENT_SHOOT_BOW_L = LLUUID("e04d450d-fdb5-0432-fd68-818aaf5935f8");
|
||||
const LLUUID ANIM_AGENT_SHOUT = LLUUID("6bd01860-4ebd-127a-bb3d-d1427e8e0c42");
|
||||
const LLUUID ANIM_AGENT_SHRUG = LLUUID("70ea714f-3a97-d742-1b01-590a8fcd1db5");
|
||||
const LLUUID ANIM_AGENT_SIT = LLUUID("1a5fe8ac-a804-8a5d-7cbd-56bd83184568");
|
||||
const LLUUID ANIM_AGENT_SIT_FEMALE = LLUUID("b1709c8d-ecd3-54a1-4f28-d55ac0840782");
|
||||
const LLUUID ANIM_AGENT_SIT_GENERIC = LLUUID("245f3c54-f1c0-bf2e-811f-46d8eeb386e7");
|
||||
const LLUUID ANIM_AGENT_SIT_GROUND = LLUUID("1c7600d6-661f-b87b-efe2-d7421eb93c86");
|
||||
const LLUUID ANIM_AGENT_SIT_GROUND_CONSTRAINED = LLUUID("1a2bd58e-87ff-0df8-0b4c-53e047b0bb6e");
|
||||
const LLUUID ANIM_AGENT_SIT_TO_STAND = LLUUID("a8dee56f-2eae-9e7a-05a2-6fb92b97e21e");
|
||||
const LLUUID ANIM_AGENT_SLEEP = LLUUID("f2bed5f9-9d44-39af-b0cd-257b2a17fe40");
|
||||
const LLUUID ANIM_AGENT_SMOKE_IDLE = LLUUID("d2f2ee58-8ad1-06c9-d8d3-3827ba31567a");
|
||||
const LLUUID ANIM_AGENT_SMOKE_INHALE = LLUUID("6802d553-49da-0778-9f85-1599a2266526");
|
||||
const LLUUID ANIM_AGENT_SMOKE_THROW_DOWN = LLUUID("0a9fb970-8b44-9114-d3a9-bf69cfe804d6");
|
||||
const LLUUID ANIM_AGENT_SNAPSHOT = LLUUID("eae8905b-271a-99e2-4c0e-31106afd100c");
|
||||
const LLUUID ANIM_AGENT_STAND = LLUUID("2408fe9e-df1d-1d7d-f4ff-1384fa7b350f");
|
||||
const LLUUID ANIM_AGENT_STANDUP = LLUUID("3da1d753-028a-5446-24f3-9c9b856d9422");
|
||||
const LLUUID ANIM_AGENT_STAND_1 = LLUUID("15468e00-3400-bb66-cecc-646d7c14458e");
|
||||
const LLUUID ANIM_AGENT_STAND_2 = LLUUID("370f3a20-6ca6-9971-848c-9a01bc42ae3c");
|
||||
const LLUUID ANIM_AGENT_STAND_3 = LLUUID("42b46214-4b44-79ae-deb8-0df61424ff4b");
|
||||
const LLUUID ANIM_AGENT_STAND_4 = LLUUID("f22fed8b-a5ed-2c93-64d5-bdd8b93c889f");
|
||||
const LLUUID ANIM_AGENT_STRETCH = LLUUID("80700431-74ec-a008-14f8-77575e73693f");
|
||||
const LLUUID ANIM_AGENT_STRIDE = LLUUID("1cb562b0-ba21-2202-efb3-30f82cdf9595");
|
||||
const LLUUID ANIM_AGENT_SURF = LLUUID("41426836-7437-7e89-025d-0aa4d10f1d69");
|
||||
const LLUUID ANIM_AGENT_SURPRISE = LLUUID("313b9881-4302-73c0-c7d0-0e7a36b6c224");
|
||||
const LLUUID ANIM_AGENT_SWORD_STRIKE = LLUUID("85428680-6bf9-3e64-b489-6f81087c24bd");
|
||||
const LLUUID ANIM_AGENT_TALK = LLUUID("5c682a95-6da4-a463-0bf6-0f5b7be129d1");
|
||||
const LLUUID ANIM_AGENT_TANTRUM = LLUUID("11000694-3f41-adc2-606b-eee1d66f3724");
|
||||
const LLUUID ANIM_AGENT_THROW_R = LLUUID("aa134404-7dac-7aca-2cba-435f9db875ca");
|
||||
const LLUUID ANIM_AGENT_TRYON_SHIRT = LLUUID("83ff59fe-2346-f236-9009-4e3608af64c1");
|
||||
const LLUUID ANIM_AGENT_TURNLEFT = LLUUID("56e0ba0d-4a9f-7f27-6117-32f2ebbf6135");
|
||||
const LLUUID ANIM_AGENT_TURNRIGHT = LLUUID("2d6daa51-3192-6794-8e2e-a15f8338ec30");
|
||||
const LLUUID ANIM_AGENT_TYPE = LLUUID("c541c47f-e0c0-058b-ad1a-d6ae3a4584d9");
|
||||
const LLUUID ANIM_AGENT_WALK = LLUUID("6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0");
|
||||
const LLUUID ANIM_AGENT_WALK_NEW = LLUUID("33339176-7ddc-9397-94a4-bf3403cbc8f5");
|
||||
const LLUUID ANIM_AGENT_WHISPER = LLUUID("7693f268-06c7-ea71-fa21-2b30d6533f8f");
|
||||
const LLUUID ANIM_AGENT_WHISTLE = LLUUID("b1ed7982-c68e-a982-7561-52a88a5298c0");
|
||||
const LLUUID ANIM_AGENT_WINK = LLUUID("869ecdad-a44b-671e-3266-56aef2e3ac2e");
|
||||
const LLUUID ANIM_AGENT_WINK_HOLLYWOOD = LLUUID("c0c4030f-c02b-49de-24ba-2331f43fe41c");
|
||||
const LLUUID ANIM_AGENT_WORRY = LLUUID("9f496bd2-589a-709f-16cc-69bf7df1d36c");
|
||||
const LLUUID ANIM_AGENT_YES = LLUUID("15dd911d-be82-2856-26db-27659b142875");
|
||||
const LLUUID ANIM_AGENT_YES_HAPPY = LLUUID("b8c8b2a3-9008-1771-3bfc-90924955ab2d");
|
||||
const LLUUID ANIM_AGENT_YOGA_FLOAT = LLUUID("42ecd00b-9947-a97c-400a-bbc9174c7aeb");
|
||||
LLUUID const ANIM_AGENT_AFRAID ("6b61c8e8-4747-0d75-12d7-e49ff207a4ca");
|
||||
LLUUID const ANIM_AGENT_AIM_BAZOOKA_R ("b5b4a67d-0aee-30d2-72cd-77b333e932ef");
|
||||
LLUUID const ANIM_AGENT_AIM_BOW_L ("46bb4359-de38-4ed8-6a22-f1f52fe8f506");
|
||||
LLUUID const ANIM_AGENT_AIM_HANDGUN_R ("3147d815-6338-b932-f011-16b56d9ac18b");
|
||||
LLUUID const ANIM_AGENT_AIM_RIFLE_R ("ea633413-8006-180a-c3ba-96dd1d756720");
|
||||
LLUUID const ANIM_AGENT_ANGRY ("5747a48e-073e-c331-f6f3-7c2149613d3e");
|
||||
LLUUID const ANIM_AGENT_AWAY ("fd037134-85d4-f241-72c6-4f42164fedee");
|
||||
LLUUID const ANIM_AGENT_BACKFLIP ("c4ca6188-9127-4f31-0158-23c4e2f93304");
|
||||
LLUUID const ANIM_AGENT_BELLY_LAUGH ("18b3a4b5-b463-bd48-e4b6-71eaac76c515");
|
||||
LLUUID const ANIM_AGENT_BLOW_KISS ("db84829b-462c-ee83-1e27-9bbee66bd624");
|
||||
LLUUID const ANIM_AGENT_BORED ("b906c4ba-703b-1940-32a3-0c7f7d791510");
|
||||
LLUUID const ANIM_AGENT_BOW ("82e99230-c906-1403-4d9c-3889dd98daba");
|
||||
LLUUID const ANIM_AGENT_BRUSH ("349a3801-54f9-bf2c-3bd0-1ac89772af01");
|
||||
LLUUID const ANIM_AGENT_BUSY ("efcf670c-2d18-8128-973a-034ebc806b67");
|
||||
LLUUID const ANIM_AGENT_CLAP ("9b0c1c4e-8ac7-7969-1494-28c874c4f668");
|
||||
LLUUID const ANIM_AGENT_COURTBOW ("9ba1c942-08be-e43a-fb29-16ad440efc50");
|
||||
LLUUID const ANIM_AGENT_CROUCH ("201f3fdf-cb1f-dbec-201f-7333e328ae7c");
|
||||
LLUUID const ANIM_AGENT_CROUCHWALK ("47f5f6fb-22e5-ae44-f871-73aaaf4a6022");
|
||||
LLUUID const ANIM_AGENT_CRY ("92624d3e-1068-f1aa-a5ec-8244585193ed");
|
||||
LLUUID const ANIM_AGENT_CUSTOMIZE ("038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53");
|
||||
LLUUID const ANIM_AGENT_CUSTOMIZE_DONE ("6883a61a-b27b-5914-a61e-dda118a9ee2c");
|
||||
LLUUID const ANIM_AGENT_DANCE1 ("b68a3d7c-de9e-fc87-eec8-543d787e5b0d");
|
||||
LLUUID const ANIM_AGENT_DANCE2 ("928cae18-e31d-76fd-9cc9-2f55160ff818");
|
||||
LLUUID const ANIM_AGENT_DANCE3 ("30047778-10ea-1af7-6881-4db7a3a5a114");
|
||||
LLUUID const ANIM_AGENT_DANCE4 ("951469f4-c7b2-c818-9dee-ad7eea8c30b7");
|
||||
LLUUID const ANIM_AGENT_DANCE5 ("4bd69a1d-1114-a0b4-625f-84e0a5237155");
|
||||
LLUUID const ANIM_AGENT_DANCE6 ("cd28b69b-9c95-bb78-3f94-8d605ff1bb12");
|
||||
LLUUID const ANIM_AGENT_DANCE7 ("a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6");
|
||||
LLUUID const ANIM_AGENT_DANCE8 ("b0dc417c-1f11-af36-2e80-7e7489fa7cdc");
|
||||
LLUUID const ANIM_AGENT_DEAD ("57abaae6-1d17-7b1b-5f98-6d11a6411276");
|
||||
LLUUID const ANIM_AGENT_DRINK ("0f86e355-dd31-a61c-fdb0-3a96b9aad05f");
|
||||
LLUUID const ANIM_AGENT_EMBARRASSED ("514af488-9051-044a-b3fc-d4dbf76377c6");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_AFRAID ("aa2df84d-cf8f-7218-527b-424a52de766e");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_ANGER ("1a03b575-9634-b62a-5767-3a679e81f4de");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_BORED ("214aa6c1-ba6a-4578-f27c-ce7688f61d0d");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_CRY ("d535471b-85bf-3b4d-a542-93bea4f59d33");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_DISDAIN ("d4416ff1-09d3-300f-4183-1b68a19b9fc1");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_EMBARRASSED ("0b8c8211-d78c-33e8-fa28-c51a9594e424");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_FROWN ("fee3df48-fa3d-1015-1e26-a205810e3001");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_KISS ("1e8d90cc-a84e-e135-884c-7c82c8b03a14");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_LAUGH ("62570842-0950-96f8-341c-809e65110823");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_OPEN_MOUTH ("d63bc1f9-fc81-9625-a0c6-007176d82eb7");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_REPULSED ("f76cda94-41d4-a229-2872-e0296e58afe1");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_SAD ("eb6ebfb2-a4b3-a19c-d388-4dd5c03823f7");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_SHRUG ("a351b1bc-cc94-aac2-7bea-a7e6ebad15ef");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_SMILE ("b7c7c833-e3d3-c4e3-9fc0-131237446312");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_SURPRISE ("728646d9-cc79-08b2-32d6-937f0a835c24");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_TONGUE_OUT ("835965c6-7f2f-bda2-5deb-2478737f91bf");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_TOOTHSMILE ("b92ec1a5-e7ce-a76b-2b05-bcdb9311417e");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_WINK ("da020525-4d94-59d6-23d7-81fdebf33148");
|
||||
LLUUID const ANIM_AGENT_EXPRESS_WORRY ("9c05e5c7-6f07-6ca4-ed5a-b230390c3950");
|
||||
LLUUID const ANIM_AGENT_FALLDOWN ("666307d9-a860-572d-6fd4-c3ab8865c094");
|
||||
LLUUID const ANIM_AGENT_FEMALE_RUN_NEW ("85995026-eade-5d78-d364-94a64512cb66");
|
||||
LLUUID const ANIM_AGENT_FEMALE_WALK ("f5fc7433-043d-e819-8298-f519a119b688");
|
||||
LLUUID const ANIM_AGENT_FEMALE_WALK_NEW ("d60c41d2-7c24-7074-d3fa-6101cea22a51");
|
||||
LLUUID const ANIM_AGENT_FINGER_WAG ("c1bc7f36-3ba0-d844-f93c-93be945d644f");
|
||||
LLUUID const ANIM_AGENT_FIST_PUMP ("7db00ccd-f380-f3ee-439d-61968ec69c8a");
|
||||
LLUUID const ANIM_AGENT_FLY ("aec4610c-757f-bc4e-c092-c6e9caf18daf");
|
||||
LLUUID const ANIM_AGENT_FLYSLOW ("2b5a38b2-5e00-3a97-a495-4c826bc443e6");
|
||||
LLUUID const ANIM_AGENT_HELLO ("9b29cd61-c45b-5689-ded2-91756b8d76a9");
|
||||
LLUUID const ANIM_AGENT_HOLD_BAZOOKA_R ("ef62d355-c815-4816-2474-b1acc21094a6");
|
||||
LLUUID const ANIM_AGENT_HOLD_BOW_L ("8b102617-bcba-037b-86c1-b76219f90c88");
|
||||
LLUUID const ANIM_AGENT_HOLD_HANDGUN_R ("efdc1727-8b8a-c800-4077-975fc27ee2f2");
|
||||
LLUUID const ANIM_AGENT_HOLD_RIFLE_R ("3d94bad0-c55b-7dcc-8763-033c59405d33");
|
||||
LLUUID const ANIM_AGENT_HOLD_THROW_R ("7570c7b5-1f22-56dd-56ef-a9168241bbb6");
|
||||
LLUUID const ANIM_AGENT_HOVER ("4ae8016b-31b9-03bb-c401-b1ea941db41d");
|
||||
LLUUID const ANIM_AGENT_HOVER_DOWN ("20f063ea-8306-2562-0b07-5c853b37b31e");
|
||||
LLUUID const ANIM_AGENT_HOVER_UP ("62c5de58-cb33-5743-3d07-9e4cd4352864");
|
||||
LLUUID const ANIM_AGENT_IMPATIENT ("5ea3991f-c293-392e-6860-91dfa01278a3");
|
||||
LLUUID const ANIM_AGENT_JUMP ("2305bd75-1ca9-b03b-1faa-b176b8a8c49e");
|
||||
LLUUID const ANIM_AGENT_JUMP_FOR_JOY ("709ea28e-1573-c023-8bf8-520c8bc637fa");
|
||||
LLUUID const ANIM_AGENT_KISS_MY_BUTT ("19999406-3a3a-d58c-a2ac-d72e555dcf51");
|
||||
LLUUID const ANIM_AGENT_LAND ("7a17b059-12b2-41b1-570a-186368b6aa6f");
|
||||
LLUUID const ANIM_AGENT_LAUGH_SHORT ("ca5b3f14-3194-7a2b-c894-aa699b718d1f");
|
||||
LLUUID const ANIM_AGENT_MEDIUM_LAND ("f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57");
|
||||
LLUUID const ANIM_AGENT_MOTORCYCLE_SIT ("08464f78-3a8e-2944-cba5-0c94aff3af29");
|
||||
LLUUID const ANIM_AGENT_MUSCLE_BEACH ("315c3a41-a5f3-0ba4-27da-f893f769e69b");
|
||||
LLUUID const ANIM_AGENT_NO ("5a977ed9-7f72-44e9-4c4c-6e913df8ae74");
|
||||
LLUUID const ANIM_AGENT_NO_UNHAPPY ("d83fa0e5-97ed-7eb2-e798-7bd006215cb4");
|
||||
LLUUID const ANIM_AGENT_NYAH_NYAH ("f061723d-0a18-754f-66ee-29a44795a32f");
|
||||
LLUUID const ANIM_AGENT_ONETWO_PUNCH ("eefc79be-daae-a239-8c04-890f5d23654a");
|
||||
LLUUID const ANIM_AGENT_PEACE ("b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9");
|
||||
LLUUID const ANIM_AGENT_POINT_ME ("17c024cc-eef2-f6a0-3527-9869876d7752");
|
||||
LLUUID const ANIM_AGENT_POINT_YOU ("ec952cca-61ef-aa3b-2789-4d1344f016de");
|
||||
LLUUID const ANIM_AGENT_PRE_JUMP ("7a4e87fe-de39-6fcb-6223-024b00893244");
|
||||
LLUUID const ANIM_AGENT_PUNCH_LEFT ("f3300ad9-3462-1d07-2044-0fef80062da0");
|
||||
LLUUID const ANIM_AGENT_PUNCH_RIGHT ("c8e42d32-7310-6906-c903-cab5d4a34656");
|
||||
LLUUID const ANIM_AGENT_REPULSED ("36f81a92-f076-5893-dc4b-7c3795e487cf");
|
||||
LLUUID const ANIM_AGENT_ROUNDHOUSE_KICK ("49aea43b-5ac3-8a44-b595-96100af0beda");
|
||||
LLUUID const ANIM_AGENT_RPS_COUNTDOWN ("35db4f7e-28c2-6679-cea9-3ee108f7fc7f");
|
||||
LLUUID const ANIM_AGENT_RPS_PAPER ("0836b67f-7f7b-f37b-c00a-460dc1521f5a");
|
||||
LLUUID const ANIM_AGENT_RPS_ROCK ("42dd95d5-0bc6-6392-f650-777304946c0f");
|
||||
LLUUID const ANIM_AGENT_RPS_SCISSORS ("16803a9f-5140-e042-4d7b-d28ba247c325");
|
||||
LLUUID const ANIM_AGENT_RUN ("05ddbff8-aaa9-92a1-2b74-8fe77a29b445");
|
||||
LLUUID const ANIM_AGENT_RUN_NEW ("1ab1b236-cd08-21e6-0cbc-0d923fc6eca2");
|
||||
LLUUID const ANIM_AGENT_SAD ("0eb702e2-cc5a-9a88-56a5-661a55c0676a");
|
||||
LLUUID const ANIM_AGENT_SALUTE ("cd7668a6-7011-d7e2-ead8-fc69eff1a104");
|
||||
LLUUID const ANIM_AGENT_SHOOT_BOW_L ("e04d450d-fdb5-0432-fd68-818aaf5935f8");
|
||||
LLUUID const ANIM_AGENT_SHOUT ("6bd01860-4ebd-127a-bb3d-d1427e8e0c42");
|
||||
LLUUID const ANIM_AGENT_SHRUG ("70ea714f-3a97-d742-1b01-590a8fcd1db5");
|
||||
LLUUID const ANIM_AGENT_SIT ("1a5fe8ac-a804-8a5d-7cbd-56bd83184568");
|
||||
LLUUID const ANIM_AGENT_SIT_FEMALE ("b1709c8d-ecd3-54a1-4f28-d55ac0840782");
|
||||
LLUUID const ANIM_AGENT_SIT_GENERIC ("245f3c54-f1c0-bf2e-811f-46d8eeb386e7");
|
||||
LLUUID const ANIM_AGENT_SIT_GROUND ("1c7600d6-661f-b87b-efe2-d7421eb93c86");
|
||||
LLUUID const ANIM_AGENT_SIT_GROUND_CONSTRAINED("1a2bd58e-87ff-0df8-0b4c-53e047b0bb6e");
|
||||
LLUUID const ANIM_AGENT_SIT_TO_STAND ("a8dee56f-2eae-9e7a-05a2-6fb92b97e21e");
|
||||
LLUUID const ANIM_AGENT_SLEEP ("f2bed5f9-9d44-39af-b0cd-257b2a17fe40");
|
||||
LLUUID const ANIM_AGENT_SMOKE_IDLE ("d2f2ee58-8ad1-06c9-d8d3-3827ba31567a");
|
||||
LLUUID const ANIM_AGENT_SMOKE_INHALE ("6802d553-49da-0778-9f85-1599a2266526");
|
||||
LLUUID const ANIM_AGENT_SMOKE_THROW_DOWN ("0a9fb970-8b44-9114-d3a9-bf69cfe804d6");
|
||||
LLUUID const ANIM_AGENT_SNAPSHOT ("eae8905b-271a-99e2-4c0e-31106afd100c");
|
||||
LLUUID const ANIM_AGENT_STAND ("2408fe9e-df1d-1d7d-f4ff-1384fa7b350f");
|
||||
LLUUID const ANIM_AGENT_STANDUP ("3da1d753-028a-5446-24f3-9c9b856d9422");
|
||||
LLUUID const ANIM_AGENT_STAND_1 ("15468e00-3400-bb66-cecc-646d7c14458e");
|
||||
LLUUID const ANIM_AGENT_STAND_2 ("370f3a20-6ca6-9971-848c-9a01bc42ae3c");
|
||||
LLUUID const ANIM_AGENT_STAND_3 ("42b46214-4b44-79ae-deb8-0df61424ff4b");
|
||||
LLUUID const ANIM_AGENT_STAND_4 ("f22fed8b-a5ed-2c93-64d5-bdd8b93c889f");
|
||||
LLUUID const ANIM_AGENT_STRETCH ("80700431-74ec-a008-14f8-77575e73693f");
|
||||
LLUUID const ANIM_AGENT_STRIDE ("1cb562b0-ba21-2202-efb3-30f82cdf9595");
|
||||
LLUUID const ANIM_AGENT_SURF ("41426836-7437-7e89-025d-0aa4d10f1d69");
|
||||
LLUUID const ANIM_AGENT_SURPRISE ("313b9881-4302-73c0-c7d0-0e7a36b6c224");
|
||||
LLUUID const ANIM_AGENT_SWORD_STRIKE ("85428680-6bf9-3e64-b489-6f81087c24bd");
|
||||
LLUUID const ANIM_AGENT_TALK ("5c682a95-6da4-a463-0bf6-0f5b7be129d1");
|
||||
LLUUID const ANIM_AGENT_TANTRUM ("11000694-3f41-adc2-606b-eee1d66f3724");
|
||||
LLUUID const ANIM_AGENT_THROW_R ("aa134404-7dac-7aca-2cba-435f9db875ca");
|
||||
LLUUID const ANIM_AGENT_TRYON_SHIRT ("83ff59fe-2346-f236-9009-4e3608af64c1");
|
||||
LLUUID const ANIM_AGENT_TURNLEFT ("56e0ba0d-4a9f-7f27-6117-32f2ebbf6135");
|
||||
LLUUID const ANIM_AGENT_TURNRIGHT ("2d6daa51-3192-6794-8e2e-a15f8338ec30");
|
||||
LLUUID const ANIM_AGENT_TYPE ("c541c47f-e0c0-058b-ad1a-d6ae3a4584d9");
|
||||
LLUUID const ANIM_AGENT_WALK ("6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0");
|
||||
LLUUID const ANIM_AGENT_WALK_NEW ("33339176-7ddc-9397-94a4-bf3403cbc8f5");
|
||||
LLUUID const ANIM_AGENT_WHISPER ("7693f268-06c7-ea71-fa21-2b30d6533f8f");
|
||||
LLUUID const ANIM_AGENT_WHISTLE ("b1ed7982-c68e-a982-7561-52a88a5298c0");
|
||||
LLUUID const ANIM_AGENT_WINK ("869ecdad-a44b-671e-3266-56aef2e3ac2e");
|
||||
LLUUID const ANIM_AGENT_WINK_HOLLYWOOD ("c0c4030f-c02b-49de-24ba-2331f43fe41c");
|
||||
LLUUID const ANIM_AGENT_WORRY ("9f496bd2-589a-709f-16cc-69bf7df1d36c");
|
||||
LLUUID const ANIM_AGENT_YES ("15dd911d-be82-2856-26db-27659b142875");
|
||||
LLUUID const ANIM_AGENT_YES_HAPPY ("b8c8b2a3-9008-1771-3bfc-90924955ab2d");
|
||||
LLUUID const ANIM_AGENT_YOGA_FLOAT ("42ecd00b-9947-a97c-400a-bbc9174c7aeb");
|
||||
|
||||
LLUUID AGENT_WALK_ANIMS[] = {ANIM_AGENT_WALK, ANIM_AGENT_RUN, ANIM_AGENT_CROUCHWALK, ANIM_AGENT_TURNLEFT, ANIM_AGENT_TURNRIGHT};
|
||||
S32 NUM_AGENT_WALK_ANIMS = LL_ARRAY_SIZE(AGENT_WALK_ANIMS);
|
||||
|
|
|
|||
|
|
@ -46,10 +46,10 @@ const U32 AVATAR_TRANSACTED = 0x1 << 3; // whether avatar has actively used p
|
|||
const U32 AVATAR_ONLINE = 0x1 << 4; // the online status of this avatar, if known.
|
||||
const U32 AVATAR_AGEVERIFIED = 0x1 << 5; // whether avatar has been age-verified
|
||||
|
||||
static const std::string VISIBILITY_DEFAULT("default");
|
||||
static const std::string VISIBILITY_HIDDEN("hidden");
|
||||
static const std::string VISIBILITY_VISIBLE("visible");
|
||||
static const std::string VISIBILITY_INVISIBLE("invisible");
|
||||
char const* const VISIBILITY_DEFAULT = "default";
|
||||
char const* const VISIBILITY_HIDDEN = "hidden";
|
||||
char const* const VISIBILITY_VISIBLE = "visible";
|
||||
char const* const VISIBILITY_INVISIBLE = "invisible";
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ const S32 OBJECT_GROUP = 7;
|
|||
const S32 OBJECT_CREATOR = 8;
|
||||
|
||||
// llTextBox() magic token string - yes this is a hack. sue me.
|
||||
const std::string TEXTBOX_MAGIC_TOKEN = "!!llTextBox!!";
|
||||
char const* const TEXTBOX_MAGIC_TOKEN = "!!llTextBox!!";
|
||||
|
||||
// changed() event flags
|
||||
const U32 CHANGED_NONE = 0x0;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,12 @@
|
|||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include "llmemory.h"
|
||||
|
||||
#if MEM_TRACK_MEM
|
||||
#include "llthread.h"
|
||||
#endif
|
||||
|
||||
#if defined(LL_WINDOWS)
|
||||
# include <windows.h>
|
||||
# include <psapi.h>
|
||||
|
|
@ -37,8 +43,6 @@
|
|||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "llmemory.h"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//static
|
||||
|
|
@ -105,6 +109,20 @@ U64 LLMemory::getCurrentRSS()
|
|||
return counters.WorkingSetSize;
|
||||
}
|
||||
|
||||
//static
|
||||
U32 LLMemory::getWorkingSetSize()
|
||||
{
|
||||
PROCESS_MEMORY_COUNTERS pmc ;
|
||||
U32 ret = 0 ;
|
||||
|
||||
if (GetProcessMemoryInfo( GetCurrentProcess(), &pmc, sizeof(pmc)) )
|
||||
{
|
||||
ret = pmc.WorkingSetSize ;
|
||||
}
|
||||
|
||||
return ret ;
|
||||
}
|
||||
|
||||
#elif defined(LL_DARWIN)
|
||||
|
||||
/*
|
||||
|
|
@ -151,6 +169,11 @@ U64 LLMemory::getCurrentRSS()
|
|||
return residentSize;
|
||||
}
|
||||
|
||||
U32 LLMemory::getWorkingSetSize()
|
||||
{
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
#elif defined(LL_LINUX)
|
||||
|
||||
U64 LLMemory::getCurrentRSS()
|
||||
|
|
@ -185,6 +208,11 @@ bail:
|
|||
return rss;
|
||||
}
|
||||
|
||||
U32 LLMemory::getWorkingSetSize()
|
||||
{
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
#elif LL_SOLARIS
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
|
@ -213,6 +241,12 @@ U64 LLMemory::getCurrentRSS()
|
|||
|
||||
return((U64)proc_psinfo.pr_rssize * 1024);
|
||||
}
|
||||
|
||||
U32 LLMemory::getWorkingSetSize()
|
||||
{
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
U64 LLMemory::getCurrentRSS()
|
||||
|
|
@ -220,4 +254,144 @@ U64 LLMemory::getCurrentRSS()
|
|||
return 0;
|
||||
}
|
||||
|
||||
U32 LLMemory::getWorkingSetSize()
|
||||
{
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
#if MEM_TRACK_MEM
|
||||
#include "llframetimer.h"
|
||||
|
||||
//static
|
||||
LLMemTracker* LLMemTracker::sInstance = NULL ;
|
||||
|
||||
LLMemTracker::LLMemTracker()
|
||||
{
|
||||
mLastAllocatedMem = LLMemory::getWorkingSetSize() ;
|
||||
mCapacity = 128 ;
|
||||
mCurIndex = 0 ;
|
||||
mCounter = 0 ;
|
||||
mDrawnIndex = 0 ;
|
||||
mPaused = FALSE ;
|
||||
|
||||
mMutexp = new LLMutex(NULL) ;
|
||||
mStringBuffer = new char*[128] ;
|
||||
mStringBuffer[0] = new char[mCapacity * 128] ;
|
||||
for(S32 i = 1 ; i < mCapacity ; i++)
|
||||
{
|
||||
mStringBuffer[i] = mStringBuffer[i-1] + 128 ;
|
||||
}
|
||||
}
|
||||
|
||||
LLMemTracker::~LLMemTracker()
|
||||
{
|
||||
delete[] mStringBuffer[0] ;
|
||||
delete[] mStringBuffer;
|
||||
delete mMutexp ;
|
||||
}
|
||||
|
||||
//static
|
||||
LLMemTracker* LLMemTracker::getInstance()
|
||||
{
|
||||
if(!sInstance)
|
||||
{
|
||||
sInstance = new LLMemTracker() ;
|
||||
}
|
||||
return sInstance ;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMemTracker::release()
|
||||
{
|
||||
if(sInstance)
|
||||
{
|
||||
delete sInstance ;
|
||||
sInstance = NULL ;
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMemTracker::track(const char* function, const int line)
|
||||
{
|
||||
static const S32 MIN_ALLOCATION = 0 ; //1KB
|
||||
|
||||
if(mPaused)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
U32 allocated_mem = LLMemory::getWorkingSetSize() ;
|
||||
|
||||
LLMutexLock lock(mMutexp) ;
|
||||
|
||||
S32 delta_mem = allocated_mem - mLastAllocatedMem ;
|
||||
mLastAllocatedMem = allocated_mem ;
|
||||
|
||||
if(delta_mem <= 0)
|
||||
{
|
||||
return ; //occupied memory does not grow
|
||||
}
|
||||
|
||||
if(delta_mem < MIN_ALLOCATION)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
char* buffer = mStringBuffer[mCurIndex++] ;
|
||||
F32 time = (F32)LLFrameTimer::getElapsedSeconds() ;
|
||||
S32 hours = (S32)(time / (60*60));
|
||||
S32 mins = (S32)((time - hours*(60*60)) / 60);
|
||||
S32 secs = (S32)((time - hours*(60*60) - mins*60));
|
||||
strcpy(buffer, function) ;
|
||||
sprintf(buffer + strlen(function), " line: %d DeltaMem: %d (bytes) Time: %d:%02d:%02d", line, delta_mem, hours,mins,secs) ;
|
||||
|
||||
if(mCounter < mCapacity)
|
||||
{
|
||||
mCounter++ ;
|
||||
}
|
||||
if(mCurIndex >= mCapacity)
|
||||
{
|
||||
mCurIndex = 0 ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//static
|
||||
void LLMemTracker::preDraw(BOOL pause)
|
||||
{
|
||||
mMutexp->lock() ;
|
||||
|
||||
mPaused = pause ;
|
||||
mDrawnIndex = mCurIndex - 1;
|
||||
mNumOfDrawn = 0 ;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMemTracker::postDraw()
|
||||
{
|
||||
mMutexp->unlock() ;
|
||||
}
|
||||
|
||||
//static
|
||||
const char* LLMemTracker::getNextLine()
|
||||
{
|
||||
if(mNumOfDrawn >= mCounter)
|
||||
{
|
||||
return NULL ;
|
||||
}
|
||||
mNumOfDrawn++;
|
||||
|
||||
if(mDrawnIndex < 0)
|
||||
{
|
||||
mDrawnIndex = mCapacity - 1 ;
|
||||
}
|
||||
|
||||
return mStringBuffer[mDrawnIndex--] ;
|
||||
}
|
||||
|
||||
#endif //MEM_TRACK_MEM
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#ifndef LLMEMORY_H
|
||||
#define LLMEMORY_H
|
||||
|
||||
|
||||
#include "llmemtype.h"
|
||||
|
||||
extern S32 gTotalDAlloc;
|
||||
extern S32 gTotalDAUse;
|
||||
|
|
@ -44,10 +44,55 @@ public:
|
|||
// Return the resident set size of the current process, in bytes.
|
||||
// Return value is zero if not known.
|
||||
static U64 getCurrentRSS();
|
||||
static U32 getWorkingSetSize();
|
||||
private:
|
||||
static char* reserveMem;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
#if MEM_TRACK_MEM
|
||||
class LLMutex ;
|
||||
class LL_COMMON_API LLMemTracker
|
||||
{
|
||||
private:
|
||||
LLMemTracker() ;
|
||||
~LLMemTracker() ;
|
||||
|
||||
public:
|
||||
static void release() ;
|
||||
static LLMemTracker* getInstance() ;
|
||||
|
||||
void track(const char* function, const int line) ;
|
||||
void preDraw(BOOL pause) ;
|
||||
void postDraw() ;
|
||||
const char* getNextLine() ;
|
||||
|
||||
private:
|
||||
static LLMemTracker* sInstance ;
|
||||
|
||||
char** mStringBuffer ;
|
||||
S32 mCapacity ;
|
||||
U32 mLastAllocatedMem ;
|
||||
S32 mCurIndex ;
|
||||
S32 mCounter;
|
||||
S32 mDrawnIndex;
|
||||
S32 mNumOfDrawn;
|
||||
BOOL mPaused;
|
||||
LLMutex* mMutexp ;
|
||||
};
|
||||
|
||||
#define MEM_TRACK_RELEASE LLMemTracker::release() ;
|
||||
#define MEM_TRACK LLMemTracker::getInstance()->track(__FUNCTION__, __LINE__) ;
|
||||
|
||||
#else // MEM_TRACK_MEM
|
||||
|
||||
#define MEM_TRACK_RELEASE
|
||||
#define MEM_TRACK
|
||||
|
||||
#endif // MEM_TRACK_MEM
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
// LLRefCount moved to llrefcount.h
|
||||
|
||||
// LLPointer moved to llpointer.h
|
||||
|
|
|
|||
|
|
@ -229,3 +229,4 @@ char const * LLMemType::getNameFromID(S32 id)
|
|||
return DeclareMemType::mNameList[id];
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#ifndef LL_METRICPERFORMANCETESTER_H
|
||||
#define LL_METRICPERFORMANCETESTER_H
|
||||
|
||||
const std::string DEFAULT_METRIC_NAME("metric");
|
||||
char const* const DEFAULT_METRIC_NAME = "metric";
|
||||
|
||||
/**
|
||||
* @class LLMetricPerformanceTesterBasic
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
#define LL_LLVERSIONVIEWER_H
|
||||
|
||||
const S32 LL_VERSION_MAJOR = 2;
|
||||
const S32 LL_VERSION_MINOR = 6;
|
||||
const S32 LL_VERSION_MINOR = 7;
|
||||
const S32 LL_VERSION_PATCH = 0;
|
||||
const S32 LL_VERSION_BUILD = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -274,11 +274,11 @@ LLImageRaw::LLImageRaw(U8 *data, U16 width, U16 height, S8 components)
|
|||
++sRawImageCount;
|
||||
}
|
||||
|
||||
LLImageRaw::LLImageRaw(const std::string& filename, bool j2c_lowest_mip_only)
|
||||
: LLImageBase()
|
||||
{
|
||||
createFromFile(filename, j2c_lowest_mip_only);
|
||||
}
|
||||
//LLImageRaw::LLImageRaw(const std::string& filename, bool j2c_lowest_mip_only)
|
||||
// : LLImageBase()
|
||||
//{
|
||||
// createFromFile(filename, j2c_lowest_mip_only);
|
||||
//}
|
||||
|
||||
LLImageRaw::~LLImageRaw()
|
||||
{
|
||||
|
|
@ -1178,7 +1178,7 @@ file_extensions[] =
|
|||
{ "png", IMG_CODEC_PNG }
|
||||
};
|
||||
#define NUM_FILE_EXTENSIONS LL_ARRAY_SIZE(file_extensions)
|
||||
|
||||
#if 0
|
||||
static std::string find_file(std::string &name, S8 *codec)
|
||||
{
|
||||
std::string tname;
|
||||
|
|
@ -1196,7 +1196,7 @@ static std::string find_file(std::string &name, S8 *codec)
|
|||
}
|
||||
return std::string("");
|
||||
}
|
||||
|
||||
#endif
|
||||
EImageCodec LLImageBase::getCodecFromExtension(const std::string& exten)
|
||||
{
|
||||
for (int i=0; i<(int)(NUM_FILE_EXTENSIONS); i++)
|
||||
|
|
@ -1206,7 +1206,7 @@ EImageCodec LLImageBase::getCodecFromExtension(const std::string& exten)
|
|||
}
|
||||
return IMG_CODEC_INVALID;
|
||||
}
|
||||
|
||||
#if 0
|
||||
bool LLImageRaw::createFromFile(const std::string &filename, bool j2c_lowest_mip_only)
|
||||
{
|
||||
std::string name = filename;
|
||||
|
|
@ -1313,7 +1313,7 @@ bool LLImageRaw::createFromFile(const std::string &filename, bool j2c_lowest_mip
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
//---------------------------------------------------------------------------
|
||||
// LLImageFormatted
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ public:
|
|||
LLImageRaw(U16 width, U16 height, S8 components);
|
||||
LLImageRaw(U8 *data, U16 width, U16 height, S8 components);
|
||||
// Construct using createFromFile (used by tools)
|
||||
LLImageRaw(const std::string& filename, bool j2c_lowest_mip_only = false);
|
||||
//LLImageRaw(const std::string& filename, bool j2c_lowest_mip_only = false);
|
||||
|
||||
/*virtual*/ void deleteData();
|
||||
/*virtual*/ U8* allocateData(S32 size = -1);
|
||||
|
|
@ -226,7 +226,7 @@ public:
|
|||
|
||||
protected:
|
||||
// Create an image from a local file (generally used in tools)
|
||||
bool createFromFile(const std::string& filename, bool j2c_lowest_mip_only = false);
|
||||
//bool createFromFile(const std::string& filename, bool j2c_lowest_mip_only = false);
|
||||
|
||||
void copyLineScaled( U8* in, U8* out, S32 in_pixel_len, S32 out_pixel_len, S32 in_pixel_step, S32 out_pixel_step );
|
||||
void compositeRowScaled4onto3( U8* in, U8* out, S32 in_pixel_len, S32 out_pixel_len );
|
||||
|
|
|
|||
|
|
@ -38,6 +38,12 @@ LLImageDecodeThread::LLImageDecodeThread(bool threaded)
|
|||
mCreationMutex = new LLMutex(getAPRPool());
|
||||
}
|
||||
|
||||
//virtual
|
||||
LLImageDecodeThread::~LLImageDecodeThread()
|
||||
{
|
||||
delete mCreationMutex ;
|
||||
}
|
||||
|
||||
// MAIN THREAD
|
||||
// virtual
|
||||
S32 LLImageDecodeThread::update(U32 max_time_ms)
|
||||
|
|
|
|||
|
|
@ -73,6 +73,8 @@ public:
|
|||
|
||||
public:
|
||||
LLImageDecodeThread(bool threaded = true);
|
||||
virtual ~LLImageDecodeThread();
|
||||
|
||||
handle_t decodeImage(LLImageFormatted* image,
|
||||
U32 priority, S32 discard, BOOL needs_aux,
|
||||
Responder* responder);
|
||||
|
|
|
|||
|
|
@ -703,6 +703,7 @@ void LLCamera::calculateFrustumPlanes(F32 left, F32 right, F32 top, F32 bottom)
|
|||
mLocalPlanes[PLANE_BOTTOM].setVec( a, c, b);
|
||||
|
||||
//calculate center and radius squared of frustum in world absolute coordinates
|
||||
static LLVector3 const X_AXIS(1.f, 0.f, 0.f);
|
||||
mFrustCenter = X_AXIS*mFarPlane*0.5f;
|
||||
mFrustCenter = transformToAbsolute(mFrustCenter);
|
||||
mFrustRadiusSquared = mFarPlane*0.5f;
|
||||
|
|
|
|||
|
|
@ -50,15 +50,6 @@ const F32 MIN_FAR_PLANE = 0.2f;
|
|||
static const F32 MIN_FIELD_OF_VIEW = 5.0f * DEG_TO_RAD;
|
||||
static const F32 MAX_FIELD_OF_VIEW = 175.f * DEG_TO_RAD;
|
||||
|
||||
static const LLVector3 X_AXIS(1.f,0.f,0.f);
|
||||
static const LLVector3 Y_AXIS(0.f,1.f,0.f);
|
||||
static const LLVector3 Z_AXIS(0.f,0.f,1.f);
|
||||
|
||||
static const LLVector3 NEG_X_AXIS(-1.f,0.f,0.f);
|
||||
static const LLVector3 NEG_Y_AXIS(0.f,-1.f,0.f);
|
||||
static const LLVector3 NEG_Z_AXIS(0.f,0.f,-1.f);
|
||||
|
||||
|
||||
// An LLCamera is an LLCoorFrame with a view frustum.
|
||||
// This means that it has several methods for moving it around
|
||||
// that are inherited from the LLCoordFrame() class :
|
||||
|
|
|
|||
|
|
@ -4406,19 +4406,54 @@ std::ostream& operator<<(std::ostream &s, const LLVolume *volumep)
|
|||
|
||||
BOOL LLVolumeFace::create(LLVolume* volume, BOOL partial_build)
|
||||
{
|
||||
BOOL ret = FALSE ;
|
||||
if (mTypeMask & CAP_MASK)
|
||||
{
|
||||
return createCap(volume, partial_build);
|
||||
ret = createCap(volume, partial_build);
|
||||
}
|
||||
else if ((mTypeMask & END_MASK) || (mTypeMask & SIDE_MASK))
|
||||
{
|
||||
return createSide(volume, partial_build);
|
||||
ret = createSide(volume, partial_build);
|
||||
}
|
||||
else
|
||||
{
|
||||
llerrs << "Unknown/uninitialized face type!" << llendl;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//update the range of the texture coordinates
|
||||
if(ret)
|
||||
{
|
||||
mTexCoordExtents[0].setVec(1.f, 1.f) ;
|
||||
mTexCoordExtents[1].setVec(0.f, 0.f) ;
|
||||
|
||||
U32 end = mVertices.size() ;
|
||||
for(U32 i = 0 ; i < end ; i++)
|
||||
{
|
||||
if(mTexCoordExtents[0].mV[0] > mVertices[i].mTexCoord.mV[0])
|
||||
{
|
||||
mTexCoordExtents[0].mV[0] = mVertices[i].mTexCoord.mV[0] ;
|
||||
}
|
||||
if(mTexCoordExtents[1].mV[0] < mVertices[i].mTexCoord.mV[0])
|
||||
{
|
||||
mTexCoordExtents[1].mV[0] = mVertices[i].mTexCoord.mV[0] ;
|
||||
}
|
||||
|
||||
if(mTexCoordExtents[0].mV[1] > mVertices[i].mTexCoord.mV[1])
|
||||
{
|
||||
mTexCoordExtents[0].mV[1] = mVertices[i].mTexCoord.mV[1] ;
|
||||
}
|
||||
if(mTexCoordExtents[1].mV[1] < mVertices[i].mTexCoord.mV[1])
|
||||
{
|
||||
mTexCoordExtents[1].mV[1] = mVertices[i].mTexCoord.mV[1] ;
|
||||
}
|
||||
}
|
||||
mTexCoordExtents[0].mV[0] = llmax(0.f, mTexCoordExtents[0].mV[0]) ;
|
||||
mTexCoordExtents[0].mV[1] = llmax(0.f, mTexCoordExtents[0].mV[1]) ;
|
||||
mTexCoordExtents[1].mV[0] = llmin(1.f, mTexCoordExtents[1].mV[0]) ;
|
||||
mTexCoordExtents[1].mV[1] = llmin(1.f, mTexCoordExtents[1].mV[1]) ;
|
||||
}
|
||||
|
||||
return ret ;
|
||||
}
|
||||
|
||||
void LerpPlanarVertex(LLVolumeFace::VertexData& v0,
|
||||
|
|
|
|||
|
|
@ -831,6 +831,7 @@ public:
|
|||
S32 mNumT;
|
||||
|
||||
LLVector3 mExtents[2]; //minimum and maximum point of face
|
||||
LLVector2 mTexCoordExtents[2]; //minimum and maximum of texture coordinates of the face.
|
||||
|
||||
std::vector<VertexData> mVertices;
|
||||
std::vector<U16> mIndices;
|
||||
|
|
|
|||
|
|
@ -36,11 +36,11 @@
|
|||
#include "../v3dmath.h"
|
||||
|
||||
#include "../test/lltut.h"
|
||||
|
||||
#if LL_WINDOWS
|
||||
// disable unreachable code warnings caused by usage of skip.
|
||||
#pragma warning(disable: 4702)
|
||||
#endif
|
||||
|
||||
#if LL_WINDOWS
|
||||
// disable unreachable code warnings caused by usage of skip.
|
||||
#pragma warning(disable: 4702)
|
||||
#endif
|
||||
|
||||
namespace tut
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file test_llsdmessage_peer.py
|
||||
@author Nat Goodspeed
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file testrunner.py
|
||||
@author Nat Goodspeed
|
||||
|
|
|
|||
|
|
@ -64,9 +64,10 @@ LLPluginClassMedia::~LLPluginClassMedia()
|
|||
reset();
|
||||
}
|
||||
|
||||
bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug)
|
||||
bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_dir, const std::string &plugin_filename, bool debug)
|
||||
{
|
||||
LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL;
|
||||
LL_DEBUGS("Plugin") << "dir: " << plugin_dir << LL_ENDL;
|
||||
LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL;
|
||||
|
||||
mPlugin = new LLPluginProcessParent(this);
|
||||
|
|
@ -77,7 +78,7 @@ bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::s
|
|||
message.setValue("target", mTarget);
|
||||
sendMessage(message);
|
||||
|
||||
mPlugin->init(launcher_filename, plugin_filename, debug);
|
||||
mPlugin->init(launcher_filename, plugin_dir, plugin_filename, debug);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ public:
|
|||
|
||||
// local initialization, called by the media manager when creating a source
|
||||
virtual bool init(const std::string &launcher_filename,
|
||||
const std::string &plugin_dir,
|
||||
const std::string &plugin_filename,
|
||||
bool debug);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,10 @@
|
|||
|
||||
#include "llapr.h"
|
||||
|
||||
#if LL_WINDOWS
|
||||
#include "direct.h" // needed for _chdir()
|
||||
#endif
|
||||
|
||||
/** Virtual destructor. */
|
||||
LLPluginInstanceMessageListener::~LLPluginInstanceMessageListener()
|
||||
{
|
||||
|
|
@ -73,10 +77,24 @@ LLPluginInstance::~LLPluginInstance()
|
|||
* @param[in] plugin_file Name of plugin dll/dylib/so. TODO:DOC is this correct? see .h
|
||||
* @return 0 if successful, APR error code or error code from the plugin's init function on failure.
|
||||
*/
|
||||
int LLPluginInstance::load(std::string &plugin_file)
|
||||
int LLPluginInstance::load(const std::string& plugin_dir, std::string &plugin_file)
|
||||
{
|
||||
pluginInitFunction init_function = NULL;
|
||||
|
||||
if ( plugin_dir.length() )
|
||||
{
|
||||
#if LL_WINDOWS
|
||||
// VWR-21275:
|
||||
// *SOME* Windows systems fail to load the Qt plugins if the current working
|
||||
// directory is not the same as the directory with the Qt DLLs in.
|
||||
// This should not cause any run time issues since we are changing the cwd for the
|
||||
// plugin shell process and not the viewer.
|
||||
// Changing back to the previous directory is not necessary since the plugin shell
|
||||
// quits once the plugin exits.
|
||||
_chdir( plugin_dir.c_str() );
|
||||
#endif
|
||||
};
|
||||
|
||||
int result = apr_dso_load(&mDSOHandle,
|
||||
plugin_file.c_str(),
|
||||
gAPRPoolp);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public:
|
|||
|
||||
// Load a plugin dll/dylib/so
|
||||
// Returns 0 if successful, APR error code or error code returned from the plugin's init function on failure.
|
||||
int load(std::string &plugin_file);
|
||||
int load(const std::string& plugin_dir, std::string &plugin_file);
|
||||
|
||||
// Sends a message to the plugin.
|
||||
void sendMessage(const std::string &message);
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ void LLPluginProcessChild::idle(void)
|
|||
if(!mPluginFile.empty())
|
||||
{
|
||||
mInstance = new LLPluginInstance(this);
|
||||
if(mInstance->load(mPluginFile) == 0)
|
||||
if(mInstance->load(mPluginDir, mPluginFile) == 0)
|
||||
{
|
||||
mHeartbeat.start();
|
||||
mHeartbeat.setTimerExpirySec(HEARTBEAT_SECONDS);
|
||||
|
|
@ -348,6 +348,7 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message)
|
|||
if(message_name == "load_plugin")
|
||||
{
|
||||
mPluginFile = parsed.getValue("file");
|
||||
mPluginDir = parsed.getValue("dir");
|
||||
}
|
||||
else if(message_name == "shm_add")
|
||||
{
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ private:
|
|||
LLSocket::ptr_t mSocket;
|
||||
|
||||
std::string mPluginFile;
|
||||
std::string mPluginDir;
|
||||
|
||||
LLPluginInstance *mInstance;
|
||||
|
||||
|
|
|
|||
|
|
@ -157,10 +157,11 @@ void LLPluginProcessParent::errorState(void)
|
|||
setState(STATE_ERROR);
|
||||
}
|
||||
|
||||
void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug)
|
||||
void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_dir, const std::string &plugin_filename, bool debug)
|
||||
{
|
||||
mProcess.setExecutable(launcher_filename);
|
||||
mPluginFile = plugin_filename;
|
||||
mPluginDir = plugin_dir;
|
||||
mCPUUsage = 0.0f;
|
||||
mDebug = debug;
|
||||
setState(STATE_INITIALIZED);
|
||||
|
|
@ -445,6 +446,7 @@ void LLPluginProcessParent::idle(void)
|
|||
{
|
||||
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "load_plugin");
|
||||
message.setValue("file", mPluginFile);
|
||||
message.setValue("dir", mPluginDir);
|
||||
sendMessage(message);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ public:
|
|||
~LLPluginProcessParent();
|
||||
|
||||
void init(const std::string &launcher_filename,
|
||||
const std::string &plugin_dir,
|
||||
const std::string &plugin_filename,
|
||||
bool debug);
|
||||
|
||||
|
|
@ -151,6 +152,7 @@ private:
|
|||
LLProcessLauncher mProcess;
|
||||
|
||||
std::string mPluginFile;
|
||||
std::string mPluginDir;
|
||||
|
||||
LLPluginProcessParentOwner *mOwner;
|
||||
|
||||
|
|
|
|||
|
|
@ -403,7 +403,7 @@ S32 LLTextureEntry::setOffsetT(F32 t)
|
|||
|
||||
S32 LLTextureEntry::setRotation(F32 theta)
|
||||
{
|
||||
if (mRotation != theta)
|
||||
if (mRotation != theta && llfinite(theta))
|
||||
{
|
||||
mRotation = theta;
|
||||
return TEM_CHANGE_TEXTURE;
|
||||
|
|
|
|||
|
|
@ -1063,16 +1063,6 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
|
|||
{
|
||||
if (gGL.getTexUnit(0)->bind(this, false, true))
|
||||
{
|
||||
if(gGLManager.mDebugGPU)
|
||||
{
|
||||
llinfos << "Calling glCopyTexSubImage2D(...)" << llendl ;
|
||||
checkTexSize(true) ;
|
||||
llcallstacks << fb_x << " : " << fb_y << " : " << x_pos << " : " << y_pos << " : " << width << " : " << height <<
|
||||
" : " << (S32)mComponents << llcallstacksendl ;
|
||||
|
||||
log_glerror() ;
|
||||
}
|
||||
|
||||
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, fb_x, fb_y, x_pos, y_pos, width, height);
|
||||
mGLTextureCreated = true;
|
||||
stop_glerror();
|
||||
|
|
|
|||
|
|
@ -101,10 +101,18 @@ S32 LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask)
|
|||
{
|
||||
if (0 != LLFile::remove(fullpath))
|
||||
{
|
||||
retry_count++;
|
||||
result = errno;
|
||||
llwarns << "Problem removing " << fullpath << " - errorcode: "
|
||||
<< result << " attempt " << retry_count << llendl;
|
||||
ms_sleep(1000);
|
||||
|
||||
if(retry_count >= 5)
|
||||
{
|
||||
llwarns << "Failed to remove " << fullpath << llendl ;
|
||||
return count ;
|
||||
}
|
||||
|
||||
ms_sleep(100);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -113,8 +121,7 @@ S32 LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask)
|
|||
llwarns << "Successfully removed " << fullpath << llendl;
|
||||
}
|
||||
break;
|
||||
}
|
||||
retry_count++;
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -697,28 +697,6 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>BrowserUseDefaultCAFile</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Tell the built-in web browser to use the CA.pem file shipped with the client.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>BrowserCAFilePath</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Tell the built-in web browser the path to an alternative CA.pem file (only used if BrowserUseDefaultCAFile is false).</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string></string>
|
||||
</map>
|
||||
<key>BlockAvatarAppearanceMessages</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -1179,7 +1157,7 @@
|
|||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>20000</integer>
|
||||
<integer>128</integer>
|
||||
</map>
|
||||
<key>CacheSize</key>
|
||||
<map>
|
||||
|
|
@ -1852,6 +1830,17 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>DebugShowMemory</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show Total Allocated Memory</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>DebugShowRenderInfo</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -1874,10 +1863,21 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>DebugShowTextureInfo</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show inertested texture info</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>DebugShowTime</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show depth buffer contents</string>
|
||||
<string>Show time info</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
|
|
|
|||
|
|
@ -1,29 +1,31 @@
|
|||
#!/usr/bin/env python
|
||||
# @file generate_breakpad_symbols.py
|
||||
# @author Brad Kittenbrink <brad@lindenlab.com>
|
||||
# @brief Simple tool for generating google_breakpad symbol information
|
||||
# for the crash reporter.
|
||||
#
|
||||
# $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
# Second Life Viewer Source Code
|
||||
# Copyright (C) 2010, Linden Research, Inc.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation;
|
||||
# version 2.1 of the License only.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
# $/LicenseInfo$
|
||||
"""\
|
||||
@file generate_breakpad_symbols.py
|
||||
@author Brad Kittenbrink <brad@lindenlab.com>
|
||||
@brief Simple tool for generating google_breakpad symbol information
|
||||
for the crash reporter.
|
||||
|
||||
$LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
Second Life Viewer Source Code
|
||||
Copyright (C) 2010-2011, Linden Research, Inc.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation;
|
||||
version 2.1 of the License only.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
$/LicenseInfo$
|
||||
"""
|
||||
|
||||
|
||||
import collections
|
||||
|
|
|
|||
|
|
@ -1296,7 +1296,7 @@ bool LLAppViewer::mainLoop()
|
|||
resumeMainloopTimeout();
|
||||
|
||||
pingMainloopTimeout("Main:End");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(std::bad_alloc)
|
||||
{
|
||||
|
|
@ -1779,6 +1779,8 @@ bool LLAppViewer::cleanup()
|
|||
|
||||
ll_close_fail_log();
|
||||
|
||||
MEM_TRACK_RELEASE
|
||||
|
||||
llinfos << "Goodbye!" << llendflush;
|
||||
|
||||
// return 0;
|
||||
|
|
@ -2471,15 +2473,23 @@ namespace {
|
|||
|
||||
if(data["required"].asBoolean())
|
||||
{
|
||||
apply_callback = &apply_update_ok_callback;
|
||||
if(LLStartUp::getStartupState() <= STATE_LOGIN_WAIT)
|
||||
{
|
||||
// The user never saw the progress bar.
|
||||
apply_callback = &apply_update_ok_callback;
|
||||
notification_name = "RequiredUpdateDownloadedVerboseDialog";
|
||||
}
|
||||
else if(LLStartUp::getStartupState() < STATE_WORLD_INIT)
|
||||
{
|
||||
// The user is logging in but blocked.
|
||||
apply_callback = &apply_update_ok_callback;
|
||||
notification_name = "RequiredUpdateDownloadedDialog";
|
||||
}
|
||||
else
|
||||
{
|
||||
notification_name = "RequiredUpdateDownloadedDialog";
|
||||
// The user is already logged in; treat like an optional update.
|
||||
apply_callback = &apply_update_callback;
|
||||
notification_name = "DownloadBackgroundTip";
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public:
|
|||
/**
|
||||
* Get host to which to send that capability request.
|
||||
*/
|
||||
virtual LLHost getHost() const = 0;
|
||||
virtual const LLHost& getHost() const = 0;
|
||||
/**
|
||||
* Describe this LLCapabilityProvider for logging etc.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -899,31 +899,14 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
|
|||
}
|
||||
}
|
||||
|
||||
LLTextEditor* text_editor = notify_box->getChild<LLTextEditor>("text_editor_box", TRUE);
|
||||
S32 text_heigth = 0;
|
||||
if(text_editor != NULL)
|
||||
{
|
||||
text_heigth = text_editor->getTextBoundingRect().getHeight();
|
||||
}
|
||||
|
||||
//Prepare the rect for the view
|
||||
LLRect target_rect = mEditor->getDocumentView()->getRect();
|
||||
// squeeze down the widget by subtracting padding off left and right
|
||||
target_rect.mLeft += mLeftWidgetPad + mEditor->getHPad();
|
||||
target_rect.mRight -= mRightWidgetPad;
|
||||
notify_box->reshape(target_rect.getWidth(),
|
||||
notify_box->getRect().getHeight());
|
||||
notify_box->reshape(target_rect.getWidth(), notify_box->getRect().getHeight());
|
||||
notify_box->setOrigin(target_rect.mLeft, notify_box->getRect().mBottom);
|
||||
|
||||
if (text_editor != NULL)
|
||||
{
|
||||
S32 text_heigth_delta =
|
||||
text_editor->getTextBoundingRect().getHeight()
|
||||
- text_heigth;
|
||||
notify_box->reshape(target_rect.getWidth(),
|
||||
notify_box->getRect().getHeight() + text_heigth_delta);
|
||||
}
|
||||
|
||||
LLInlineViewSegment::Params params;
|
||||
params.view = notify_box;
|
||||
params.left_pad = mLeftWidgetPad;
|
||||
|
|
|
|||
|
|
@ -185,6 +185,10 @@ BOOL LLColorSwatchCtrl::handleMouseUp(S32 x, S32 y, MASK mask)
|
|||
llassert(getEnabled());
|
||||
llassert(getVisible());
|
||||
|
||||
// Focus the widget now in order to return the focus
|
||||
// after the color picker is closed.
|
||||
setFocus(TRUE);
|
||||
|
||||
showPicker(FALSE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -177,10 +177,6 @@ void LLViewerDynamicTexture::postRender(BOOL success)
|
|||
generateGLTexture() ;
|
||||
}
|
||||
|
||||
if(gGLManager.mDebugGPU)
|
||||
{
|
||||
LLGLState::dumpStates() ;
|
||||
}
|
||||
success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight);
|
||||
}
|
||||
}
|
||||
|
|
@ -220,12 +216,6 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
|
|||
LLViewerDynamicTexture *dynamicTexture = *iter;
|
||||
if (dynamicTexture->needsRender())
|
||||
{
|
||||
if(gGLManager.mDebugGPU)
|
||||
{
|
||||
llinfos << "class type: " << (S32)dynamicTexture->getType() << llendl;
|
||||
LLGLState::dumpStates() ;
|
||||
}
|
||||
|
||||
glClear(GL_DEPTH_BUFFER_BIT);
|
||||
gDepthDirty = TRUE;
|
||||
|
||||
|
|
|
|||
|
|
@ -1155,7 +1155,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
if (rebuild_tcoord)
|
||||
{
|
||||
LLVector2 tc = vf.mVertices[i].mTexCoord;
|
||||
|
||||
|
||||
if (texgen != LLTextureEntry::TEX_GEN_DEFAULT)
|
||||
{
|
||||
LLVector3 vec = vf.mVertices[i].mPosition;
|
||||
|
|
@ -1331,7 +1331,14 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
mTexExtents[0].setVec(0,0);
|
||||
mTexExtents[1].setVec(1,1);
|
||||
xform(mTexExtents[0], cos_ang, sin_ang, os, ot, ms, mt);
|
||||
xform(mTexExtents[1], cos_ang, sin_ang, os, ot, ms, mt);
|
||||
xform(mTexExtents[1], cos_ang, sin_ang, os, ot, ms, mt);
|
||||
|
||||
F32 es = vf.mTexCoordExtents[1].mV[0] - vf.mTexCoordExtents[0].mV[0] ;
|
||||
F32 et = vf.mTexCoordExtents[1].mV[1] - vf.mTexCoordExtents[0].mV[1] ;
|
||||
mTexExtents[0][0] *= es ;
|
||||
mTexExtents[1][0] *= es ;
|
||||
mTexExtents[0][1] *= et ;
|
||||
mTexExtents[1][1] *= et ;
|
||||
}
|
||||
|
||||
mLastVertexBuffer = mVertexBuffer;
|
||||
|
|
|
|||
|
|
@ -403,9 +403,9 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename)
|
|||
{
|
||||
wcsncpy( mFilesW,L"untitled.jpeg", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/
|
||||
}
|
||||
mOFN.lpstrDefExt = L"jpeg";
|
||||
mOFN.lpstrDefExt = L"jpg";
|
||||
mOFN.lpstrFilter =
|
||||
L"JPEG Images (*.jpeg)\0*.jpeg\0" \
|
||||
L"JPEG Images (*.jpg *.jpeg)\0*.jpg;*.jpeg\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_AVI:
|
||||
|
|
|
|||
|
|
@ -41,35 +41,36 @@
|
|||
|
||||
|
||||
// static
|
||||
std::set<std::string> LLFirstUse::sConfigVariables;
|
||||
//std::set<std::string> LLFirstUse::sConfigVariables;
|
||||
std::set<std::string> LLFirstUse::sConfigVariablesEnabled;
|
||||
|
||||
// static
|
||||
void LLFirstUse::addConfigVariable(const std::string& var)
|
||||
{
|
||||
sConfigVariables.insert(var);
|
||||
}
|
||||
//void LLFirstUse::addConfigVariable(const std::string& var)
|
||||
//{
|
||||
// sConfigVariables.insert(var);
|
||||
//}
|
||||
|
||||
// static
|
||||
void LLFirstUse::disableFirstUse()
|
||||
{
|
||||
// Set all first-use warnings to disabled
|
||||
for (std::set<std::string>::iterator iter = sConfigVariables.begin();
|
||||
iter != sConfigVariables.end(); ++iter)
|
||||
{
|
||||
gWarningSettings.setBOOL(*iter, FALSE);
|
||||
}
|
||||
}
|
||||
//void LLFirstUse::disableFirstUse()
|
||||
//{
|
||||
// // Set all first-use warnings to disabled
|
||||
// for (std::set<std::string>::iterator iter = sConfigVariables.begin();
|
||||
// iter != sConfigVariables.end(); ++iter)
|
||||
// {
|
||||
// gWarningSettings.setBOOL(*iter, FALSE);
|
||||
// }
|
||||
//}
|
||||
|
||||
// static
|
||||
void LLFirstUse::resetFirstUse()
|
||||
{
|
||||
// Set all first-use warnings to disabled
|
||||
for (std::set<std::string>::iterator iter = sConfigVariables.begin();
|
||||
iter != sConfigVariables.end(); ++iter)
|
||||
{
|
||||
gWarningSettings.setBOOL(*iter, TRUE);
|
||||
}
|
||||
}
|
||||
//void LLFirstUse::resetFirstUse()
|
||||
//{
|
||||
// // Set all first-use warnings to disabled
|
||||
// for (std::set<std::string>::iterator iter = sConfigVariables.begin();
|
||||
// iter != sConfigVariables.end(); ++iter)
|
||||
// {
|
||||
// gWarningSettings.setBOOL(*iter, TRUE);
|
||||
// }
|
||||
//}
|
||||
|
||||
// static
|
||||
void LLFirstUse::otherAvatarChatFirst(bool enable)
|
||||
|
|
@ -151,13 +152,21 @@ void LLFirstUse::firstUseNotification(const std::string& control_var, bool enabl
|
|||
|
||||
if (enable)
|
||||
{
|
||||
if(sConfigVariablesEnabled.find(control_var) != sConfigVariablesEnabled.end())
|
||||
{
|
||||
return ; //already added
|
||||
}
|
||||
|
||||
if (gSavedSettings.getBOOL("EnableUIHints"))
|
||||
{
|
||||
LL_DEBUGS("LLFirstUse") << "Trigger first use notification " << notification_name << LL_ENDL;
|
||||
|
||||
// if notification doesn't already exist and this notification hasn't been disabled...
|
||||
if (gWarningSettings.getBOOL(control_var))
|
||||
{ // create new notification
|
||||
{
|
||||
sConfigVariablesEnabled.insert(control_var) ;
|
||||
|
||||
// create new notification
|
||||
LLNotifications::instance().add(LLNotification::Params().name(notification_name).substitutions(args).payload(payload.with("control_var", control_var)));
|
||||
}
|
||||
}
|
||||
|
|
@ -169,7 +178,6 @@ void LLFirstUse::firstUseNotification(const std::string& control_var, bool enabl
|
|||
// redundantly clear settings var here, in case there are no notifications to cancel
|
||||
gWarningSettings.setBOOL(control_var, FALSE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -78,11 +78,11 @@ class LLFirstUse
|
|||
public:
|
||||
|
||||
// Add a config variable to be reset on resetFirstUse()
|
||||
static void addConfigVariable(const std::string& var);
|
||||
//static void addConfigVariable(const std::string& var);
|
||||
|
||||
// Sets all controls back to show the dialogs.
|
||||
static void disableFirstUse();
|
||||
static void resetFirstUse();
|
||||
//static void disableFirstUse();
|
||||
//static void resetFirstUse();
|
||||
|
||||
static void otherAvatarChatFirst(bool enable = true);
|
||||
static void sit(bool enable = true);
|
||||
|
|
@ -98,7 +98,8 @@ public:
|
|||
|
||||
protected:
|
||||
static void firstUseNotification(const std::string& control_var, bool enable, const std::string& notification_name, LLSD args = LLSD(), LLSD payload = LLSD());
|
||||
static std::set<std::string> sConfigVariables;
|
||||
//static std::set<std::string> sConfigVariables;
|
||||
static std::set<std::string> sConfigVariablesEnabled;
|
||||
|
||||
static void init();
|
||||
static bool processNotification(const LLSD& notify);
|
||||
|
|
|
|||
|
|
@ -83,7 +83,8 @@ LLFloaterMap::~LLFloaterMap()
|
|||
BOOL LLFloaterMap::postBuild()
|
||||
{
|
||||
mMap = getChild<LLNetMap>("Net Map");
|
||||
mMap->setToolTipMsg(getString("ToolTipMsg"));
|
||||
mMap->setToolTipMsg(gSavedSettings.getBOOL("DoubleClickTeleport") ?
|
||||
getString("AltToolTipMsg") : getString("ToolTipMsg"));
|
||||
sendChildToBack(mMap);
|
||||
|
||||
mTextBoxNorth = getChild<LLTextBox> ("floater_map_north");
|
||||
|
|
|
|||
|
|
@ -1539,6 +1539,7 @@ LLPanelPreference::LLPanelPreference()
|
|||
: LLPanel()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Pref.setControlFalse", boost::bind(&LLPanelPreference::setControlFalse,this, _2));
|
||||
mCommitCallbackRegistrar.add("Pref.updateMediaAutoPlayCheckbox", boost::bind(&LLPanelPreference::updateMediaAutoPlayCheckbox, this, _1));
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -1700,6 +1701,21 @@ void LLPanelPreference::setControlFalse(const LLSD& user_data)
|
|||
control->set(LLSD(FALSE));
|
||||
}
|
||||
|
||||
void LLPanelPreference::updateMediaAutoPlayCheckbox(LLUICtrl* ctrl)
|
||||
{
|
||||
std::string name = ctrl->getName();
|
||||
|
||||
// Disable "Allow Media to auto play" only when both
|
||||
// "Streaming Music" and "Media" are unchecked. STORM-513.
|
||||
if ((name == "enable_music") || (name == "enable_media"))
|
||||
{
|
||||
bool music_enabled = getChild<LLCheckBoxCtrl>("enable_music")->get();
|
||||
bool media_enabled = getChild<LLCheckBoxCtrl>("enable_media")->get();
|
||||
|
||||
getChild<LLCheckBoxCtrl>("media_auto_play_btn")->setEnabled(music_enabled || media_enabled);
|
||||
}
|
||||
}
|
||||
|
||||
static LLRegisterPanelClassWrapper<LLPanelPreferenceGraphics> t_pref_graph("panel_preference_graphics");
|
||||
|
||||
BOOL LLPanelPreferenceGraphics::postBuild()
|
||||
|
|
|
|||
|
|
@ -189,6 +189,10 @@ public:
|
|||
void setControlFalse(const LLSD& user_data);
|
||||
virtual void setHardwareDefaults(){};
|
||||
|
||||
// Disables "Allow Media to auto play" check box only when both
|
||||
// "Streaming Music" and "Media" are unchecked. Otherwise enables it.
|
||||
void updateMediaAutoPlayCheckbox(LLUICtrl* ctrl);
|
||||
|
||||
// This function squirrels away the current values of the controls so that
|
||||
// cancel() can restore them.
|
||||
virtual void saveSettings();
|
||||
|
|
|
|||
|
|
@ -3,31 +3,25 @@
|
|||
* @author Brad Kittenbrink <brad@lindenlab.com>
|
||||
* @brief Quick and dirty console for region debug settings
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010-2010, Linden Research, Inc.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -3,31 +3,25 @@
|
|||
* @author Brad Kittenbrink <brad@lindenlab.com>
|
||||
* @brief Quick and dirty console for region debug settings
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010-2010, Linden Research, Inc.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1363,6 +1363,36 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
|
|||
floater->getChildView("auto_snapshot_check")->setVisible( is_advance);
|
||||
floater->getChildView("image_quality_slider")->setVisible( is_advance && show_slider);
|
||||
|
||||
if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
|
||||
{ //clamp snapshot resolution to window size when showing UI or HUD in snapshot
|
||||
|
||||
LLSpinCtrl* width_ctrl = floater->getChild<LLSpinCtrl>("snapshot_width");
|
||||
LLSpinCtrl* height_ctrl = floater->getChild<LLSpinCtrl>("snapshot_height");
|
||||
|
||||
S32 width = gViewerWindow->getWindowWidthRaw();
|
||||
S32 height = gViewerWindow->getWindowHeightRaw();
|
||||
|
||||
width_ctrl->setMaxValue(width);
|
||||
|
||||
height_ctrl->setMaxValue(height);
|
||||
|
||||
if (width_ctrl->getValue().asInteger() > width)
|
||||
{
|
||||
width_ctrl->forceSetValue(width);
|
||||
}
|
||||
if (height_ctrl->getValue().asInteger() > height)
|
||||
{
|
||||
height_ctrl->forceSetValue(height);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSpinCtrl* width = floater->getChild<LLSpinCtrl>("snapshot_width");
|
||||
width->setMaxValue(6016);
|
||||
LLSpinCtrl* height = floater->getChild<LLSpinCtrl>("snapshot_height");
|
||||
height->setMaxValue(6016);
|
||||
}
|
||||
|
||||
LLSnapshotLivePreview* previewp = getPreviewView(floater);
|
||||
BOOL got_bytes = previewp && previewp->getDataSize() > 0;
|
||||
BOOL got_snap = previewp && previewp->getSnapshotUpToDate();
|
||||
|
|
@ -1810,6 +1840,13 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
|
|||
|
||||
previewp->getSize(width, height);
|
||||
|
||||
if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
|
||||
{ //clamp snapshot resolution to window size when showing UI or HUD in snapshot
|
||||
width = llmin(width, gViewerWindow->getWindowWidthRaw());
|
||||
height = llmin(height, gViewerWindow->getWindowHeightRaw());
|
||||
}
|
||||
|
||||
|
||||
if(checkImageSize(previewp, width, height, TRUE, previewp->getMaxImageSize()))
|
||||
{
|
||||
resetSnapshotSizeOnUI(view, width, height) ;
|
||||
|
|
|
|||
|
|
@ -1854,31 +1854,9 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
|
|||
{
|
||||
if (mCallbackRegistrar)
|
||||
mCallbackRegistrar->pushScope();
|
||||
//menu->empty();
|
||||
const LLView::child_list_t *list = menu->getChildList();
|
||||
|
||||
LLView::child_list_t::const_iterator menu_itor;
|
||||
for (menu_itor = list->begin(); menu_itor != list->end(); ++menu_itor)
|
||||
{
|
||||
(*menu_itor)->setVisible(FALSE);
|
||||
(*menu_itor)->pushVisible(TRUE);
|
||||
(*menu_itor)->setEnabled(TRUE);
|
||||
}
|
||||
|
||||
// Successively filter out invalid options
|
||||
|
||||
U32 flags = FIRST_SELECTED_ITEM;
|
||||
for (selected_items_t::iterator item_itor = mSelectedItems.begin();
|
||||
item_itor != mSelectedItems.end();
|
||||
++item_itor)
|
||||
{
|
||||
LLFolderViewItem* selected_item = (*item_itor);
|
||||
selected_item->buildContextMenu(*menu, flags);
|
||||
flags = 0x0;
|
||||
}
|
||||
updateMenuOptions(menu);
|
||||
|
||||
addNoOptions(menu);
|
||||
|
||||
menu->updateParent(LLMenuGL::sMenuContainer);
|
||||
LLMenuGL::showPopup(this, menu, x, y);
|
||||
if (mCallbackRegistrar)
|
||||
|
|
@ -2365,6 +2343,45 @@ void LLFolderView::updateRenamerPosition()
|
|||
}
|
||||
}
|
||||
|
||||
// Update visibility and availability (i.e. enabled/disabled) of context menu items.
|
||||
void LLFolderView::updateMenuOptions(LLMenuGL* menu)
|
||||
{
|
||||
const LLView::child_list_t *list = menu->getChildList();
|
||||
|
||||
LLView::child_list_t::const_iterator menu_itor;
|
||||
for (menu_itor = list->begin(); menu_itor != list->end(); ++menu_itor)
|
||||
{
|
||||
(*menu_itor)->setVisible(FALSE);
|
||||
(*menu_itor)->pushVisible(TRUE);
|
||||
(*menu_itor)->setEnabled(TRUE);
|
||||
}
|
||||
|
||||
// Successively filter out invalid options
|
||||
|
||||
U32 flags = FIRST_SELECTED_ITEM;
|
||||
for (selected_items_t::iterator item_itor = mSelectedItems.begin();
|
||||
item_itor != mSelectedItems.end();
|
||||
++item_itor)
|
||||
{
|
||||
LLFolderViewItem* selected_item = (*item_itor);
|
||||
selected_item->buildContextMenu(*menu, flags);
|
||||
flags = 0x0;
|
||||
}
|
||||
|
||||
addNoOptions(menu);
|
||||
}
|
||||
|
||||
// Refresh the context menu (that is already shown).
|
||||
void LLFolderView::updateMenu()
|
||||
{
|
||||
LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();
|
||||
if (menu && menu->getVisible())
|
||||
{
|
||||
updateMenuOptions(menu);
|
||||
menu->needsArrange(); // update menu height if needed
|
||||
}
|
||||
}
|
||||
|
||||
bool LLFolderView::selectFirstItem()
|
||||
{
|
||||
for (folders_t::iterator iter = mFolders.begin();
|
||||
|
|
|
|||
|
|
@ -269,7 +269,10 @@ public:
|
|||
virtual S32 notify(const LLSD& info) ;
|
||||
|
||||
bool useLabelSuffix() { return mUseLabelSuffix; }
|
||||
void updateMenu();
|
||||
|
||||
private:
|
||||
void updateMenuOptions(LLMenuGL* menu);
|
||||
void updateRenamerPosition();
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -2719,6 +2719,15 @@ void LLIMMgr::inviteToSession(
|
|||
{
|
||||
LLFloaterReg::showInstance("incoming_call", payload, FALSE);
|
||||
}
|
||||
|
||||
// Add the caller to the Recent List here (at this point
|
||||
// "incoming_call" floater is shown and the recipient can
|
||||
// reject the call), because even if a recipient will reject
|
||||
// the call, the caller should be added to the recent list
|
||||
// anyway. STORM-507.
|
||||
if(type == IM_SESSION_P2P_INVITE)
|
||||
LLRecentPeople::instance().add(caller_id);
|
||||
|
||||
mPendingInvitations[session_id.asString()] = LLSD();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
#include "llvoiceclient.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "lltransientfloatermgr.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
||||
// Linden libraries
|
||||
#include "llfloater.h"
|
||||
|
|
@ -126,16 +127,20 @@ private:
|
|||
void onClickReport();
|
||||
void onClickFreeze();
|
||||
void onClickEject();
|
||||
void onClickKick();
|
||||
void onClickCSR();
|
||||
void onClickZoomIn();
|
||||
void onClickFindOnMap();
|
||||
bool onVisibleFindOnMap();
|
||||
bool onVisibleFreezeEject();
|
||||
bool onVisibleEject();
|
||||
bool onVisibleFreeze();
|
||||
bool onVisibleZoomIn();
|
||||
void onClickMuteVolume();
|
||||
void onVolumeChange(const LLSD& data);
|
||||
bool enableMute();
|
||||
bool enableUnmute();
|
||||
bool enableTeleportOffer();
|
||||
bool godModeEnabled();
|
||||
|
||||
// Is used to determine if "Add friend" option should be enabled in gear menu
|
||||
bool isNotFriend();
|
||||
|
|
@ -214,20 +219,21 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
|
|||
mCommitCallbackRegistrar.add("InspectAvatar.Pay", boost::bind(&LLInspectAvatar::onClickPay, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Share", boost::bind(&LLInspectAvatar::onClickShare, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.ToggleMute", boost::bind(&LLInspectAvatar::onToggleMute, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Freeze",
|
||||
boost::bind(&LLInspectAvatar::onClickFreeze, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Eject",
|
||||
boost::bind(&LLInspectAvatar::onClickEject, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Freeze", boost::bind(&LLInspectAvatar::onClickFreeze, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Eject", boost::bind(&LLInspectAvatar::onClickEject, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Kick", boost::bind(&LLInspectAvatar::onClickKick, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.CSR", boost::bind(&LLInspectAvatar::onClickCSR, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.Report", boost::bind(&LLInspectAvatar::onClickReport, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap", boost::bind(&LLInspectAvatar::onClickFindOnMap, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.ZoomIn", boost::bind(&LLInspectAvatar::onClickZoomIn, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.DisableVoice", boost::bind(&LLInspectAvatar::toggleSelectedVoice, this, false));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.EnableVoice", boost::bind(&LLInspectAvatar::toggleSelectedVoice, this, true));
|
||||
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.EnableGod", boost::bind(&LLInspectAvatar::godModeEnabled, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap", boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject",
|
||||
boost::bind(&LLInspectAvatar::onVisibleFreezeEject, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",
|
||||
boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleEject", boost::bind(&LLInspectAvatar::onVisibleEject, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleFreeze", boost::bind(&LLInspectAvatar::onVisibleFreeze, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn", boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.Gear.EnableCall", boost::bind(&LLAvatarActions::canCall));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.Gear.EnableTeleportOffer", boost::bind(&LLInspectAvatar::enableTeleportOffer, this));
|
||||
|
|
@ -656,11 +662,18 @@ bool LLInspectAvatar::onVisibleFindOnMap()
|
|||
return gAgent.isGodlike() || is_agent_mappable(mAvatarID);
|
||||
}
|
||||
|
||||
bool LLInspectAvatar::onVisibleFreezeEject()
|
||||
bool LLInspectAvatar::onVisibleEject()
|
||||
{
|
||||
return enable_freeze_eject( LLSD(mAvatarID) );
|
||||
}
|
||||
|
||||
bool LLInspectAvatar::onVisibleFreeze()
|
||||
{
|
||||
// either user is a god and can do long distance freeze
|
||||
// or check for target proximity and permissions
|
||||
return gAgent.isGodlike() || enable_freeze_eject(LLSD(mAvatarID));
|
||||
}
|
||||
|
||||
bool LLInspectAvatar::onVisibleZoomIn()
|
||||
{
|
||||
return gObjectList.findObject(mAvatarID);
|
||||
|
|
@ -704,7 +717,7 @@ void LLInspectAvatar::onClickShare()
|
|||
|
||||
void LLInspectAvatar::onToggleMute()
|
||||
{
|
||||
LLMute mute(mAvatarID, mAvatarName.getLegacyName(), LLMute::AGENT);
|
||||
LLMute mute(mAvatarID, mAvatarName.mDisplayName, LLMute::AGENT);
|
||||
|
||||
if (LLMuteList::getInstance()->isMuted(mute.mID, mute.mName))
|
||||
{
|
||||
|
|
@ -725,9 +738,41 @@ void LLInspectAvatar::onClickReport()
|
|||
closeFloater();
|
||||
}
|
||||
|
||||
bool godlike_freeze(const LLSD& notification, const LLSD& response)
|
||||
{
|
||||
LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
|
||||
switch (option)
|
||||
{
|
||||
case 0:
|
||||
LLAvatarActions::freeze(avatar_id);
|
||||
break;
|
||||
case 1:
|
||||
LLAvatarActions::unfreeze(avatar_id);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void LLInspectAvatar::onClickFreeze()
|
||||
{
|
||||
handle_avatar_freeze( LLSD(mAvatarID) );
|
||||
if (gAgent.isGodlike())
|
||||
{
|
||||
// use godlike freeze-at-a-distance, with confirmation
|
||||
LLNotificationsUtil::add("FreezeAvatar",
|
||||
LLSD(),
|
||||
LLSD().with("avatar_id", mAvatarID),
|
||||
godlike_freeze);
|
||||
}
|
||||
else
|
||||
{
|
||||
// use default "local" version of freezing that requires avatar to be in range
|
||||
handle_avatar_freeze( LLSD(mAvatarID) );
|
||||
}
|
||||
closeFloater();
|
||||
}
|
||||
|
||||
|
|
@ -737,6 +782,20 @@ void LLInspectAvatar::onClickEject()
|
|||
closeFloater();
|
||||
}
|
||||
|
||||
void LLInspectAvatar::onClickKick()
|
||||
{
|
||||
LLAvatarActions::kick(mAvatarID);
|
||||
closeFloater();
|
||||
}
|
||||
|
||||
void LLInspectAvatar::onClickCSR()
|
||||
{
|
||||
std::string name;
|
||||
gCacheName->getFullName(mAvatarID, name);
|
||||
LLAvatarActions::csr(mAvatarID, name);
|
||||
closeFloater();
|
||||
}
|
||||
|
||||
void LLInspectAvatar::onClickZoomIn()
|
||||
{
|
||||
handle_zoom_to_object(mAvatarID);
|
||||
|
|
@ -785,6 +844,11 @@ bool LLInspectAvatar::enableTeleportOffer()
|
|||
return LLAvatarActions::canOfferTeleport(mAvatarID);
|
||||
}
|
||||
|
||||
bool LLInspectAvatar::godModeEnabled()
|
||||
{
|
||||
return gAgent.isGodlike();
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// LLInspectAvatarUtil
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -3230,7 +3230,10 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
|
|||
}
|
||||
else if(LLToolDragAndDrop::SOURCE_NOTECARD == source)
|
||||
{
|
||||
accept = TRUE;
|
||||
// Don't allow placing an original item from a notecard to Current Outfit or an outfit folder
|
||||
// because they must contain only links to wearable items.
|
||||
accept = !(move_is_into_current_outfit || move_is_into_outfit);
|
||||
|
||||
if(drop)
|
||||
{
|
||||
copy_inventory_from_notecard(LLToolDragAndDrop::getInstance()->getObjectID(),
|
||||
|
|
|
|||
|
|
@ -393,18 +393,22 @@ void LLInventoryFilter::setFilterUUID(const LLUUID& object_id)
|
|||
|
||||
void LLInventoryFilter::setFilterSubString(const std::string& string)
|
||||
{
|
||||
if (mFilterSubString != string)
|
||||
std::string filter_sub_string_new = string;
|
||||
mFilterSubStringOrig = string;
|
||||
LLStringUtil::trimHead(filter_sub_string_new);
|
||||
LLStringUtil::toUpper(filter_sub_string_new);
|
||||
|
||||
if (mFilterSubString != filter_sub_string_new)
|
||||
{
|
||||
// hitting BACKSPACE, for example
|
||||
const BOOL less_restrictive = mFilterSubString.size() >= string.size() && !mFilterSubString.substr(0, string.size()).compare(string);
|
||||
const BOOL less_restrictive = mFilterSubString.size() >= filter_sub_string_new.size()
|
||||
&& !mFilterSubString.substr(0, filter_sub_string_new.size()).compare(filter_sub_string_new);
|
||||
|
||||
// appending new characters
|
||||
const BOOL more_restrictive = mFilterSubString.size() < string.size() && !string.substr(0, mFilterSubString.size()).compare(mFilterSubString);
|
||||
const BOOL more_restrictive = mFilterSubString.size() < filter_sub_string_new.size()
|
||||
&& !filter_sub_string_new.substr(0, mFilterSubString.size()).compare(mFilterSubString);
|
||||
|
||||
mFilterSubStringOrig = string;
|
||||
LLStringUtil::trimHead(mFilterSubStringOrig);
|
||||
mFilterSubString = mFilterSubStringOrig;
|
||||
LLStringUtil::toUpper(mFilterSubString);
|
||||
mFilterSubString = filter_sub_string_new;
|
||||
if (less_restrictive)
|
||||
{
|
||||
setModified(FILTER_LESS_RESTRICTIVE);
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ static const LLInventoryFVBridgeBuilder INVENTORY_BRIDGE_BUILDER;
|
|||
//
|
||||
// Bridge to support knowing when the inventory has changed.
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LLInventoryPanelObserver : public LLInventoryObserver
|
||||
{
|
||||
public:
|
||||
|
|
@ -73,9 +74,57 @@ protected:
|
|||
LLInventoryPanel* mIP;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Class LLInvPanelComplObserver
|
||||
//
|
||||
// Calls specified callback when all specified items become complete.
|
||||
//
|
||||
// Usage:
|
||||
// observer = new LLInvPanelComplObserver(boost::bind(onComplete));
|
||||
// inventory->addObserver(observer);
|
||||
// observer->reset(); // (optional)
|
||||
// observer->watchItem(incomplete_item1_id);
|
||||
// observer->watchItem(incomplete_item2_id);
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LLInvPanelComplObserver : public LLInventoryCompletionObserver
|
||||
{
|
||||
public:
|
||||
typedef boost::function<void()> callback_t;
|
||||
|
||||
LLInvPanelComplObserver(callback_t cb)
|
||||
: mCallback(cb)
|
||||
{
|
||||
}
|
||||
|
||||
void reset();
|
||||
|
||||
private:
|
||||
/*virtual*/ void done();
|
||||
|
||||
/// Called when all the items are complete.
|
||||
callback_t mCallback;
|
||||
};
|
||||
|
||||
void LLInvPanelComplObserver::reset()
|
||||
{
|
||||
mIncomplete.clear();
|
||||
mComplete.clear();
|
||||
}
|
||||
|
||||
void LLInvPanelComplObserver::done()
|
||||
{
|
||||
mCallback();
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Class LLInventoryPanel
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
|
||||
LLPanel(p),
|
||||
mInventoryObserver(NULL),
|
||||
mCompletionObserver(NULL),
|
||||
mFolderRoot(NULL),
|
||||
mScroller(NULL),
|
||||
mSortOrderSetting(p.sort_order_setting),
|
||||
|
|
@ -152,6 +201,9 @@ void LLInventoryPanel::initFromParams(const LLInventoryPanel::Params& params)
|
|||
mInventoryObserver = new LLInventoryPanelObserver(this);
|
||||
mInventory->addObserver(mInventoryObserver);
|
||||
|
||||
mCompletionObserver = new LLInvPanelComplObserver(boost::bind(&LLInventoryPanel::onItemsCompletion, this));
|
||||
mInventory->addObserver(mCompletionObserver);
|
||||
|
||||
// Build view of inventory if we need default full hierarchy and inventory ready,
|
||||
// otherwise wait for idle callback.
|
||||
if (mBuildDefaultHierarchy && mInventory->isInventoryUsable() && !mViewsInitialized)
|
||||
|
|
@ -189,7 +241,10 @@ LLInventoryPanel::~LLInventoryPanel()
|
|||
|
||||
// LLView destructor will take care of the sub-views.
|
||||
mInventory->removeObserver(mInventoryObserver);
|
||||
mInventory->removeObserver(mCompletionObserver);
|
||||
delete mInventoryObserver;
|
||||
delete mCompletionObserver;
|
||||
|
||||
mScroller = NULL;
|
||||
}
|
||||
|
||||
|
|
@ -654,6 +709,11 @@ void LLInventoryPanel::openStartFolderOrMyInventory()
|
|||
}
|
||||
}
|
||||
|
||||
void LLInventoryPanel::onItemsCompletion()
|
||||
{
|
||||
if (mFolderRoot) mFolderRoot->updateMenu();
|
||||
}
|
||||
|
||||
void LLInventoryPanel::openSelected()
|
||||
{
|
||||
LLFolderViewItem* folder_item = mFolderRoot->getCurSelectedItem();
|
||||
|
|
@ -757,6 +817,19 @@ void LLInventoryPanel::clearSelection()
|
|||
|
||||
void LLInventoryPanel::onSelectionChange(const std::deque<LLFolderViewItem*>& items, BOOL user_action)
|
||||
{
|
||||
// Schedule updating the folder view context menu when all selected items become complete (STORM-373).
|
||||
mCompletionObserver->reset();
|
||||
for (std::deque<LLFolderViewItem*>::const_iterator it = items.begin(); it != items.end(); ++it)
|
||||
{
|
||||
LLUUID id = (*it)->getListener()->getUUID();
|
||||
LLViewerInventoryItem* inv_item = mInventory->getItem(id);
|
||||
|
||||
if (inv_item && !inv_item->isFinished())
|
||||
{
|
||||
mCompletionObserver->watchItem(id);
|
||||
}
|
||||
}
|
||||
|
||||
LLFolderView* fv = getRootFolder();
|
||||
if (fv->needsAutoRename()) // auto-selecting a new user-created asset and preparing to rename
|
||||
{
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ class LLIconCtrl;
|
|||
class LLSaveFolderState;
|
||||
class LLFilterEditor;
|
||||
class LLTabContainer;
|
||||
class LLInvPanelComplObserver;
|
||||
|
||||
class LLInventoryPanel : public LLPanel
|
||||
{
|
||||
|
|
@ -167,9 +168,11 @@ public:
|
|||
|
||||
protected:
|
||||
void openStartFolderOrMyInventory(); // open the first level of inventory
|
||||
void onItemsCompletion(); // called when selected items are complete
|
||||
|
||||
LLInventoryModel* mInventory;
|
||||
LLInventoryObserver* mInventoryObserver;
|
||||
LLInvPanelComplObserver* mCompletionObserver;
|
||||
BOOL mAllowMultiSelect;
|
||||
BOOL mShowItemLinkOverlays; // Shows link graphic over inventory item icons
|
||||
|
||||
|
|
|
|||
|
|
@ -901,32 +901,32 @@ void LLManipRotate::renderSnapGuides()
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Forward") : LLTrans::getString("East"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Forward") : LLTrans::getString("Direction_East"), LLColor4::white);
|
||||
}
|
||||
else if (i == 16)
|
||||
{
|
||||
if (constraint_axis.mV[VZ] > 0.f)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Left") : LLTrans::getString("North"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Left") : LLTrans::getString("Direction_North"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Right") : LLTrans::getString("South"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Right") : LLTrans::getString("Direction_South"), LLColor4::white);
|
||||
}
|
||||
}
|
||||
else if (i == 32)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Back") : LLTrans::getString("West"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Back") : LLTrans::getString("Direction_West"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (constraint_axis.mV[VZ] > 0.f)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Right") : LLTrans::getString("South"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Right") : LLTrans::getString("Direction_South"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Left") : LLTrans::getString("North"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Left") : LLTrans::getString("Direction_North"), LLColor4::white);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -934,32 +934,32 @@ void LLManipRotate::renderSnapGuides()
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Left") : LLTrans::getString("North"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Left") : LLTrans::getString("Direction_North"), LLColor4::white);
|
||||
}
|
||||
else if (i == 16)
|
||||
{
|
||||
if (constraint_axis.mV[VX] > 0.f)
|
||||
{
|
||||
renderTickText(text_point, LLTrans::getString("Up"), LLColor4::white);
|
||||
renderTickText(text_point, LLTrans::getString("Direction_Up"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTickText(text_point, LLTrans::getString("Down"), LLColor4::white);
|
||||
renderTickText(text_point, LLTrans::getString("Direction_Down"), LLColor4::white);
|
||||
}
|
||||
}
|
||||
else if (i == 32)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Right") : LLTrans::getString("South"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Right") : LLTrans::getString("Direction_South"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (constraint_axis.mV[VX] > 0.f)
|
||||
{
|
||||
renderTickText(text_point, LLTrans::getString("Down"), LLColor4::white);
|
||||
renderTickText(text_point, LLTrans::getString("Direction_Down"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTickText(text_point, LLTrans::getString("Up"), LLColor4::white);
|
||||
renderTickText(text_point, LLTrans::getString("Direction_Up"), LLColor4::white);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -967,32 +967,32 @@ void LLManipRotate::renderSnapGuides()
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
renderTickText(text_point, LLTrans::getString("Up"), LLColor4::white);
|
||||
renderTickText(text_point, LLTrans::getString("Direction_Up"), LLColor4::white);
|
||||
}
|
||||
else if (i == 16)
|
||||
{
|
||||
if (constraint_axis.mV[VY] > 0.f)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Forward") : LLTrans::getString("East"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Forward") : LLTrans::getString("Direction_East"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Back") : LLTrans::getString("West"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Back") : LLTrans::getString("Direction_West"), LLColor4::white);
|
||||
}
|
||||
}
|
||||
else if (i == 32)
|
||||
{
|
||||
renderTickText(text_point, LLTrans::getString("Down"), LLColor4::white);
|
||||
renderTickText(text_point, LLTrans::getString("Direction_Down"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (constraint_axis.mV[VY] > 0.f)
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Back") : LLTrans::getString("West"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Back") : LLTrans::getString("Direction_West"), LLColor4::white);
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Forward") : LLTrans::getString("East"), LLColor4::white);
|
||||
renderTickText(text_point, mObjectSelection->isAttachment() ? LLTrans::getString("Direction_Forward") : LLTrans::getString("Direction_East"), LLColor4::white);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,9 +37,11 @@
|
|||
#include <sstream>
|
||||
#include <boost/algorithm/string/split.hpp>
|
||||
|
||||
#include "llmemory.h"
|
||||
|
||||
LLMemoryView::LLMemoryView(const LLMemoryView::Params& p)
|
||||
: LLView(p),
|
||||
mPaused(FALSE),
|
||||
//mDelay(120),
|
||||
mAlloc(NULL)
|
||||
{
|
||||
|
|
@ -59,6 +61,7 @@ BOOL LLMemoryView::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
}
|
||||
else
|
||||
{
|
||||
mPaused = !mPaused;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -148,13 +151,14 @@ void LLMemoryView::draw()
|
|||
|
||||
// cut off lines on bottom
|
||||
U32 max_lines = U32((height - 2 * line_height) / line_height);
|
||||
std::vector<LLWString>::const_iterator end = mLines.end();
|
||||
y_pos = height - MARGIN_AMT - line_height;
|
||||
y_off = 0.f;
|
||||
|
||||
#if !MEM_TRACK_MEM
|
||||
std::vector<LLWString>::const_iterator end = mLines.end();
|
||||
if(mLines.size() > max_lines) {
|
||||
end = mLines.begin() + max_lines;
|
||||
}
|
||||
|
||||
y_pos = height - MARGIN_AMT - line_height;
|
||||
y_off = 0.f;
|
||||
for (std::vector<LLWString>::const_iterator i = mLines.begin(); i != end; ++i)
|
||||
{
|
||||
font->render(*i, 0, MARGIN_AMT, y_pos - y_off,
|
||||
|
|
@ -169,6 +173,47 @@ void LLMemoryView::draw()
|
|||
y_off += line_height;
|
||||
}
|
||||
|
||||
#else
|
||||
LLMemTracker::getInstance()->preDraw(mPaused) ;
|
||||
|
||||
{
|
||||
F32 x_pos = MARGIN_AMT ;
|
||||
U32 lines = 0 ;
|
||||
const char* str = LLMemTracker::getInstance()->getNextLine() ;
|
||||
while(str != NULL)
|
||||
{
|
||||
lines++ ;
|
||||
font->renderUTF8(str, 0, x_pos, y_pos - y_off,
|
||||
LLColor4::white,
|
||||
LLFontGL::LEFT,
|
||||
LLFontGL::BASELINE,
|
||||
LLFontGL::NORMAL,
|
||||
LLFontGL::DROP_SHADOW,
|
||||
S32_MAX,
|
||||
target_width,
|
||||
NULL, FALSE);
|
||||
|
||||
str = LLMemTracker::getInstance()->getNextLine() ;
|
||||
y_off += line_height;
|
||||
|
||||
if(lines >= max_lines)
|
||||
{
|
||||
lines = 0 ;
|
||||
x_pos += 512.f ;
|
||||
if(x_pos + 512.f > target_width)
|
||||
{
|
||||
break ;
|
||||
}
|
||||
|
||||
y_pos = height - MARGIN_AMT - line_height;
|
||||
y_off = 0.f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LLMemTracker::getInstance()->postDraw() ;
|
||||
#endif
|
||||
|
||||
#if MEM_TRACK_TYPE
|
||||
|
||||
S32 left, top, right, bottom;
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ public:
|
|||
private:
|
||||
std::vector<LLWString> mLines;
|
||||
LLAllocator* mAlloc;
|
||||
BOOL mPaused ;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -143,6 +143,30 @@ void LLNameListCtrl::mouseOverHighlightNthItem( S32 target_index )
|
|||
S32 cur_index = getHighlightedItemInx();
|
||||
if (cur_index != target_index)
|
||||
{
|
||||
bool is_mouse_over_name_cell = false;
|
||||
|
||||
S32 mouse_x, mouse_y;
|
||||
LLUI::getMousePositionLocal(this, &mouse_x, &mouse_y);
|
||||
|
||||
S32 column_index = getColumnIndexFromOffset(mouse_x);
|
||||
LLScrollListItem* hit_item = hitItem(mouse_x, mouse_y);
|
||||
if (hit_item && column_index == mNameColumnIndex)
|
||||
{
|
||||
// Get the name cell which is currently under the mouse pointer.
|
||||
LLScrollListCell* hit_cell = hit_item->getColumn(column_index);
|
||||
if (hit_cell)
|
||||
{
|
||||
is_mouse_over_name_cell = getCellRect(cur_index, column_index).pointInRect(mouse_x, mouse_y);
|
||||
}
|
||||
}
|
||||
|
||||
// If the tool tip is visible and the mouse is over the currently highlighted item's name cell,
|
||||
// we should not reset the highlighted item index i.e. set mHighlightedItem = -1
|
||||
// and should not increase the width of the text inside the cell because it may
|
||||
// overlap the tool tip icon.
|
||||
if (LLToolTipMgr::getInstance()->toolTipVisible() && is_mouse_over_name_cell)
|
||||
return;
|
||||
|
||||
if(0 <= cur_index && cur_index < (S32)getItemList().size())
|
||||
{
|
||||
LLScrollListItem* item = getItemList()[cur_index];
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
#include "llagentcamera.h"
|
||||
#include "llappviewer.h" // for gDisconnected
|
||||
#include "llcallingcard.h" // LLAvatarTracker
|
||||
#include "llfloaterworldmap.h"
|
||||
#include "lltracker.h"
|
||||
#include "llsurface.h"
|
||||
#include "llviewercamera.h"
|
||||
|
|
@ -91,7 +92,8 @@ LLNetMap::LLNetMap (const Params & p)
|
|||
mObjectImagep(),
|
||||
mClosestAgentToCursor(),
|
||||
mClosestAgentAtLastRightClick(),
|
||||
mToolTipMsg()
|
||||
mToolTipMsg(),
|
||||
mPopupMenu(NULL)
|
||||
{
|
||||
mDotRadius = llmax(DOT_SCALE * mPixelsPerMeter, MIN_DOT_RADIUS);
|
||||
setScale(gSavedSettings.getF32("MiniMapScale"));
|
||||
|
|
@ -102,6 +104,21 @@ LLNetMap::~LLNetMap()
|
|||
gSavedSettings.setF32("MiniMapScale", mScale);
|
||||
}
|
||||
|
||||
BOOL LLNetMap::postBuild()
|
||||
{
|
||||
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
|
||||
|
||||
registrar.add("Minimap.Zoom", boost::bind(&LLNetMap::handleZoom, this, _2));
|
||||
registrar.add("Minimap.Tracker", boost::bind(&LLNetMap::handleStopTracking, this, _2));
|
||||
|
||||
mPopupMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_mini_map.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
if (mPopupMenu && !LLTracker::isTracking(0))
|
||||
{
|
||||
mPopupMenu->setItemEnabled ("Stop Tracking", false);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLNetMap::setScale( F32 scale )
|
||||
{
|
||||
scale = llclamp(scale, MAP_SCALE_MIN, MAP_SCALE_MAX);
|
||||
|
|
@ -354,16 +371,49 @@ void LLNetMap::draw()
|
|||
|
||||
pos_map = globalPosToView(pos_global);
|
||||
|
||||
LLUUID uuid(NULL);
|
||||
BOOL show_as_friend = FALSE;
|
||||
if( i < regionp->mMapAvatarIDs.count())
|
||||
{
|
||||
show_as_friend = (LLAvatarTracker::instance().getBuddyInfo(regionp->mMapAvatarIDs.get(i)) != NULL);
|
||||
uuid = regionp->mMapAvatarIDs.get(i);
|
||||
show_as_friend = (LLAvatarTracker::instance().getBuddyInfo(uuid) != NULL);
|
||||
}
|
||||
|
||||
LLColor4 color = show_as_friend ? map_avatar_friend_color : map_avatar_color;
|
||||
LLWorldMapView::drawAvatar(
|
||||
pos_map.mV[VX], pos_map.mV[VY],
|
||||
show_as_friend ? map_avatar_friend_color : map_avatar_color,
|
||||
color,
|
||||
pos_map.mV[VZ], mDotRadius);
|
||||
|
||||
if(uuid.notNull())
|
||||
{
|
||||
bool selected = false;
|
||||
uuid_vec_t::iterator sel_iter = gmSelected.begin();
|
||||
for (; sel_iter != gmSelected.end(); sel_iter++)
|
||||
{
|
||||
if(*sel_iter == uuid)
|
||||
{
|
||||
selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(selected)
|
||||
{
|
||||
if( (pos_map.mV[VX] < 0) ||
|
||||
(pos_map.mV[VY] < 0) ||
|
||||
(pos_map.mV[VX] >= getRect().getWidth()) ||
|
||||
(pos_map.mV[VY] >= getRect().getHeight()) )
|
||||
{
|
||||
S32 x = llround( pos_map.mV[VX] );
|
||||
S32 y = llround( pos_map.mV[VY] );
|
||||
LLWorldMapView::drawTrackingCircle( getRect(), x, y, color, 1, 10);
|
||||
} else
|
||||
{
|
||||
LLWorldMapView::drawTrackingDot(pos_map.mV[VX],pos_map.mV[VY],color,0.f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
F32 dist_to_cursor = dist_vec(LLVector2(pos_map.mV[VX], pos_map.mV[VY]),
|
||||
LLVector2(local_mouse_x,local_mouse_y));
|
||||
if(dist_to_cursor < min_pick_dist && dist_to_cursor < closest_dist)
|
||||
|
|
@ -460,6 +510,13 @@ void LLNetMap::draw()
|
|||
gGL.popUIMatrix();
|
||||
|
||||
LLUICtrl::draw();
|
||||
|
||||
if (LLTracker::isTracking(0))
|
||||
{
|
||||
mPopupMenu->setItemEnabled ("Stop Tracking", true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void LLNetMap::reshape(S32 width, S32 height, BOOL called_from_parent)
|
||||
|
|
@ -600,7 +657,6 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, MASK mask )
|
|||
args["[REGION]"] = region_name;
|
||||
std::string msg = mToolTipMsg;
|
||||
LLStringUtil::format(msg, args);
|
||||
|
||||
LLToolTipMgr::instance().show(LLToolTip::Params()
|
||||
.message(msg)
|
||||
.sticky_rect(sticky_rect));
|
||||
|
|
@ -793,6 +849,9 @@ BOOL LLNetMap::handleMouseDown( S32 x, S32 y, MASK mask )
|
|||
|
||||
BOOL LLNetMap::handleMouseUp( S32 x, S32 y, MASK mask )
|
||||
{
|
||||
if(abs(mMouseDown.mX-x)<3 && abs(mMouseDown.mY-y)<3)
|
||||
handleClick(x,y,mask);
|
||||
|
||||
if (hasMouseCapture())
|
||||
{
|
||||
if (mPanning)
|
||||
|
|
@ -821,6 +880,53 @@ BOOL LLNetMap::handleMouseUp( S32 x, S32 y, MASK mask )
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL LLNetMap::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if (mPopupMenu)
|
||||
{
|
||||
mPopupMenu->buildDrawLabels();
|
||||
mPopupMenu->updateParent(LLMenuGL::sMenuContainer);
|
||||
LLMenuGL::showPopup(this, mPopupMenu, x, y);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLNetMap::handleClick(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// TODO: allow clicking an avatar on minimap to select avatar in the nearby avatar list
|
||||
// if(mClosestAgentToCursor.notNull())
|
||||
// mNearbyList->selectUser(mClosestAgentToCursor);
|
||||
// Needs a registered observer i guess to accomplish this without using
|
||||
// globals to tell the mNearbyList in llpeoplepanel to select the user
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLNetMap::handleDoubleClick(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLVector3d pos_global = viewPosToGlobal(x, y);
|
||||
|
||||
// If we're not tracking a beacon already, double-click will set one
|
||||
if (!LLTracker::isTracking(NULL))
|
||||
{
|
||||
LLFloaterWorldMap* world_map = LLFloaterWorldMap::getInstance();
|
||||
if (world_map)
|
||||
{
|
||||
world_map->trackLocation(pos_global);
|
||||
}
|
||||
}
|
||||
|
||||
if (gSavedSettings.getBOOL("DoubleClickTeleport"))
|
||||
{
|
||||
// If DoubleClickTeleport is on, double clicking the minimap will teleport there
|
||||
gAgent.teleportViaLocationLookAt(pos_global);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLFloaterReg::showInstance("world_map");
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// static
|
||||
bool LLNetMap::outsideSlop( S32 x, S32 y, S32 start_x, S32 start_y, S32 slop )
|
||||
{
|
||||
|
|
@ -871,3 +977,38 @@ BOOL LLNetMap::handleHover( S32 x, S32 y, MASK mask )
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLNetMap::handleZoom(const LLSD& userdata)
|
||||
{
|
||||
std::string level = userdata.asString();
|
||||
|
||||
F32 scale = 0.0f;
|
||||
if (level == std::string("default"))
|
||||
{
|
||||
LLControlVariable *pvar = gSavedSettings.getControl("MiniMapScale");
|
||||
if(pvar)
|
||||
{
|
||||
pvar->resetToDefault();
|
||||
scale = gSavedSettings.getF32("MiniMapScale");
|
||||
}
|
||||
}
|
||||
else if (level == std::string("close"))
|
||||
scale = LLNetMap::MAP_SCALE_MAX;
|
||||
else if (level == std::string("medium"))
|
||||
scale = LLNetMap::MAP_SCALE_MID;
|
||||
else if (level == std::string("far"))
|
||||
scale = LLNetMap::MAP_SCALE_MIN;
|
||||
if (scale != 0.0f)
|
||||
{
|
||||
setScale(scale);
|
||||
}
|
||||
}
|
||||
|
||||
void LLNetMap::handleStopTracking (const LLSD& userdata)
|
||||
{
|
||||
if (mPopupMenu)
|
||||
{
|
||||
mPopupMenu->setItemEnabled ("Stop Tracking", false);
|
||||
LLTracker::stopTracking ((void*)LLTracker::isTracking(NULL));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class LLCoordGL;
|
|||
class LLImageRaw;
|
||||
class LLViewerTexture;
|
||||
class LLFloaterMap;
|
||||
class LLMenuGL;
|
||||
|
||||
class LLNetMap : public LLUICtrl
|
||||
{
|
||||
|
|
@ -72,7 +73,12 @@ public:
|
|||
/*virtual*/ BOOL handleHover( S32 x, S32 y, MASK mask );
|
||||
/*virtual*/ BOOL handleToolTip( S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
|
||||
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask );
|
||||
/*virtual*/ BOOL handleClick(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleDoubleClick( S32 x, S32 y, MASK mask );
|
||||
|
||||
void setScale( F32 scale );
|
||||
void setToolTipMsg(const std::string& msg) { mToolTipMsg = msg; }
|
||||
void renderScaledPointGlobal( const LLVector3d& pos, const LLColor4U &color, F32 radius );
|
||||
|
|
@ -120,6 +126,16 @@ private:
|
|||
LLUUID mClosestAgentAtLastRightClick;
|
||||
|
||||
std::string mToolTipMsg;
|
||||
|
||||
public:
|
||||
void setSelected(uuid_vec_t uuids) { gmSelected=uuids; };
|
||||
|
||||
private:
|
||||
void handleZoom(const LLSD& userdata);
|
||||
void handleStopTracking (const LLSD& userdata);
|
||||
|
||||
LLMenuGL* mPopupMenu;
|
||||
uuid_vec_t gmSelected;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -625,10 +625,15 @@ void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_g
|
|||
getChild<LLUICtrl>("sl_groups")->setValue(groups);
|
||||
}
|
||||
|
||||
void LLPanelAvatarProfile::got_full_name_callback( const LLUUID& id, const std::string& full_name, bool is_group )
|
||||
{
|
||||
LLStringUtil::format_map_t args;
|
||||
|
||||
static void got_full_name_callback( LLHandle<LLPanel> profile_panel_handle, const std::string& full_name )
|
||||
{
|
||||
if (profile_panel_handle.isDead() ) return;
|
||||
|
||||
LLPanelAvatarProfile* profile_panel = dynamic_cast<LLPanelAvatarProfile*>(profile_panel_handle.get());
|
||||
if ( ! profile_panel ) return;
|
||||
|
||||
LLStringUtil::format_map_t args;
|
||||
|
||||
std::string name;
|
||||
if (LLAvatarNameCache::useDisplayNames())
|
||||
{
|
||||
|
|
@ -637,21 +642,21 @@ void LLPanelAvatarProfile::got_full_name_callback( const LLUUID& id, const std::
|
|||
else
|
||||
{
|
||||
name = full_name;
|
||||
}
|
||||
|
||||
args["[NAME]"] = name;
|
||||
|
||||
std::string linden_name = getString("name_text_args", args);
|
||||
getChild<LLUICtrl>("name_descr_text")->setValue(linden_name);
|
||||
}
|
||||
}
|
||||
|
||||
args["[NAME]"] = name;
|
||||
|
||||
std::string linden_name = profile_panel->getString("name_text_args", args);
|
||||
profile_panel->getChild<LLUICtrl>("name_descr_text")->setValue(linden_name);
|
||||
}
|
||||
|
||||
void LLPanelAvatarProfile::onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name)
|
||||
{
|
||||
LLStringUtil::format_map_t args;
|
||||
args["[DISPLAY_NAME]"] = av_name.mDisplayName;
|
||||
|
||||
std::string display_name = getString("display_name_text_args", args);
|
||||
getChild<LLUICtrl>("display_name_descr_text")->setValue(display_name);
|
||||
LLStringUtil::format_map_t args;
|
||||
args["[DISPLAY_NAME]"] = av_name.mDisplayName;
|
||||
|
||||
std::string display_name = getString("display_name_text_args", args);
|
||||
getChild<LLUICtrl>("display_name_descr_text")->setValue(display_name);
|
||||
}
|
||||
|
||||
void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
|
||||
|
|
@ -667,22 +672,23 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
|
|||
}
|
||||
|
||||
// ask (asynchronously) for the avatar name
|
||||
std::string full_name;
|
||||
if (gCacheName->getFullName(avatar_data->agent_id, full_name))
|
||||
{
|
||||
// name in cache, call callback directly
|
||||
got_full_name_callback( avatar_data->agent_id, full_name, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
// not in cache, lookup name
|
||||
gCacheName->get(avatar_data->agent_id, false, boost::bind( &LLPanelAvatarProfile::got_full_name_callback, this, _1, _2, _3 ));
|
||||
}
|
||||
|
||||
// get display name
|
||||
LLHandle<LLPanel> profile_panel_handle = getHandle();
|
||||
std::string full_name;
|
||||
if (gCacheName->getFullName(avatar_data->agent_id, full_name))
|
||||
{
|
||||
// name in cache, call callback directly
|
||||
got_full_name_callback( profile_panel_handle, full_name );
|
||||
}
|
||||
else
|
||||
{
|
||||
// not in cache, lookup name
|
||||
gCacheName->get(avatar_data->agent_id, false, boost::bind( got_full_name_callback, profile_panel_handle, _2 ));
|
||||
}
|
||||
|
||||
// get display name
|
||||
LLAvatarNameCache::get(avatar_data->avatar_id,
|
||||
boost::bind(&LLPanelAvatarProfile::onNameCache, this, _1, _2));
|
||||
|
||||
boost::bind(&LLPanelAvatarProfile::onNameCache, this, _1, _2));
|
||||
|
||||
args["[AGE]"] = LLDateUtil::ageFromDate( avatar_data->born_on, LLDate::now());
|
||||
std::string register_date = getString("RegisterDateFormat", args);
|
||||
getChild<LLUICtrl>("register_date")->setValue(register_date );
|
||||
|
|
|
|||
|
|
@ -1,298 +1,297 @@
|
|||
/**
|
||||
* @file llpanelavatar.h
|
||||
* @brief LLPanelAvatar and related class definitions
|
||||
*
|
||||
* $LicenseInfo:firstyear=2004&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLPANELAVATAR_H
|
||||
#define LL_LLPANELAVATAR_H
|
||||
|
||||
#include "llpanel.h"
|
||||
#include "llavatarpropertiesprocessor.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llvoiceclient.h"
|
||||
#include "llavatarnamecache.h"
|
||||
|
||||
class LLComboBox;
|
||||
class LLLineEditor;
|
||||
|
||||
enum EOnlineStatus
|
||||
{
|
||||
ONLINE_STATUS_NO = 0,
|
||||
ONLINE_STATUS_YES = 1
|
||||
};
|
||||
|
||||
/**
|
||||
* Base class for any Profile View or My Profile Panel.
|
||||
*/
|
||||
class LLPanelProfileTab
|
||||
: public LLPanel
|
||||
, public LLAvatarPropertiesObserver
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Sets avatar ID, sets panel as observer of avatar related info replies from server.
|
||||
*/
|
||||
virtual void setAvatarId(const LLUUID& id);
|
||||
|
||||
/**
|
||||
* Returns avatar ID.
|
||||
*/
|
||||
virtual const LLUUID& getAvatarId() { return mAvatarId; }
|
||||
|
||||
/**
|
||||
* Sends update data request to server.
|
||||
*/
|
||||
virtual void updateData() = 0;
|
||||
|
||||
/**
|
||||
* Clears panel data if viewing avatar info for first time and sends update data request.
|
||||
*/
|
||||
virtual void onOpen(const LLSD& key);
|
||||
|
||||
/**
|
||||
* Profile tabs should close any opened panels here.
|
||||
*
|
||||
* Called from LLPanelProfile::onOpen() before opening new profile.
|
||||
* See LLPanelPicks::onClosePanel for example. LLPanelPicks closes picture info panel
|
||||
* before new profile is displayed, otherwise new profile will
|
||||
* be hidden behind picture info panel.
|
||||
*/
|
||||
virtual void onClosePanel() {}
|
||||
|
||||
/**
|
||||
* Resets controls visibility, state, etc.
|
||||
*/
|
||||
virtual void resetControls(){};
|
||||
|
||||
/**
|
||||
* Clears all data received from server.
|
||||
*/
|
||||
virtual void resetData(){};
|
||||
|
||||
/*virtual*/ ~LLPanelProfileTab();
|
||||
|
||||
protected:
|
||||
|
||||
LLPanelProfileTab();
|
||||
|
||||
/**
|
||||
* Scrolls panel to top when viewing avatar info for first time.
|
||||
*/
|
||||
void scrollToTop();
|
||||
|
||||
virtual void onMapButtonClick();
|
||||
|
||||
virtual void updateButtons();
|
||||
|
||||
private:
|
||||
|
||||
LLUUID mAvatarId;
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel for displaying Avatar's first and second life related info.
|
||||
*/
|
||||
class LLPanelAvatarProfile
|
||||
: public LLPanelProfileTab
|
||||
, public LLFriendObserver
|
||||
, public LLVoiceClientStatusObserver
|
||||
{
|
||||
public:
|
||||
LLPanelAvatarProfile();
|
||||
/*virtual*/ ~LLPanelAvatarProfile();
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/**
|
||||
* LLFriendObserver trigger
|
||||
*/
|
||||
virtual void changed(U32 mask);
|
||||
|
||||
// Implements LLVoiceClientStatusObserver::onChange() to enable the call
|
||||
// button when voice is available
|
||||
/*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal);
|
||||
|
||||
/*virtual*/ void setAvatarId(const LLUUID& id);
|
||||
|
||||
/**
|
||||
* Processes data received from server.
|
||||
*/
|
||||
/*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
/*virtual*/ void updateData();
|
||||
|
||||
/*virtual*/ void resetControls();
|
||||
|
||||
/*virtual*/ void resetData();
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Process profile related data received from server.
|
||||
*/
|
||||
virtual void processProfileProperties(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Processes group related data received from server.
|
||||
*/
|
||||
virtual void processGroupProperties(const LLAvatarGroups* avatar_groups);
|
||||
|
||||
/**
|
||||
* Fills common for Avatar profile and My Profile fields.
|
||||
*/
|
||||
virtual void fillCommonData(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Fills partner data.
|
||||
*/
|
||||
virtual void fillPartnerData(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Fills account status.
|
||||
*/
|
||||
virtual void fillAccountStatus(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Opens "Pay Resident" dialog.
|
||||
*/
|
||||
void pay();
|
||||
|
||||
/**
|
||||
* opens inventory and IM for sharing items
|
||||
*/
|
||||
void share();
|
||||
|
||||
/**
|
||||
* Add/remove resident to/from your block list.
|
||||
*/
|
||||
void toggleBlock();
|
||||
|
||||
void kick();
|
||||
void freeze();
|
||||
void unfreeze();
|
||||
void csr();
|
||||
|
||||
bool enableShowOnMap();
|
||||
bool enableBlock();
|
||||
bool enableUnblock();
|
||||
bool enableGod();
|
||||
|
||||
void onSeeProfileBtnClick();
|
||||
void onAddFriendButtonClick();
|
||||
void onIMButtonClick();
|
||||
void onCallButtonClick();
|
||||
void onTeleportButtonClick();
|
||||
void onShareButtonClick();
|
||||
|
||||
private:
|
||||
void got_full_name_callback( const LLUUID& id, const std::string& full_name, bool is_group );
|
||||
void onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
|
||||
|
||||
typedef std::map< std::string,LLUUID> group_map_t;
|
||||
group_map_t mGroups;
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel for displaying own first and second life related info.
|
||||
*/
|
||||
class LLPanelMyProfile
|
||||
: public LLPanelAvatarProfile
|
||||
{
|
||||
public:
|
||||
LLPanelMyProfile();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
protected:
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/*virtual*/ void processProfileProperties(const LLAvatarData* avatar_data);
|
||||
|
||||
/*virtual*/ void resetControls();
|
||||
|
||||
protected:
|
||||
void onStatusMessageChanged();
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel for displaying Avatar's notes and modifying friend's rights.
|
||||
*/
|
||||
class LLPanelAvatarNotes
|
||||
: public LLPanelProfileTab
|
||||
, public LLFriendObserver
|
||||
, public LLVoiceClientStatusObserver
|
||||
{
|
||||
public:
|
||||
LLPanelAvatarNotes();
|
||||
/*virtual*/ ~LLPanelAvatarNotes();
|
||||
|
||||
virtual void setAvatarId(const LLUUID& id);
|
||||
|
||||
/**
|
||||
* LLFriendObserver trigger
|
||||
*/
|
||||
virtual void changed(U32 mask);
|
||||
|
||||
// Implements LLVoiceClientStatusObserver::onChange() to enable the call
|
||||
// button when voice is available
|
||||
/*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal);
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
/*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
|
||||
|
||||
/*virtual*/ void updateData();
|
||||
|
||||
protected:
|
||||
|
||||
/*virtual*/ void resetControls();
|
||||
|
||||
/*virtual*/ void resetData();
|
||||
|
||||
/**
|
||||
* Fills rights data for friends.
|
||||
*/
|
||||
void fillRightsData();
|
||||
|
||||
void rightsConfirmationCallback(const LLSD& notification,
|
||||
const LLSD& response, S32 rights);
|
||||
void confirmModifyRights(bool grant, S32 rights);
|
||||
void onCommitRights();
|
||||
void onCommitNotes();
|
||||
|
||||
void onAddFriendButtonClick();
|
||||
void onIMButtonClick();
|
||||
void onCallButtonClick();
|
||||
void onTeleportButtonClick();
|
||||
void onShareButtonClick();
|
||||
void enableCheckboxes(bool enable);
|
||||
};
|
||||
|
||||
#endif // LL_LLPANELAVATAR_H
|
||||
/**
|
||||
* @file llpanelavatar.h
|
||||
* @brief LLPanelAvatar and related class definitions
|
||||
*
|
||||
* $LicenseInfo:firstyear=2004&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLPANELAVATAR_H
|
||||
#define LL_LLPANELAVATAR_H
|
||||
|
||||
#include "llpanel.h"
|
||||
#include "llavatarpropertiesprocessor.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llvoiceclient.h"
|
||||
#include "llavatarnamecache.h"
|
||||
|
||||
class LLComboBox;
|
||||
class LLLineEditor;
|
||||
|
||||
enum EOnlineStatus
|
||||
{
|
||||
ONLINE_STATUS_NO = 0,
|
||||
ONLINE_STATUS_YES = 1
|
||||
};
|
||||
|
||||
/**
|
||||
* Base class for any Profile View or My Profile Panel.
|
||||
*/
|
||||
class LLPanelProfileTab
|
||||
: public LLPanel
|
||||
, public LLAvatarPropertiesObserver
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Sets avatar ID, sets panel as observer of avatar related info replies from server.
|
||||
*/
|
||||
virtual void setAvatarId(const LLUUID& id);
|
||||
|
||||
/**
|
||||
* Returns avatar ID.
|
||||
*/
|
||||
virtual const LLUUID& getAvatarId() { return mAvatarId; }
|
||||
|
||||
/**
|
||||
* Sends update data request to server.
|
||||
*/
|
||||
virtual void updateData() = 0;
|
||||
|
||||
/**
|
||||
* Clears panel data if viewing avatar info for first time and sends update data request.
|
||||
*/
|
||||
virtual void onOpen(const LLSD& key);
|
||||
|
||||
/**
|
||||
* Profile tabs should close any opened panels here.
|
||||
*
|
||||
* Called from LLPanelProfile::onOpen() before opening new profile.
|
||||
* See LLPanelPicks::onClosePanel for example. LLPanelPicks closes picture info panel
|
||||
* before new profile is displayed, otherwise new profile will
|
||||
* be hidden behind picture info panel.
|
||||
*/
|
||||
virtual void onClosePanel() {}
|
||||
|
||||
/**
|
||||
* Resets controls visibility, state, etc.
|
||||
*/
|
||||
virtual void resetControls(){};
|
||||
|
||||
/**
|
||||
* Clears all data received from server.
|
||||
*/
|
||||
virtual void resetData(){};
|
||||
|
||||
/*virtual*/ ~LLPanelProfileTab();
|
||||
|
||||
protected:
|
||||
|
||||
LLPanelProfileTab();
|
||||
|
||||
/**
|
||||
* Scrolls panel to top when viewing avatar info for first time.
|
||||
*/
|
||||
void scrollToTop();
|
||||
|
||||
virtual void onMapButtonClick();
|
||||
|
||||
virtual void updateButtons();
|
||||
|
||||
private:
|
||||
|
||||
LLUUID mAvatarId;
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel for displaying Avatar's first and second life related info.
|
||||
*/
|
||||
class LLPanelAvatarProfile
|
||||
: public LLPanelProfileTab
|
||||
, public LLFriendObserver
|
||||
, public LLVoiceClientStatusObserver
|
||||
{
|
||||
public:
|
||||
LLPanelAvatarProfile();
|
||||
/*virtual*/ ~LLPanelAvatarProfile();
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/**
|
||||
* LLFriendObserver trigger
|
||||
*/
|
||||
virtual void changed(U32 mask);
|
||||
|
||||
// Implements LLVoiceClientStatusObserver::onChange() to enable the call
|
||||
// button when voice is available
|
||||
/*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal);
|
||||
|
||||
/*virtual*/ void setAvatarId(const LLUUID& id);
|
||||
|
||||
/**
|
||||
* Processes data received from server.
|
||||
*/
|
||||
/*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
/*virtual*/ void updateData();
|
||||
|
||||
/*virtual*/ void resetControls();
|
||||
|
||||
/*virtual*/ void resetData();
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Process profile related data received from server.
|
||||
*/
|
||||
virtual void processProfileProperties(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Processes group related data received from server.
|
||||
*/
|
||||
virtual void processGroupProperties(const LLAvatarGroups* avatar_groups);
|
||||
|
||||
/**
|
||||
* Fills common for Avatar profile and My Profile fields.
|
||||
*/
|
||||
virtual void fillCommonData(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Fills partner data.
|
||||
*/
|
||||
virtual void fillPartnerData(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Fills account status.
|
||||
*/
|
||||
virtual void fillAccountStatus(const LLAvatarData* avatar_data);
|
||||
|
||||
/**
|
||||
* Opens "Pay Resident" dialog.
|
||||
*/
|
||||
void pay();
|
||||
|
||||
/**
|
||||
* opens inventory and IM for sharing items
|
||||
*/
|
||||
void share();
|
||||
|
||||
/**
|
||||
* Add/remove resident to/from your block list.
|
||||
*/
|
||||
void toggleBlock();
|
||||
|
||||
void kick();
|
||||
void freeze();
|
||||
void unfreeze();
|
||||
void csr();
|
||||
|
||||
bool enableShowOnMap();
|
||||
bool enableBlock();
|
||||
bool enableUnblock();
|
||||
bool enableGod();
|
||||
|
||||
void onSeeProfileBtnClick();
|
||||
void onAddFriendButtonClick();
|
||||
void onIMButtonClick();
|
||||
void onCallButtonClick();
|
||||
void onTeleportButtonClick();
|
||||
void onShareButtonClick();
|
||||
|
||||
private:
|
||||
void onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
|
||||
|
||||
typedef std::map< std::string,LLUUID> group_map_t;
|
||||
group_map_t mGroups;
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel for displaying own first and second life related info.
|
||||
*/
|
||||
class LLPanelMyProfile
|
||||
: public LLPanelAvatarProfile
|
||||
{
|
||||
public:
|
||||
LLPanelMyProfile();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
protected:
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/*virtual*/ void processProfileProperties(const LLAvatarData* avatar_data);
|
||||
|
||||
/*virtual*/ void resetControls();
|
||||
|
||||
protected:
|
||||
void onStatusMessageChanged();
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel for displaying Avatar's notes and modifying friend's rights.
|
||||
*/
|
||||
class LLPanelAvatarNotes
|
||||
: public LLPanelProfileTab
|
||||
, public LLFriendObserver
|
||||
, public LLVoiceClientStatusObserver
|
||||
{
|
||||
public:
|
||||
LLPanelAvatarNotes();
|
||||
/*virtual*/ ~LLPanelAvatarNotes();
|
||||
|
||||
virtual void setAvatarId(const LLUUID& id);
|
||||
|
||||
/**
|
||||
* LLFriendObserver trigger
|
||||
*/
|
||||
virtual void changed(U32 mask);
|
||||
|
||||
// Implements LLVoiceClientStatusObserver::onChange() to enable the call
|
||||
// button when voice is available
|
||||
/*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal);
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
/*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
|
||||
|
||||
/*virtual*/ void updateData();
|
||||
|
||||
protected:
|
||||
|
||||
/*virtual*/ void resetControls();
|
||||
|
||||
/*virtual*/ void resetData();
|
||||
|
||||
/**
|
||||
* Fills rights data for friends.
|
||||
*/
|
||||
void fillRightsData();
|
||||
|
||||
void rightsConfirmationCallback(const LLSD& notification,
|
||||
const LLSD& response, S32 rights);
|
||||
void confirmModifyRights(bool grant, S32 rights);
|
||||
void onCommitRights();
|
||||
void onCommitNotes();
|
||||
|
||||
void onAddFriendButtonClick();
|
||||
void onIMButtonClick();
|
||||
void onCallButtonClick();
|
||||
void onTeleportButtonClick();
|
||||
void onShareButtonClick();
|
||||
void enableCheckboxes(bool enable);
|
||||
};
|
||||
|
||||
#endif // LL_LLPANELAVATAR_H
|
||||
|
|
|
|||
|
|
@ -118,18 +118,6 @@ LLPanelMainInventory::LLPanelMainInventory()
|
|||
mCommitCallbackRegistrar.add("Inventory.SetSortBy", boost::bind(&LLPanelMainInventory::setSortBy, this, _2));
|
||||
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars));
|
||||
|
||||
// Controls
|
||||
// *TODO: Just use persistant settings for each of these
|
||||
U32 sort_order = gSavedSettings.getU32(LLInventoryPanel::DEFAULT_SORT_ORDER);
|
||||
BOOL sort_by_name = ! ( sort_order & LLInventoryFilter::SO_DATE );
|
||||
BOOL sort_folders_by_name = ( sort_order & LLInventoryFilter::SO_FOLDERS_BY_NAME );
|
||||
BOOL sort_system_folders_to_top = ( sort_order & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP );
|
||||
|
||||
gSavedSettings.declareBOOL("Inventory.SortByName", sort_by_name, "Declared in code", FALSE);
|
||||
gSavedSettings.declareBOOL("Inventory.SortByDate", !sort_by_name, "Declared in code", FALSE);
|
||||
gSavedSettings.declareBOOL("Inventory.FoldersAlwaysByName", sort_folders_by_name, "Declared in code", FALSE);
|
||||
gSavedSettings.declareBOOL("Inventory.SystemFoldersToTop", sort_system_folders_to_top, "Declared in code", FALSE);
|
||||
|
||||
mSavedFolderState = new LLSaveFolderState();
|
||||
mSavedFolderState->setApply(FALSE);
|
||||
}
|
||||
|
|
@ -325,67 +313,41 @@ void LLPanelMainInventory::resetFilters()
|
|||
|
||||
void LLPanelMainInventory::setSortBy(const LLSD& userdata)
|
||||
{
|
||||
std::string sort_field = userdata.asString();
|
||||
if (sort_field == "name")
|
||||
U32 sort_order_mask = getActivePanel()->getSortOrder();
|
||||
std::string sort_type = userdata.asString();
|
||||
if (sort_type == "name")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
order &= ~LLInventoryFilter::SO_DATE;
|
||||
|
||||
getActivePanel()->setSortOrder( order );
|
||||
|
||||
gSavedSettings.setU32("InventorySortOrder", order);
|
||||
|
||||
gSavedSettings.setBOOL("Inventory.SortByName", TRUE );
|
||||
gSavedSettings.setBOOL("Inventory.SortByDate", FALSE );
|
||||
sort_order_mask &= ~LLInventoryFilter::SO_DATE;
|
||||
}
|
||||
else if (sort_field == "date")
|
||||
else if (sort_type == "date")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
order |= LLInventoryFilter::SO_DATE;
|
||||
|
||||
getActivePanel()->setSortOrder( order );
|
||||
|
||||
gSavedSettings.setU32("InventorySortOrder", order);
|
||||
|
||||
gSavedSettings.setBOOL("Inventory.SortByName", FALSE );
|
||||
gSavedSettings.setBOOL("Inventory.SortByDate", TRUE );
|
||||
sort_order_mask |= LLInventoryFilter::SO_DATE;
|
||||
}
|
||||
else if (sort_field == "foldersalwaysbyname")
|
||||
else if (sort_type == "foldersalwaysbyname")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
if ( order & LLInventoryFilter::SO_FOLDERS_BY_NAME )
|
||||
if ( sort_order_mask & LLInventoryFilter::SO_FOLDERS_BY_NAME )
|
||||
{
|
||||
order &= ~LLInventoryFilter::SO_FOLDERS_BY_NAME;
|
||||
|
||||
gSavedSettings.setBOOL("Inventory.FoldersAlwaysByName", FALSE );
|
||||
sort_order_mask &= ~LLInventoryFilter::SO_FOLDERS_BY_NAME;
|
||||
}
|
||||
else
|
||||
{
|
||||
order |= LLInventoryFilter::SO_FOLDERS_BY_NAME;
|
||||
|
||||
gSavedSettings.setBOOL("Inventory.FoldersAlwaysByName", TRUE );
|
||||
sort_order_mask |= LLInventoryFilter::SO_FOLDERS_BY_NAME;
|
||||
}
|
||||
getActivePanel()->setSortOrder( order );
|
||||
}
|
||||
else if (sort_field == "systemfolderstotop")
|
||||
else if (sort_type == "systemfolderstotop")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
if ( order & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP )
|
||||
if ( sort_order_mask & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP )
|
||||
{
|
||||
order &= ~LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
|
||||
gSavedSettings.setBOOL("Inventory.SystemFoldersToTop", FALSE );
|
||||
sort_order_mask &= ~LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
}
|
||||
else
|
||||
{
|
||||
order |= LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
|
||||
gSavedSettings.setBOOL("Inventory.SystemFoldersToTop", TRUE );
|
||||
sort_order_mask |= LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
}
|
||||
getActivePanel()->setSortOrder( order );
|
||||
|
||||
gSavedSettings.setU32("InventorySortOrder", order);
|
||||
}
|
||||
|
||||
getActivePanel()->setSortOrder(sort_order_mask);
|
||||
gSavedSettings.setU32("InventorySortOrder", sort_order_mask);
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -1013,6 +975,11 @@ void LLPanelMainInventory::onCustomAction(const LLSD& userdata)
|
|||
const LLSD arg = "date";
|
||||
setSortBy(arg);
|
||||
}
|
||||
if (command_name == "sort_folders_by_name")
|
||||
{
|
||||
const LLSD arg = "foldersalwaysbyname";
|
||||
setSortBy(arg);
|
||||
}
|
||||
if (command_name == "sort_system_folders_to_top")
|
||||
{
|
||||
const LLSD arg = "systemfolderstotop";
|
||||
|
|
@ -1193,24 +1160,26 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
|
|||
|
||||
BOOL LLPanelMainInventory::isActionChecked(const LLSD& userdata)
|
||||
{
|
||||
U32 sort_order_mask = getActivePanel()->getSortOrder();
|
||||
const std::string command_name = userdata.asString();
|
||||
|
||||
if (command_name == "sort_by_name")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
return ~order & LLInventoryFilter::SO_DATE;
|
||||
return ~sort_order_mask & LLInventoryFilter::SO_DATE;
|
||||
}
|
||||
|
||||
if (command_name == "sort_by_recent")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
return order & LLInventoryFilter::SO_DATE;
|
||||
return sort_order_mask & LLInventoryFilter::SO_DATE;
|
||||
}
|
||||
|
||||
if (command_name == "sort_folders_by_name")
|
||||
{
|
||||
return sort_order_mask & LLInventoryFilter::SO_FOLDERS_BY_NAME;
|
||||
}
|
||||
|
||||
if (command_name == "sort_system_folders_to_top")
|
||||
{
|
||||
U32 order = getActivePanel()->getSortOrder();
|
||||
return order & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
return sort_order_mask & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
#include "llgroupactions.h"
|
||||
#include "llgrouplist.h"
|
||||
#include "llinventoryobserver.h"
|
||||
#include "llnetmap.h"
|
||||
#include "llpanelpeoplemenus.h"
|
||||
#include "llsidetray.h"
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
|
|
@ -494,7 +495,8 @@ LLPanelPeople::LLPanelPeople()
|
|||
mNearbyGearButton(NULL),
|
||||
mFriendsGearButton(NULL),
|
||||
mGroupsGearButton(NULL),
|
||||
mRecentGearButton(NULL)
|
||||
mRecentGearButton(NULL),
|
||||
mMiniMap(NULL)
|
||||
{
|
||||
mFriendListUpdater = new LLFriendListUpdater(boost::bind(&LLPanelPeople::updateFriendList, this));
|
||||
mNearbyListUpdater = new LLNearbyListUpdater(boost::bind(&LLPanelPeople::updateNearbyList, this));
|
||||
|
|
@ -567,6 +569,9 @@ BOOL LLPanelPeople::postBuild()
|
|||
mNearbyList->setNoItemsMsg(getString("no_one_near"));
|
||||
mNearbyList->setNoFilteredItemsMsg(getString("no_one_filtered_near"));
|
||||
mNearbyList->setShowIcons("NearbyListShowIcons");
|
||||
mMiniMap = (LLNetMap*)getChildView("Net Map",true);
|
||||
mMiniMap->setToolTipMsg(gSavedSettings.getBOOL("DoubleClickTeleport") ?
|
||||
getString("AltMiniMapToolTipMsg") : getString("MiniMapToolTipMsg"));
|
||||
|
||||
mRecentList = getChild<LLPanel>(RECENT_TAB_NAME)->getChild<LLAvatarList>("avatar_list");
|
||||
mRecentList->setNoItemsCommentText(getString("no_recent_people"));
|
||||
|
|
@ -1088,6 +1093,12 @@ void LLPanelPeople::onAvatarListDoubleClicked(LLUICtrl* ctrl)
|
|||
|
||||
void LLPanelPeople::onAvatarListCommitted(LLAvatarList* list)
|
||||
{
|
||||
if (getActiveTabName() == NEARBY_TAB_NAME)
|
||||
{
|
||||
uuid_vec_t selected_uuids;
|
||||
getCurrentItemIDs(selected_uuids);
|
||||
mMiniMap->setSelected(selected_uuids);
|
||||
} else
|
||||
// Make sure only one of the friends lists (online/all) has selection.
|
||||
if (getActiveTabName() == FRIENDS_TAB_NAME)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ private:
|
|||
LLAvatarList* mNearbyList;
|
||||
LLAvatarList* mRecentList;
|
||||
LLGroupList* mGroupList;
|
||||
LLNetMap* mMiniMap;
|
||||
|
||||
LLHandle<LLView> mGroupPlusMenuHandle;
|
||||
LLHandle<LLView> mNearbyViewSortMenuHandle;
|
||||
|
|
|
|||
|
|
@ -1597,7 +1597,7 @@ std::string LLPreviewGesture::getLabel(std::vector<std::string> labels)
|
|||
|
||||
if(v_labels[0]=="Chat")
|
||||
{
|
||||
result=LLTrans::getString("Chat");
|
||||
result=LLTrans::getString("Chat Message");
|
||||
}
|
||||
else if(v_labels[0]=="Sound")
|
||||
{
|
||||
|
|
|
|||
|
|
@ -273,6 +273,8 @@ void LLPreviewTexture::saveAs()
|
|||
mSaveFileName = file_picker.getFirstFile();
|
||||
mLoadingFullImage = TRUE;
|
||||
getWindow()->incBusyCount();
|
||||
|
||||
mImage->forceToSaveRawImage(0) ;//re-fetch the raw image if the old one is removed.
|
||||
mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave,
|
||||
0, TRUE, FALSE, new LLUUID( mItemUUID ), &mCallbackTextureList );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,6 +141,8 @@ public:
|
|||
|
||||
void toggleTabDocked();
|
||||
|
||||
BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
|
||||
|
||||
LLPanel *getPanel();
|
||||
private:
|
||||
std::string mTabTitle;
|
||||
|
|
@ -269,6 +271,15 @@ void LLSideTrayTab::toggleTabDocked()
|
|||
LLFloaterReg::toggleInstance("side_bar_tab", tab_name);
|
||||
}
|
||||
|
||||
BOOL LLSideTrayTab::handleScrollWheel(S32 x, S32 y, S32 clicks)
|
||||
{
|
||||
// Let children handle the event
|
||||
LLUICtrl::handleScrollWheel(x, y, clicks);
|
||||
|
||||
// and then eat it to prevent in-world scrolling (STORM-351).
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLSideTrayTab::dock(LLFloater* floater_tab)
|
||||
{
|
||||
LLSideTray* side_tray = getSideTray();
|
||||
|
|
|
|||
|
|
@ -2,31 +2,25 @@
|
|||
* @file llsimplestat.h
|
||||
* @brief Runtime statistics accumulation.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, Linden Research, Inc.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -326,6 +326,7 @@ bool LLTextureCacheRemoteWorker::doRead()
|
|||
// First state / stage : find out if the file is local
|
||||
if (mState == INIT)
|
||||
{
|
||||
#if 0
|
||||
std::string filename = mCache->getLocalFileName(mID);
|
||||
// Is it a JPEG2000 file?
|
||||
{
|
||||
|
|
@ -360,6 +361,11 @@ bool LLTextureCacheRemoteWorker::doRead()
|
|||
}
|
||||
// Determine the next stage: if we found a file, then LOCAL else CACHE
|
||||
mState = (local_size > 0 ? LOCAL : CACHE);
|
||||
|
||||
llassert_always(mState == CACHE) ;
|
||||
#else
|
||||
mState = CACHE;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Second state / stage : if the file is local, load it and leave
|
||||
|
|
|
|||
|
|
@ -1141,7 +1141,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
|||
//1, not openning too many file descriptors at the same time;
|
||||
//2, control the traffic of http so udp gets bandwidth.
|
||||
//
|
||||
static const S32 MAX_NUM_OF_HTTP_REQUESTS_IN_QUEUE = 32 ;
|
||||
static const S32 MAX_NUM_OF_HTTP_REQUESTS_IN_QUEUE = 8 ;
|
||||
if(mFetcher->getNumHTTPRequests() > MAX_NUM_OF_HTTP_REQUESTS_IN_QUEUE)
|
||||
{
|
||||
return false ; //wait.
|
||||
|
|
@ -1822,6 +1822,7 @@ LLTextureFetch::LLTextureFetch(LLTextureCache* cache, LLImageDecodeThread* image
|
|||
mImageDecodeThread(imagedecodethread),
|
||||
mTextureBandwidth(0),
|
||||
mHTTPTextureBits(0),
|
||||
mTotalHTTPRequests(0),
|
||||
mCurlGetRequest(NULL),
|
||||
mQAMode(qa_mode)
|
||||
{
|
||||
|
|
@ -1973,6 +1974,7 @@ void LLTextureFetch::addToHTTPQueue(const LLUUID& id)
|
|||
{
|
||||
LLMutexLock lock(&mNetworkQueueMutex);
|
||||
mHTTPTextureQueue.insert(id);
|
||||
mTotalHTTPRequests++;
|
||||
}
|
||||
|
||||
void LLTextureFetch::removeFromHTTPQueue(const LLUUID& id, S32 received_size)
|
||||
|
|
@ -2035,6 +2037,15 @@ S32 LLTextureFetch::getNumHTTPRequests()
|
|||
return size ;
|
||||
}
|
||||
|
||||
U32 LLTextureFetch::getTotalNumHTTPRequests()
|
||||
{
|
||||
mNetworkQueueMutex.lock() ;
|
||||
U32 size = mTotalHTTPRequests ;
|
||||
mNetworkQueueMutex.unlock() ;
|
||||
|
||||
return size ;
|
||||
}
|
||||
|
||||
// call lockQueue() first!
|
||||
LLTextureFetchWorker* LLTextureFetch::getWorkerAfterLock(const LLUUID& id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ public:
|
|||
void dump();
|
||||
S32 getNumRequests() ;
|
||||
S32 getNumHTTPRequests() ;
|
||||
U32 getTotalNumHTTPRequests() ;
|
||||
|
||||
// Public for access by callbacks
|
||||
S32 getPending();
|
||||
|
|
@ -183,6 +184,9 @@ private:
|
|||
|
||||
U32 mHTTPTextureBits;
|
||||
|
||||
//debug use
|
||||
U32 mTotalHTTPRequests ;
|
||||
|
||||
// Out-of-band cross-thread command queue. This command queue
|
||||
// is logically tied to LLQueuedThread's list of
|
||||
// QueuedRequest instances and so must be covered by the
|
||||
|
|
|
|||
|
|
@ -516,6 +516,7 @@ void LLGLTexMemBar::draw()
|
|||
S32 v_offset = (S32)((texture_bar_height + 2.2f) * mTextureView->mNumTextureBars + 2.0f);
|
||||
F32 total_texture_downloaded = (F32)gTotalTextureBytes / (1024 * 1024);
|
||||
F32 total_object_downloaded = (F32)gTotalObjectBytes / (1024 * 1024);
|
||||
U32 total_http_requests = LLAppViewer::getTextureFetch()->getTotalNumHTTPRequests() ;
|
||||
//----------------------------------------------------------------------------
|
||||
LLGLSUIDefault gls_ui;
|
||||
LLColor4 text_color(1.f, 1.f, 1.f, 0.75f);
|
||||
|
|
@ -526,13 +527,13 @@ void LLGLTexMemBar::draw()
|
|||
LLFontGL::getFontMonospace()->renderUTF8(text, 0, 0, v_offset + line_height*6,
|
||||
text_color, LLFontGL::LEFT, LLFontGL::TOP);
|
||||
|
||||
text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB Raw Tot: %d MB Bias: %.2f Cache: %.1f/%.1f MB Net Tot Tex: %.1f MB Tot Obj: %.1f MB",
|
||||
text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB Raw Tot: %d MB Bias: %.2f Cache: %.1f/%.1f MB Net Tot Tex: %.1f MB Tot Obj: %.1f MB Tot Htp: %d",
|
||||
total_mem,
|
||||
max_total_mem,
|
||||
bound_mem,
|
||||
max_bound_mem,
|
||||
LLImageRaw::sGlobalRawMemory >> 20, discard_bias,
|
||||
cache_usage, cache_max_usage, total_texture_downloaded, total_object_downloaded);
|
||||
cache_usage, cache_max_usage, total_texture_downloaded, total_object_downloaded, total_http_requests);
|
||||
//, cache_entries, cache_max_entries
|
||||
|
||||
LLFontGL::getFontMonospace()->renderUTF8(text, 0, 0, v_offset + line_height*3,
|
||||
|
|
|
|||
|
|
@ -563,7 +563,17 @@ void LLIMToastNotifyPanel::reshape(S32 width, S32 height, BOOL called_from_paren
|
|||
height = rc.getHeight();
|
||||
width = rc.getWidth();
|
||||
|
||||
bool is_width_changed = width != getRect().getWidth();
|
||||
|
||||
LLToastPanel::reshape(width, height, called_from_parent);
|
||||
|
||||
// Notification height required to display the text message depends on
|
||||
// the width of the text box thus if panel width is changed the text box
|
||||
// width is also changed then reshape() is called to adjust proper height.
|
||||
if (is_width_changed)
|
||||
{
|
||||
reshape(width, height, called_from_parent);
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
|
|||
|
|
@ -2,33 +2,27 @@
|
|||
* @file lltranslate.cpp
|
||||
* @brief Functions for translating text via Google Translate.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009-2010, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,33 +2,27 @@
|
|||
* @file lltranslate.h
|
||||
* @brief Human language translation class and JSON response receiver.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009-2010, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLTRANSLATE_H
|
||||
#define LL_LLTRANSLATE_H
|
||||
|
|
|
|||
|
|
@ -2,31 +2,25 @@
|
|||
* @file llviewerassetstats.cpp
|
||||
* @brief
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, Linden Research, Inc.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -2,31 +2,25 @@
|
|||
* @file llviewerassetstats.h
|
||||
* @brief Client-side collection of asset request statistics
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, Linden Research, Inc.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -647,8 +647,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
|
|||
LLGLState::checkTextureChannels();
|
||||
LLGLState::checkClientArrays();
|
||||
|
||||
BOOL to_texture = !for_snapshot &&
|
||||
gPipeline.canUseVertexShaders() &&
|
||||
BOOL to_texture = gPipeline.canUseVertexShaders() &&
|
||||
LLPipeline::sRenderGlow;
|
||||
|
||||
LLAppViewer::instance()->pingMainloopTimeout("Display:Swap");
|
||||
|
|
@ -709,7 +708,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
|
|||
glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
||||
}
|
||||
|
||||
if (!for_snapshot)
|
||||
//if (!for_snapshot)
|
||||
{
|
||||
LLMemType mt_gw(LLMemType::MTYPE_DISPLAY_GEN_REFLECTION);
|
||||
LLAppViewer::instance()->pingMainloopTimeout("Display:Imagery");
|
||||
|
|
@ -1043,8 +1042,7 @@ LLRect get_whole_screen_region()
|
|||
S32 tile_height = llround((F32)gViewerWindow->getWorldViewHeightScaled() / zoom_factor);
|
||||
int tile_y = sub_region / num_horizontal_tiles;
|
||||
int tile_x = sub_region - (tile_y * num_horizontal_tiles);
|
||||
glh::matrix4f mat;
|
||||
|
||||
|
||||
whole_screen.setLeftTopAndSize(tile_x * tile_width, gViewerWindow->getWorldViewHeightScaled() - (tile_y * tile_height), tile_width, tile_height);
|
||||
}
|
||||
return whole_screen;
|
||||
|
|
@ -1124,10 +1122,14 @@ void render_ui(F32 zoom_factor, int subfield)
|
|||
LLMemType mt_ru(LLMemType::MTYPE_DISPLAY_RENDER_UI);
|
||||
LLGLState::checkStates();
|
||||
|
||||
glPushMatrix();
|
||||
glLoadMatrixd(gGLLastModelView);
|
||||
glh::matrix4f saved_view = glh_get_current_modelview();
|
||||
glh_set_current_modelview(glh_copy_matrix(gGLLastModelView));
|
||||
|
||||
if (!gSnapshot)
|
||||
{
|
||||
glPushMatrix();
|
||||
glLoadMatrixd(gGLLastModelView);
|
||||
glh_set_current_modelview(glh_copy_matrix(gGLLastModelView));
|
||||
}
|
||||
|
||||
{
|
||||
BOOL to_texture = gPipeline.canUseVertexShaders() &&
|
||||
|
|
@ -1178,8 +1180,11 @@ void render_ui(F32 zoom_factor, int subfield)
|
|||
LLVertexBuffer::unbind();
|
||||
}
|
||||
|
||||
glh_set_current_modelview(saved_view);
|
||||
glPopMatrix();
|
||||
if (!gSnapshot)
|
||||
{
|
||||
glh_set_current_modelview(saved_view);
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
if (gDisplaySwapBuffers)
|
||||
{
|
||||
|
|
@ -1321,7 +1326,7 @@ void render_ui_2d()
|
|||
// render outline for HUD
|
||||
if (isAgentAvatarValid() && gAgentCamera.mHUDCurZoom < 0.98f)
|
||||
{
|
||||
glPushMatrix();
|
||||
gGL.pushMatrix();
|
||||
S32 half_width = (gViewerWindow->getWorldViewWidthScaled() / 2);
|
||||
S32 half_height = (gViewerWindow->getWorldViewHeightScaled() / 2);
|
||||
glScalef(LLUI::sGLScaleFactor.mV[0], LLUI::sGLScaleFactor.mV[1], 1.f);
|
||||
|
|
@ -1330,7 +1335,7 @@ void render_ui_2d()
|
|||
glScalef(zoom,zoom,1.f);
|
||||
gGL.color4fv(LLColor4::white.mV);
|
||||
gl_rect_2d(-half_width, half_height, half_width, -half_height, FALSE);
|
||||
glPopMatrix();
|
||||
gGL.popMatrix();
|
||||
stop_glerror();
|
||||
}
|
||||
|
||||
|
|
@ -1378,8 +1383,7 @@ void render_ui_2d()
|
|||
gGL.setColorMask(true, false);
|
||||
|
||||
LLUI::sDirtyRect = t_rect;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
LLGLDisable cull(GL_CULL_FACE);
|
||||
LLGLDisable blend(GL_BLEND);
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
#include "llwebsharing.h" // For LLWebSharing::setOpenIDCookie(), *TODO: find a better way to do this!
|
||||
#include "llfilepicker.h"
|
||||
#include "llnotifications.h"
|
||||
|
||||
#include "lldir.h"
|
||||
#include "llevent.h" // LLSimpleListener
|
||||
#include "llnotificationsutil.h"
|
||||
#include "lluuid.h"
|
||||
|
|
@ -1766,7 +1766,8 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
|
|||
|
||||
media_source->setTarget(target);
|
||||
|
||||
if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")))
|
||||
const std::string plugin_dir = gDirUtilp->getLLPluginDir();
|
||||
if (media_source->init(launcher_name, plugin_dir, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")))
|
||||
{
|
||||
return media_source;
|
||||
}
|
||||
|
|
@ -1832,16 +1833,17 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)
|
|||
media_source->ignore_ssl_cert_errors(true);
|
||||
}
|
||||
|
||||
// start by assuming the default CA file will be used
|
||||
std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "lindenlab.pem" );
|
||||
|
||||
// default turned off so pick up the user specified path
|
||||
if( ! gSavedSettings.getBOOL("BrowserUseDefaultCAFile"))
|
||||
{
|
||||
ca_path = gSavedSettings.getString("BrowserCAFilePath");
|
||||
}
|
||||
// set the path to the CA.pem file
|
||||
media_source->addCertificateFilePath( ca_path );
|
||||
// NOTE: Removed as per STORM-927 - SSL handshake failed - setting local self-signed certs like this
|
||||
// seems to screw things up big time. For now, devs will need to add these certs locally and Qt will pick them up.
|
||||
// // start by assuming the default CA file will be used
|
||||
// std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "lindenlab.pem" );
|
||||
// // default turned off so pick up the user specified path
|
||||
// if( ! gSavedSettings.getBOOL("BrowserUseDefaultCAFile"))
|
||||
// {
|
||||
// ca_path = gSavedSettings.getString("BrowserCAFilePath");
|
||||
// }
|
||||
// // set the path to the CA.pem file
|
||||
// media_source->addCertificateFilePath( ca_path );
|
||||
|
||||
media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort"));
|
||||
|
||||
|
|
|
|||
|
|
@ -2721,6 +2721,14 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||
LLSD args;
|
||||
args["slurl"] = location;
|
||||
args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
|
||||
|
||||
// Look for IRC-style emotes here so object name formatting is correct
|
||||
std::string prefix = message.substr(0, 4);
|
||||
if (prefix == "/me " || prefix == "/me'")
|
||||
{
|
||||
chat.mChatStyle = CHAT_STYLE_IRC;
|
||||
}
|
||||
|
||||
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -477,7 +477,6 @@ void LLViewerObject::initVOClasses()
|
|||
llinfos << "Viewer Object size: " << sizeof(LLViewerObject) << llendl;
|
||||
LLVOGrass::initClass();
|
||||
LLVOWater::initClass();
|
||||
LLVOSky::initClass();
|
||||
LLVOVolume::initClass();
|
||||
}
|
||||
|
||||
|
|
@ -3009,6 +3008,8 @@ void LLViewerObject::setScale(const LLVector3 &scale, BOOL damped)
|
|||
{
|
||||
if (!mOnMap)
|
||||
{
|
||||
llassert_always(LLWorld::getInstance()->getRegionFromHandle(getRegion()->getHandle()));
|
||||
|
||||
gObjectList.addToMap(this);
|
||||
mOnMap = TRUE;
|
||||
}
|
||||
|
|
@ -3536,8 +3537,8 @@ void LLViewerObject::setPositionParent(const LLVector3 &pos_parent, BOOL damped)
|
|||
// Set position relative to parent, if no parent, relative to region
|
||||
if (!isRoot())
|
||||
{
|
||||
LLViewerObject::setPosition(pos_parent);
|
||||
updateDrawable(damped);
|
||||
LLViewerObject::setPosition(pos_parent, damped);
|
||||
//updateDrawable(damped);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -3578,6 +3579,7 @@ void LLViewerObject::setPositionEdit(const LLVector3 &pos_edit, BOOL damped)
|
|||
LLVector3 position_offset = getPosition() * getParent()->getRotation();
|
||||
|
||||
((LLViewerObject *)getParent())->setPositionEdit(pos_edit - position_offset);
|
||||
updateDrawable(damped);
|
||||
}
|
||||
else if (isJointChild())
|
||||
{
|
||||
|
|
@ -3586,15 +3588,14 @@ void LLViewerObject::setPositionEdit(const LLVector3 &pos_edit, BOOL damped)
|
|||
LLQuaternion inv_parent_rot = parent->getRotation();
|
||||
inv_parent_rot.transQuat();
|
||||
LLVector3 pos_parent = (pos_edit - parent->getPositionRegion()) * inv_parent_rot;
|
||||
LLViewerObject::setPosition(pos_parent);
|
||||
LLViewerObject::setPosition(pos_parent, damped);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLViewerObject::setPosition(pos_edit);
|
||||
LLViewerObject::setPosition(pos_edit, damped);
|
||||
mPositionRegion = pos_edit;
|
||||
mPositionAgent = mRegionp->getPosAgentFromRegion(mPositionRegion);
|
||||
}
|
||||
updateDrawable(damped);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -160,19 +160,13 @@ U64 LLViewerObjectList::getIndex(const U32 local_id,
|
|||
return (((U64)index) << 32) | (U64)local_id;
|
||||
}
|
||||
|
||||
BOOL LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject &object)
|
||||
BOOL LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject* objectp)
|
||||
{
|
||||
if(object.getRegion())
|
||||
if(objectp && objectp->getRegion())
|
||||
{
|
||||
U32 local_id = object.mLocalID;
|
||||
LLHost region_host = object.getRegion()->getHost();
|
||||
if(!region_host.isOk())
|
||||
{
|
||||
return FALSE ;
|
||||
}
|
||||
|
||||
U32 ip = region_host.getAddress();
|
||||
U32 port = region_host.getPort();
|
||||
U32 local_id = objectp->mLocalID;
|
||||
U32 ip = objectp->getRegion()->getHost().getAddress();
|
||||
U32 port = objectp->getRegion()->getHost().getPort();
|
||||
U64 ipport = (((U64)ip) << 32) | (U64)port;
|
||||
U32 index = sIPAndPortToIndex[ipport];
|
||||
|
||||
|
|
@ -187,7 +181,7 @@ BOOL LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject &object)
|
|||
}
|
||||
|
||||
// Found existing entry
|
||||
if (iter->second == object.getID())
|
||||
if (iter->second == objectp->getID())
|
||||
{ // Full UUIDs match, so remove the entry
|
||||
sIndexAndLocalIDToUUID.erase(iter);
|
||||
return TRUE;
|
||||
|
|
@ -477,7 +471,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
|
|||
// << ", regionp " << (U32) regionp << ", object region " << (U32) objectp->getRegion()
|
||||
// << llendl;
|
||||
//}
|
||||
removeFromLocalIDTable(*objectp);
|
||||
removeFromLocalIDTable(objectp);
|
||||
setUUIDAndLocal(fullid,
|
||||
local_id,
|
||||
gMessageSystem->getSenderIP(),
|
||||
|
|
@ -910,7 +904,7 @@ void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)
|
|||
// << objectp->getRegion()->getHost().getPort() << llendl;
|
||||
//}
|
||||
|
||||
removeFromLocalIDTable(*objectp);
|
||||
removeFromLocalIDTable(objectp);
|
||||
|
||||
if (objectp->onActiveList())
|
||||
{
|
||||
|
|
@ -1130,6 +1124,22 @@ void LLViewerObjectList::shiftObjects(const LLVector3 &offset)
|
|||
LLWorld::getInstance()->shiftRegions(offset);
|
||||
}
|
||||
|
||||
//debug code
|
||||
bool LLViewerObjectList::hasMapObjectInRegion(LLViewerRegion* regionp)
|
||||
{
|
||||
for (vobj_list_t::iterator iter = mMapObjects.begin(); iter != mMapObjects.end(); ++iter)
|
||||
{
|
||||
LLViewerObject* objectp = *iter;
|
||||
|
||||
if(objectp->isDead() || objectp->getRegion() == regionp)
|
||||
{
|
||||
return true ;
|
||||
}
|
||||
}
|
||||
|
||||
return false ;
|
||||
}
|
||||
|
||||
void LLViewerObjectList::renderObjectsForMap(LLNetMap &netmap)
|
||||
{
|
||||
LLColor4 above_water_color = LLUIColorTable::instance().getColor( "NetMapOtherOwnAboveWater" );
|
||||
|
|
@ -1148,6 +1158,9 @@ void LLViewerObjectList::renderObjectsForMap(LLNetMap &netmap)
|
|||
for (vobj_list_t::iterator iter = mMapObjects.begin(); iter != mMapObjects.end(); ++iter)
|
||||
{
|
||||
LLViewerObject* objectp = *iter;
|
||||
|
||||
llassert_always(!objectp->isDead());
|
||||
|
||||
if (!objectp->getRegion() || objectp->isOrphaned() || objectp->isAttachment())
|
||||
{
|
||||
continue;
|
||||
|
|
@ -1435,7 +1448,7 @@ LLViewerObject *LLViewerObjectList::replaceObject(const LLUUID &id, const LLPCod
|
|||
LLViewerObject *old_instance = findObject(id);
|
||||
if (old_instance)
|
||||
{
|
||||
cleanupReferences(old_instance);
|
||||
//cleanupReferences(old_instance);
|
||||
old_instance->markDead();
|
||||
|
||||
return createObject(pcode, regionp, id, old_instance->getLocalID(), LLHost());
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ public:
|
|||
|
||||
void shiftObjects(const LLVector3 &offset);
|
||||
|
||||
bool hasMapObjectInRegion(LLViewerRegion* regionp) ;
|
||||
void renderObjectsForMap(LLNetMap &netmap);
|
||||
void renderObjectBounds(const LLVector3 ¢er);
|
||||
|
||||
|
|
@ -160,7 +161,7 @@ public:
|
|||
const U32 ip,
|
||||
const U32 port); // Requires knowledge of message system info!
|
||||
|
||||
static BOOL removeFromLocalIDTable(const LLViewerObject &object);
|
||||
static BOOL removeFromLocalIDTable(const LLViewerObject* objectp);
|
||||
// Used ONLY by the orphaned object code.
|
||||
static U64 getIndex(const U32 local_id, const U32 ip, const U32 port);
|
||||
|
||||
|
|
|
|||
|
|
@ -322,6 +322,12 @@ LLViewerRegion::~LLViewerRegion()
|
|||
std::for_each(mObjectPartition.begin(), mObjectPartition.end(), DeletePointer());
|
||||
}
|
||||
|
||||
/*virtual*/
|
||||
const LLHost& LLViewerRegion::getHost() const
|
||||
{
|
||||
return mHost;
|
||||
}
|
||||
|
||||
void LLViewerRegion::loadObjectCache()
|
||||
{
|
||||
if (mCacheLoaded)
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ public:
|
|||
LLEventPump& getCapAPI() { return mCapabilityListener.getCapAPI(); }
|
||||
|
||||
/// implements LLCapabilityProvider
|
||||
virtual LLHost getHost() const { return mHost; }
|
||||
/*virtual*/ const LLHost& getHost() const;
|
||||
const U64 &getHandle() const { return mHandle; }
|
||||
|
||||
LLSurface &getLand() const { return *mLandp; }
|
||||
|
|
|
|||
|
|
@ -1214,12 +1214,15 @@ void LLViewerFetchedTexture::cleanup()
|
|||
|
||||
void LLViewerFetchedTexture::setForSculpt()
|
||||
{
|
||||
static const S32 MAX_INTERVAL = 8 ; //frames
|
||||
|
||||
mForSculpt = TRUE ;
|
||||
if(isForSculptOnly() && !getBoundRecently())
|
||||
{
|
||||
destroyGLTexture() ; //sculpt image does not need gl texture.
|
||||
}
|
||||
checkCachedRawSculptImage() ;
|
||||
setMaxVirtualSizeResetInterval(MAX_INTERVAL) ;
|
||||
}
|
||||
|
||||
BOOL LLViewerFetchedTexture::isForSculptOnly() const
|
||||
|
|
|
|||
|
|
@ -296,13 +296,15 @@ private:
|
|||
line_list_t mLineList;
|
||||
LLColor4 mTextColor;
|
||||
|
||||
public:
|
||||
LLDebugText(LLViewerWindow* window) : mWindow(window) {}
|
||||
|
||||
void addText(S32 x, S32 y, const std::string &text)
|
||||
{
|
||||
mLineList.push_back(Line(text, x, y));
|
||||
}
|
||||
|
||||
void clearText() { mLineList.clear(); }
|
||||
|
||||
public:
|
||||
LLDebugText(LLViewerWindow* window) : mWindow(window) {}
|
||||
|
||||
void update()
|
||||
{
|
||||
|
|
@ -323,6 +325,8 @@ public:
|
|||
U32 ypos = 64;
|
||||
const U32 y_inc = 20;
|
||||
|
||||
clearText();
|
||||
|
||||
if (gSavedSettings.getBOOL("DebugShowTime"))
|
||||
{
|
||||
const U32 y_inc2 = 15;
|
||||
|
|
@ -347,6 +351,14 @@ public:
|
|||
addText(xpos, ypos, llformat("Time: %d:%02d:%02d", hours,mins,secs)); ypos += y_inc;
|
||||
}
|
||||
|
||||
#if LL_WINDOWS
|
||||
if (gSavedSettings.getBOOL("DebugShowMemory"))
|
||||
{
|
||||
addText(xpos, ypos, llformat("Memory: %d (KB)", LLMemory::getWorkingSetSize() / 1024));
|
||||
ypos += y_inc;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gDisplayCameraPos)
|
||||
{
|
||||
std::string camera_view_text;
|
||||
|
|
@ -601,6 +613,50 @@ public:
|
|||
ypos += y_inc;
|
||||
}
|
||||
}
|
||||
|
||||
if (gSavedSettings.getBOOL("DebugShowTextureInfo"))
|
||||
{
|
||||
LLViewerObject* objectp = NULL ;
|
||||
//objectp = = gAgentCamera.getFocusObject();
|
||||
|
||||
LLSelectNode* nodep = LLSelectMgr::instance().getHoverNode();
|
||||
if (nodep)
|
||||
{
|
||||
objectp = nodep->getObject();
|
||||
}
|
||||
if (objectp && !objectp->isDead())
|
||||
{
|
||||
S32 num_faces = objectp->mDrawable->getNumFaces() ;
|
||||
|
||||
for(S32 i = 0 ; i < num_faces; i++)
|
||||
{
|
||||
LLFace* facep = objectp->mDrawable->getFace(i) ;
|
||||
if(facep)
|
||||
{
|
||||
//addText(xpos, ypos, llformat("ts_min: %.3f ts_max: %.3f tt_min: %.3f tt_max: %.3f", facep->mTexExtents[0].mV[0], facep->mTexExtents[1].mV[0],
|
||||
// facep->mTexExtents[0].mV[1], facep->mTexExtents[1].mV[1]));
|
||||
//ypos += y_inc;
|
||||
|
||||
addText(xpos, ypos, llformat("v_size: %.3f: p_size: %.3f", facep->getVirtualSize(), facep->getPixelArea()));
|
||||
ypos += y_inc;
|
||||
|
||||
//const LLTextureEntry *tep = facep->getTextureEntry();
|
||||
//if(tep)
|
||||
//{
|
||||
// addText(xpos, ypos, llformat("scale_s: %.3f: scale_t: %.3f", tep->mScaleS, tep->mScaleT)) ;
|
||||
// ypos += y_inc;
|
||||
//}
|
||||
|
||||
LLViewerTexture* tex = facep->getTexture() ;
|
||||
if(tex)
|
||||
{
|
||||
addText(xpos, ypos, llformat("ID: %s v_size: %.3f", tex->getID().asString().c_str(), tex->getMaxVirtualSize()));
|
||||
ypos += y_inc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void draw()
|
||||
|
|
@ -3945,18 +4001,26 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
LLPipeline::sShowHUDAttachments = FALSE;
|
||||
}
|
||||
|
||||
// if not showing ui, use full window to render world view
|
||||
updateWorldViewRect(!show_ui);
|
||||
|
||||
// Copy screen to a buffer
|
||||
// crop sides or top and bottom, if taking a snapshot of different aspect ratio
|
||||
// from window
|
||||
S32 snapshot_width = mWindowRectRaw.getWidth();
|
||||
S32 snapshot_height = mWindowRectRaw.getHeight();
|
||||
// SNAPSHOT
|
||||
S32 window_width = mWindowRectRaw.getWidth();
|
||||
S32 window_height = mWindowRectRaw.getHeight();
|
||||
LLRect window_rect = mWindowRectRaw;
|
||||
BOOL use_fbo = FALSE;
|
||||
LLRect window_rect = show_ui ? getWindowRectRaw() : getWorldViewRectRaw();
|
||||
|
||||
S32 snapshot_width = window_rect.getWidth();
|
||||
S32 snapshot_height = window_rect.getHeight();
|
||||
// SNAPSHOT
|
||||
S32 window_width = snapshot_width;
|
||||
S32 window_height = snapshot_height;
|
||||
|
||||
if (show_ui)
|
||||
{
|
||||
image_width = llmin(image_width, window_width);
|
||||
image_height = llmin(image_height, window_height);
|
||||
}
|
||||
|
||||
LLRenderTarget target;
|
||||
F32 scale_factor = 1.0f ;
|
||||
if(!keep_window_aspect) //image cropping
|
||||
{
|
||||
|
|
@ -3969,45 +4033,24 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
{
|
||||
if(image_width > window_width || image_height > window_height) //need to enlarge the scene
|
||||
{
|
||||
if (!LLPipeline::sRenderDeferred && gGLManager.mHasFramebufferObject && !show_ui)
|
||||
{
|
||||
GLint max_size = 0;
|
||||
glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE_EXT, &max_size);
|
||||
|
||||
if (image_width <= max_size && image_height <= max_size) //re-project the scene
|
||||
{
|
||||
use_fbo = TRUE;
|
||||
|
||||
snapshot_width = image_width;
|
||||
snapshot_height = image_height;
|
||||
target.allocate(snapshot_width, snapshot_height, GL_RGBA, TRUE, TRUE, LLTexUnit::TT_RECT_TEXTURE, TRUE);
|
||||
window_width = snapshot_width;
|
||||
window_height = snapshot_height;
|
||||
scale_factor = 1.f;
|
||||
mWindowRectRaw.set(0, snapshot_height, snapshot_width, 0);
|
||||
target.bindTarget();
|
||||
}
|
||||
}
|
||||
|
||||
if(!use_fbo) //no re-projection, so tiling the scene
|
||||
{
|
||||
F32 ratio = llmin( (F32)window_width / image_width , (F32)window_height / image_height) ;
|
||||
snapshot_width = (S32)(ratio * image_width) ;
|
||||
snapshot_height = (S32)(ratio * image_height) ;
|
||||
scale_factor = llmax(1.0f, 1.0f / ratio) ;
|
||||
}
|
||||
F32 ratio = llmin( (F32)window_width / image_width , (F32)window_height / image_height) ;
|
||||
snapshot_width = (S32)(ratio * image_width) ;
|
||||
snapshot_height = (S32)(ratio * image_height) ;
|
||||
scale_factor = llmax(1.0f, 1.0f / ratio) ;
|
||||
}
|
||||
//else: keep the current scene scale, re-scale it if necessary after reading out.
|
||||
}
|
||||
|
||||
// if not showing ui, use full window to render world view
|
||||
updateWorldViewRect(!show_ui);
|
||||
if (show_ui && scale_factor > 1.f)
|
||||
{
|
||||
llwarns << "over scaling UI not supported." << llendl;
|
||||
}
|
||||
|
||||
S32 buffer_x_offset = llfloor(((window_width - snapshot_width) * scale_factor) / 2.f);
|
||||
S32 buffer_y_offset = llfloor(((window_height - snapshot_height) * scale_factor) / 2.f);
|
||||
|
||||
S32 image_buffer_x = llfloor(snapshot_width*scale_factor) ;
|
||||
S32 image_buffer_y = llfloor(snapshot_height *scale_factor) ;
|
||||
|
||||
if(image_buffer_x > max_size || image_buffer_y > max_size) //boundary check to avoid memory overflow
|
||||
{
|
||||
scale_factor *= llmin((F32)max_size / image_buffer_x, (F32)max_size / image_buffer_y) ;
|
||||
|
|
@ -4016,7 +4059,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
}
|
||||
if(image_buffer_x > 0 && image_buffer_y > 0)
|
||||
{
|
||||
raw->resize(image_buffer_x, image_buffer_y, 3);
|
||||
raw->resize(image_buffer_x, image_buffer_y, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -4028,12 +4071,13 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
}
|
||||
|
||||
BOOL high_res = scale_factor >= 2.f; // Font scaling is slow, only do so if rez is much higher
|
||||
if (high_res)
|
||||
if (high_res && show_ui)
|
||||
{
|
||||
send_agent_pause();
|
||||
llwarns << "High res UI snapshot not supported. " << llendl;
|
||||
/*send_agent_pause();
|
||||
//rescale fonts
|
||||
initFonts(scale_factor);
|
||||
LLHUDObject::reshapeAll();
|
||||
LLHUDObject::reshapeAll();*/
|
||||
}
|
||||
|
||||
S32 output_buffer_offset_y = 0;
|
||||
|
|
@ -4129,12 +4173,6 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
output_buffer_offset_y += subimage_y_offset;
|
||||
}
|
||||
|
||||
if (use_fbo)
|
||||
{
|
||||
mWindowRectRaw = window_rect;
|
||||
target.flush();
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
}
|
||||
gDisplaySwapBuffers = FALSE;
|
||||
gDepthDirty = TRUE;
|
||||
|
||||
|
|
@ -4149,11 +4187,11 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
LLPipeline::sShowHUDAttachments = TRUE;
|
||||
}
|
||||
|
||||
if (high_res)
|
||||
/*if (high_res)
|
||||
{
|
||||
initFonts(1.f);
|
||||
LLHUDObject::reshapeAll();
|
||||
}
|
||||
}*/
|
||||
|
||||
// Pre-pad image to number of pixels such that the line length is a multiple of 4 bytes (for BMP encoding)
|
||||
// Note: this formula depends on the number of components being 3. Not obvious, but it's correct.
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue