diff options
32 files changed, 505 insertions, 776 deletions
@@ -88,8 +88,6 @@ f1827b441e05bf37c68e2c15ebc6d09e9b03f527 2.6.0-start  c5bdef3aaa2744626aef3c217ce29e1900d357b3 2.6.1-start  c5bdef3aaa2744626aef3c217ce29e1900d357b3 DRTVWR-43_2.6.1-beta1  c5bdef3aaa2744626aef3c217ce29e1900d357b3 2.6.1-beta1 -9e4641f4a7870c0f565a25a2971368d5a29516a1 DRTVWR-41_2.6.0-beta2 -9e4641f4a7870c0f565a25a2971368d5a29516a1 2.6.0-beta2  c9182ed77d427c759cfacf49a7b71a2e20d522aa DRTVWR-42_2.6.1-release  c9182ed77d427c759cfacf49a7b71a2e20d522aa 2.6.1-release  56b2778c743c2a964d82e1caf11084d76a87de2c 2.6.2-start @@ -97,8 +95,12 @@ c9182ed77d427c759cfacf49a7b71a2e20d522aa 2.6.1-release  42f32494bac475d0737799346f6831558ae8bf5d 2.6.0-release  d1203046bb653b763f835b04d184646949d8dd5c DRTVWR-45_2.6.2-beta1  d1203046bb653b763f835b04d184646949d8dd5c 2.6.2-beta1 +214180ad5714ce8392b82bbebcc92f4babd98300 DRTVWR-44_2.6.2-release +214180ad5714ce8392b82bbebcc92f4babd98300 2.6.2-release  52b2263ab28f0976c689fd0b76c55a9eb027cdbf end-of-develop.py  ec32f1045e7c2644015245df3a9933620aa194b8 2.6.3-start  d7fcefabdf32bb61a9ea6d6037c1bb26190a85bc DRTVWR-47_2.6.3-beta1  d7fcefabdf32bb61a9ea6d6037c1bb26190a85bc 2.6.3-beta1  74cd32a06837b0c2cb793b2e8d4d82f5d49462b2 2.6.4-start +74cd32a06837b0c2cb793b2e8d4d82f5d49462b2 2.6.4-start +f632f87bb71b0f13d21f2f64b0c42cedb008c749 2.6.4-start diff --git a/BuildParams b/BuildParams index 3b711397e3..824c15cd12 100644 --- a/BuildParams +++ b/BuildParams @@ -66,7 +66,9 @@ viewer-pre-release.viewer_channel = "Second Life Release"  viewer-pre-release.login_channel = "Second Life Release"  viewer-pre-release.build_debug_release_separately = true  viewer-pre-release.build_viewer_update_version_manager = true +viewer-pre-release.release-viewer.jira = DRTVWR-42  #viewer-pre-release.release-viewer.jira = DRTVWR-13 +viewer-pre-release.release-viewer.jira = DRTVWR-46  # =======================================  # brad diff --git a/autobuild.xml b/autobuild.xml index a31d280b6f..bd98d59766 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -510,9 +510,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>9b58d1a9c15807a1301e42a313641010</string> +              <string>9f8a9dc39fd7c3da0fb3533782d1fddf</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-linux-20110310.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/226814/arch/Linux/installer/freetype-2.3.9-linux-20110418.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -1242,9 +1242,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>cc159598ef3fcd34fd33a8a0ef846165</string> +              <string>3d40be8566fa4b9df9a38e2a0f9ea467</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/223711/arch/Linux/installer/openssl-0.9.8q-linux-20110314.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/226882/arch/Linux/installer/openssl-1.0.0d-linux-20110418.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -1590,15 +1590,15 @@                  <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> +                  <string>-DINSTALL_PROPRIETARY=TRUE</string>                  </array>                </map>                <key>name</key>                <string>Debug</string>              </map> -            <key>OpenSourceDebug</key> +            <key>DebugOS</key>              <map>                <key>configure</key>                <map> @@ -1607,67 +1607,23 @@                  <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>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> +                  <string>-DINSTALL_PROPRIETARY=FALSE</string>                  </array> -              </map> -              <key>name</key> -              <string>OpenSourceRelWithDebInfo</string> -            </map> -            <key>OpenSourceRelease</key> -            <map> -              <key>configure</key> -              <map> -                <key>command</key> -                <string>cmake</string> -                <key>options</key> +                <key>arguments</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> +                  <string>../indra</string>                  </array>                </map>                <key>name</key> -              <string>OpenSourceRelease</string> +              <string>DebugOS</string>              </map> -            <key>OpenSourceStandAloneDebug</key> +            <key>RelWithDebInfo</key>              <map> -              <key>configure</key> +              <key>build</key>                <map> -                <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>command</key> @@ -1675,15 +1631,15 @@                  <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> +                  <string>-DINSTALL_PROPRIETARY=TRUE</string>                  </array>                </map>                <key>name</key> -              <string>OpenSourceStandAloneRelWithDebInfo</string> +              <string>RelWithDebInfo</string>              </map> -            <key>OpenSourceStandAloneRelease</key> +            <key>RelWithDebInfoOS</key>              <map>                <key>configure</key>                <map> @@ -1691,34 +1647,18 @@                  <string>cmake</string>                  <key>options</key>                  <array> -                  <string>-DCMAKE_BUILD_TYPE:STRING=Release</string> -                  <string>-DUNATTENDED:BOOL=OFF</string> +                  <string>-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo</string>                    <string>-DWORD_SIZE:STRING=32</string>                    <string>-DROOT_PROJECT_NAME:STRING=SecondLife</string> +                  <string>-DINSTALL_PROPRIETARY=FALSE</string>                  </array> -              </map> -              <key>name</key> -              <string>OpenSourceStandAloneRelease</string> -            </map> -            <key>RelWithDebInfo</key> -            <map> -              <key>build</key> -              <map> -              </map> -              <key>configure</key> -              <map> -                <key>command</key> -                <string>cmake</string> -                <key>options</key> +                <key>arguments</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> +                  <string>../indra</string>                  </array>                </map>                <key>name</key> -              <string>RelWithDebInfo</string> +              <string>RelWithDebInfoOS</string>              </map>              <key>Release</key>              <map> @@ -1732,83 +1672,38 @@                  <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> +                  <string>-DUSE_PRECOMPILED_HEADERS=ON</string> +                  <string>-DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE</string> +                  <string>-DINSTALL_PROPRIETARY=TRUE</string>                  </array>                </map>                <key>name</key>                <string>Release</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 --> -            <!-- OPEN-1a WORKAROUND begin - to be removed when VC 2010 is detected correctly --> -            <key>VC10msbuildRelWithDebInfo</key> +            <key>ReleaseOS</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>-DCMAKE_BUILD_TYPE:STRING=Release</string>                    <string>-DWORD_SIZE:STRING=32</string>                    <string>-DROOT_PROJECT_NAME:STRING=SecondLife</string> +                  <string>-DINSTALL_PROPRIETARY=FALSE</string> +                  <string>-DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES</string>                  </array> -              </map> -              <key>name</key> -              <string>VC10msbuildRelWithDebInfo</string> -            </map> -            <!-- OPEN-1a WORKAROUND end --> -            <!-- OPEN-1a Release WORKAROUND begin - to be removed when VC 2010 is detected correctly --> -            <key>VC10msbuildRelease</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>VC10msbuildRelease</string> +              <string>ReleaseOS</string>              </map> -            <!-- OPEN-1a Release WORKAROUND end -->                        </map>            <key>name</key>            <string>common</string> @@ -1848,15 +1743,12 @@                  <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> +            <key>DebugOS</key>              <map>                <key>build</key>                <map> @@ -1870,116 +1762,26 @@                </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=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>arguments</key> -                <array> -                  <string>../indra</string> -                </array>                  <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> +              <string>DebugOS</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>arguments</key> -                <array> -                  <string>../indra</string> -                </array> -                <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> +            <key>RelWithDebInfo</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>arguments</key>                  <array> -                  <string>../indra</string> -                </array> -                <key>options</key> -                <array> -                  <string>-G</string> -                  <string>'Xcode'</string> -                  <string>-DSTANDALONE:BOOL=TRUE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> -                  <string>-DFMOD=FALSE</string> +                  <string>|</string> +                  <string>grep</string> +                  <string>-v</string> +                  <string>setenv</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> @@ -1998,15 +1800,14 @@                  <array>                    <string>-G</string>                    <string>'Xcode'</string> -                  <string>-DSTANDALONE:BOOL=TRUE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> -                  <string>-DFMOD=FALSE</string>                  </array>                </map> +              <key>default</key> +              <string>True</string>                <key>name</key> -              <string>OpenSourceStandAloneRelWithDebInfo</string> +              <string>RelWithDebInfo</string>              </map> -            <key>OpenSourceStandAloneRelease</key> +            <key>RelWithDebInfoOS</key>              <map>                <key>build</key>                <map> @@ -2014,29 +1815,22 @@                  <string>xcodebuild</string>                  <key>options</key>                  <array> -                  <string>-configuration Release</string> +                  <string>-configuration RelWithDebInfo</string>                    <string>-project SecondLife.xcodeproj</string>                  </array>                </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=TRUE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> -                  <string>-DFMOD=FALSE</string>                  </array>                </map>                <key>name</key> -              <string>OpenSourceStandAloneRelease</string> +              <string>RelWithDebInfoOS</string>              </map> -            <key>RelWithDebInfo</key> +            <key>Release</key>              <map>                <key>build</key>                <map> @@ -2051,7 +1845,7 @@                  <string>xcodebuild</string>                  <key>options</key>                  <array> -                  <string>-configuration RelWithDebInfo</string> +                  <string>-configuration Release</string>                    <string>-project SecondLife.xcodeproj</string>                  </array>                </map> @@ -2065,27 +1859,15 @@                  <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> -              <string>True</string>                <key>name</key> -              <string>RelWithDebInfo</string> +              <string>Release</string>              </map> -            <key>Release</key> +            <key>ReleaseOS</key>              <map>                <key>build</key>                <map> -                <key>arguments</key> -                <array> -                  <string>|</string> -                  <string>grep</string> -                  <string>-v</string> -                  <string>setenv</string> -                </array>                  <key>command</key>                  <string>xcodebuild</string>                  <key>options</key> @@ -2096,21 +1878,14 @@                </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>Release</string> +              <string>ReleaseOS</string>              </map>            </map>            <key>name</key> @@ -2143,73 +1918,12 @@                  <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>arguments</key> -                <array> -                  <string>../indra</string> -                </array> -                <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>arguments</key> -                <array> -                  <string>../indra</string> -                </array> -                <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> +            <key>DebugOS</key>              <map>                <key>build</key>                <map> @@ -2217,57 +1931,21 @@                  <string>make</string>                  <key>options</key>                  <array> -                  <string>-j 12</string> -                </array> -              </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=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> +                  <string>-j 2</string>                  </array>                </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=TRUE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> -                  <string>-DFMOD=FALSE</string>                  </array>                </map>                <key>name</key> -              <string>OpenSourceStandAloneDebug</string> +              <string>DebugOS</string>              </map> -            <key>OpenSourceStandAloneRelWithDebInfo</key> +            <key>RelWithDebInfo</key>              <map>                <key>build</key>                <map> @@ -2288,15 +1966,14 @@                  <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>default</key> +              <string>True</string>                <key>name</key> -              <string>OpenSourceStandAloneRelWithDebInfo</string> +              <string>RelWithDebInfo</string>              </map> -            <key>OpenSourceStandAloneRelease</key> +            <key>RelWithDebInfoOS</key>              <map>                <key>build</key>                <map> @@ -2304,28 +1981,21 @@                  <string>make</string>                  <key>options</key>                  <array> -                  <string>-j 12</string> +                  <string>-j 2</string>                  </array>                </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=TRUE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> -                  <string>-DFMOD=FALSE</string>                  </array>                </map>                <key>name</key> -              <string>OpenSourceStandAloneRelease</string> +              <string>RelWithDebInfoOS</string>              </map> -            <key>RelWithDebInfo</key> +            <key>Release</key>              <map>                <key>build</key>                <map> @@ -2346,17 +2016,12 @@                  <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> -              <string>True</string>                <key>name</key> -              <string>RelWithDebInfo</string> +              <string>Release</string>              </map> -            <key>Release</key> +            <key>ReleaseOS</key>              <map>                <key>build</key>                <map> @@ -2364,26 +2029,19 @@                  <string>make</string>                  <key>options</key>                  <array> -                  <string>-j 12</string> +                  <string>-j 2</string>                  </array>                </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>Release</string> +              <string>ReleaseOS</string>              </map>              <key>default</key>              <map> @@ -2437,91 +2095,12 @@                  <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>                <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>arguments</key> -                <array> -                  <string>..\indra</string> -                  <string>&&</string> -                  <string>..\indra\tools\vstool\VSTool.exe</string> -                  <string>--solution</string> -                  <string>SecondLife.sln</string> -                  <string>--config</string> -                  <string>Debug</string> -                  <string>--startup</string> -                  <string>secondlife-bin</string> -                </array> -                <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>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>arguments</key> -                <array> -                  <string>../indra</string> -                </array> -                <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> -            <key>OpenSourceRelease</key> +            <key>DebugOS</key>              <map>                <key>build</key>                <map> @@ -2530,32 +2109,35 @@                    <string>SecondLife.sln</string>                  </array>                  <key>command</key> -                <string>devenv.com</string> +                <string>msbuild.exe</string>                  <key>options</key>                  <array> -                  <string>/build</string> -                  <string>Release</string> +                  <string>/p:Configuration=Debug</string> +                  <string>/p:Platform=Win32</string> +                  <string>/t:Build</string> +                  <string>/p:useenv=true</string> +                  <string>/verbosity:minimal</string> +                  <string>/toolsversion:4.0</string> +                  <string>/p:"VCBuildAdditionalOptions= /incremental"</string>                  </array>                </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=FALSE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> +                  <string>-DUNATTENDED:BOOL=ON</string> +                  <string>-DUSE_PRECOMPILED_HEADERS=ON</string> +                  <string>-DINSTALL_PROPRIETARY=TRUE</string> +                  <string>-DUSE_KDU=FALSE</string>                    <string>-DFMOD=FALSE</string>                  </array>                </map>                <key>name</key> -              <string>OpenSourceRelease</string> +              <string>DebugOS</string>              </map> -            <key>OpenSourceStandAloneDebug</key> +            <key>RelWithDebInfo</key>              <map>                <key>build</key>                <map> @@ -2564,11 +2146,11 @@                    <string>SecondLife.sln</string>                  </array>                  <key>command</key> -                <string>devenv.com</string> +                <string>BuildConsole</string>                  <key>options</key>                  <array>                    <string>/build</string> -                  <string>Debug</string> +                  <string>"/cfg=RelWithDebInfo|Win32"</string>                  </array>                </map>                <key>configure</key> @@ -2589,83 +2171,14 @@                  <array>                    <string>-G</string>                    <string>"Visual Studio 10"</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>arguments</key> -                <array> -                  <string>../indra</string> -                </array> -                <key>options</key> -                <array> -                  <string>-G</string> -                  <string>"Visual Studio 10"</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>arguments</key> -                <array> -                  <string>../indra</string> -                </array> -                <key>options</key> -                <array> -                  <string>-G</string> -                  <string>"Visual Studio 10"</string> -                  <string>-DSTANDALONE:BOOL=TRUE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> -                  <string>-DFMOD=FALSE</string>                  </array>                </map> +              <key>default</key> +              <string>True</string>                <key>name</key> -              <string>OpenSourceStandAloneRelease</string> +              <string>RelWithDebInfo</string>              </map> -            <key>RelWithDebInfo</key> +            <key>RelWithDebInfoOS</key>              <map>                <key>build</key>                <map> @@ -2674,40 +2187,33 @@                    <string>SecondLife.sln</string>                  </array>                  <key>command</key> -                <string>BuildConsole</string> +                <string>msbuild.exe</string>                  <key>options</key>                  <array> -                  <string>/build</string> -                  <string>"/cfg=RelWithDebInfo|Win32"</string> +                  <string>/p:Configuration=RelWithDebInfo</string> +                  <string>/p:Platform=Win32</string> +                  <string>/t:Build</string> +                  <string>/p:useenv=true</string> +                  <string>/verbosity:minimal</string> +                  <string>/toolsversion:4.0</string> +                  <string>/p:"VCBuildAdditionalOptions= /incremental"</string>                  </array>                </map>                <key>configure</key>                <map> -                <key>arguments</key> -                <array> -                  <string>..\indra</string> -                  <string>&&</string> -                  <string>..\indra\tools\vstool\VSTool.exe</string> -                  <string>--solution</string> -                  <string>SecondLife.sln</string> -                  <string>--config</string> -                  <string>RelWithDebInfo</string> -                  <string>--startup</string> -                  <string>secondlife-bin</string> -                </array>                  <key>options</key>                  <array>                    <string>-G</string>                    <string>"Visual Studio 10"</string> -                  <string>-DSTANDALONE:BOOL=OFF</string> +                  <string>-DUNATTENDED:BOOL=ON</string> +                  <string>-DUSE_PRECOMPILED_HEADERS=ON</string>                    <string>-DINSTALL_PROPRIETARY=TRUE</string> -                  <string>-DFMOD=TRUE</string> +                  <string>-DUSE_KDU=FALSE</string> +                  <string>-DFMOD=FALSE</string>                  </array>                </map> -              <key>default</key> -              <string>True</string>                <key>name</key> -              <string>RelWithDebInfo</string> +              <string>RelWithDebInfoOS</string>              </map>              <key>Release</key>              <map> @@ -2744,95 +2250,31 @@                  <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>                <string>Release</string>              </map> -            <!-- OPEN-1 WORKAROUND begin - to be removed when VC express is detected correctly --> -            <key>VCexpressRelWithDebInfo</key> +            <key>ReleaseOS</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 10"</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 --> -            <!-- OPEN-1a WORKAROUND begin - to be removed when VC 2010 is detected correctly --> -           <key>VC10msbuildRelWithDebInfo</key> -            <map> -              <key>build</key> -              <map>                  <key>command</key>                  <string>msbuild.exe</string>                  <key>options</key>                  <array> -                  <string>SecondLife.sln</string> -                  <string>/verbosity:minimal</string> -                  <string>/t:build</string> -                  <string>/p:Configuration=RelWithDebInfo</string> -                  <string>/p:Platform=Win32</string> -                  <string>/p:"VCBuildAdditionalOptions= /useenv"</string> -                  <string>/p:"VCBuildAdditionalOptions= /incremental"</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>VC10msbuildRelWithDebInfo</string> -            </map> -           <!-- OPEN-1a WORKAROUND end --> -            <!-- OPEN-1a Release WORKAROUND begin - to be removed when VC 2010 is detected correctly --> -           <key>VC10msbuildRelease</key> -            <map> -              <key>build</key> -              <map> -                <key>command</key> -                <string>msbuild.exe</string> -                <key>options</key> -                <array> -                  <string>SecondLife.sln</string> -                  <string>/t:build</string>                    <string>/p:Configuration=Release</string>                    <string>/p:Platform=Win32</string> -                  <string>/p:"VCBuildAdditionalOptions= /useenv"</string> +                  <string>/t:Build</string> +                  <string>/p:useenv=true</string> +                  <string>/verbosity:minimal</string> +                  <string>/toolsversion:4.0</string>                    <string>/p:"VCBuildAdditionalOptions= /incremental"</string> -                  </array> +                </array>                </map>                <key>configure</key>                <map> @@ -2840,15 +2282,16 @@                  <array>                    <string>-G</string>                    <string>"Visual Studio 10"</string> -                  <string>-DSTANDALONE:BOOL=FALSE</string> -                  <string>-DINSTALL_PROPRIETARY=FALSE</string> +                  <string>-DUNATTENDED:BOOL=ON</string> +                  <string>-DUSE_PRECOMPILED_HEADERS=ON</string> +                  <string>-DINSTALL_PROPRIETARY=TRUE</string> +                  <string>-DUSE_KDU=FALSE</string>                    <string>-DFMOD=FALSE</string>                  </array>                </map>                <key>name</key> -              <string>VC10msbuildRelease</string> +              <string>ReleaseOS</string>              </map> -           <!-- OPEN-1a WORKAROUND end -->            </map>            <key>name</key>            <string>windows</string> diff --git a/doc/contributions.txt b/doc/contributions.txt index ff982ec61a..2e6b01abc2 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -155,6 +155,8 @@ Angus Boyd  	VWR-592  Ann Congrejo  	CT-193 +Ansariel Hiller +	STORM-1101  Ardy Lay  	VWR-19499  	VWR-24917 @@ -417,6 +419,7 @@ Jonathan Yap  	STORM-1020  	STORM-1064  	STORM-960 +	STORM-1101  	STORM-1108  	STORM-1094  	STORM-1077 @@ -585,7 +588,7 @@ Nicholaz Beresford  	VWR-2684  Nicky Perian  	OPEN-1 -	OPEN-1087 +	STORM-1087  	STORM-1090  Nounouch Hapmouche  	VWR-238 @@ -707,6 +710,7 @@ Shawn Kaufmat  	SNOW-240  Siana Gearz  	STORM-960 +	STORM-1088  SignpostMarv Martin  	VWR-153  	VWR-154 @@ -869,6 +873,7 @@ WolfPup Lowenhar  	STORM-674  	STORM-776  	STORM-825 +	STORM-1098  	VWR-20741  	VWR-20933  Zai Lynch diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 4698116022..1c43c4ce12 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -243,7 +243,7 @@ elseif(LINUX)          libaprutil-1.so.0          libatk-1.0.so          libbreakpad_client.so.0 -        libcrypto.so.0.9.8 +        libcrypto.so.1.0.0          libdb-5.1.so          libexpat.so          libexpat.so.1 @@ -259,7 +259,7 @@ elseif(LINUX)          libtcmalloc.so          libuuid.so.16          libuuid.so.16.0.22 -        libssl.so.0.9.8 +        libssl.so.1.0.0          libfontconfig.so.1.4.4         ) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 77dd34d122..8c9c375790 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -135,6 +135,7 @@ set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for  set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside")  set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.") +set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.")  if (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics)      set(SERVER ON CACHE BOOL "Build Second Life server software.") diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index bd6df962a1..df5afcbf1c 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@  const S32 LL_VERSION_MAJOR = 2;  const S32 LL_VERSION_MINOR = 6; -const S32 LL_VERSION_PATCH = 5; +const S32 LL_VERSION_PATCH = 6;  const S32 LL_VERSION_BUILD = 0;  const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 49537ef78f..82269282ef 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -157,6 +157,7 @@ LLTextBase::Params::Params()  	read_only("read_only", false),  	v_pad("v_pad", 0),  	h_pad("h_pad", 0), +	clip("clip", true),  	clip_partial("clip_partial", true),  	line_spacing("line_spacing"),  	max_text_length("max_length", 255), @@ -199,6 +200,7 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p)  	mVAlign(p.font_valign),  	mLineSpacingMult(p.line_spacing.multiple),  	mLineSpacingPixels(p.line_spacing.pixels), +	mClip(p.clip),  	mClipPartial(p.clip_partial && !p.allow_scroll),  	mTrackEnd( p.track_end ),  	mScrollIndex(-1), @@ -334,7 +336,7 @@ void LLTextBase::drawSelectionBackground()  		// binary search for line that starts before top of visible buffer  		line_list_t::const_iterator line_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mTop, compare_bottom()); -		line_list_t::const_iterator end_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mBottom, compare_top()); +		line_list_t::const_iterator end_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mBottom, compare_top());  		bool done = false; @@ -512,7 +514,6 @@ void LLTextBase::drawText()  		selection_right = llmax( mSelectionStart, mSelectionEnd );  	} -	LLRect scrolled_view_rect = getVisibleDocumentRect();  	std::pair<S32, S32> line_range = getVisibleLines(mClipPartial);  	S32 first_line = line_range.first;  	S32 last_line = line_range.second; @@ -545,10 +546,10 @@ void LLTextBase::drawText()  			line_end = next_start;  		} -		LLRect text_rect(line.mRect.mLeft + mVisibleTextRect.mLeft - scrolled_view_rect.mLeft, -						line.mRect.mTop - scrolled_view_rect.mBottom + mVisibleTextRect.mBottom, -						llmin(mDocumentView->getRect().getWidth(), line.mRect.mRight) - scrolled_view_rect.mLeft, -						line.mRect.mBottom - scrolled_view_rect.mBottom + mVisibleTextRect.mBottom); +		LLRect text_rect(line.mRect); +		text_rect.mRight = llmin(mDocumentView->getRect().getWidth(), text_rect.mRight); // clamp right edge to document extents +		text_rect.translate(mVisibleTextRect.mLeft, mVisibleTextRect.mBottom); // translate into display region of text widget +		text_rect.translate(mDocumentView->getRect().mLeft, mDocumentView->getRect().mBottom); // adjust by scroll position  		// draw a single line of text  		S32 seg_start = line_start; @@ -993,14 +994,28 @@ void LLTextBase::draw()  		updateScrollFromCursor();  	} -	LLRect doc_rect; +	LLRect text_rect;  	if (mScroller)  	{ -		mScroller->localRectToOtherView(mScroller->getContentWindowRect(), &doc_rect, this); +		mScroller->localRectToOtherView(mScroller->getContentWindowRect(), &text_rect, this);  	}  	else  	{ -		doc_rect = getLocalRect(); +		LLRect visible_lines_rect; +		std::pair<S32, S32> line_range = getVisibleLines(mClipPartial); +		for (S32 i = line_range.first; i < line_range.second; i++) +		{ +			if (visible_lines_rect.isEmpty()) +			{ +				visible_lines_rect = mLineInfoList[i].mRect; +			} +			else +			{ +				visible_lines_rect.unionWith(mLineInfoList[i].mRect); +			} +		} +		text_rect = visible_lines_rect; +		text_rect.translate(mDocumentView->getRect().mLeft, mDocumentView->getRect().mBottom);  	}  	if (mBGVisible) @@ -1010,28 +1025,37 @@ void LLTextBase::draw()  		LLRect bg_rect = mVisibleTextRect;  		if (mScroller)  		{ -			bg_rect.intersectWith(doc_rect); +			bg_rect.intersectWith(text_rect);  		}  		LLColor4 bg_color = mReadOnly   							? mReadOnlyBgColor.get()  							: hasFocus()   								? mFocusBgColor.get()   								: mWriteableBgColor.get(); -		gl_rect_2d(doc_rect, bg_color % alpha, TRUE); +		gl_rect_2d(text_rect, bg_color % alpha, TRUE);  	} -	// draw document view -	LLUICtrl::draw(); - -	{ -		// only clip if we support scrolling... -		// since convention is that text boxes never vertically truncate their contents -		// regardless of rect bounds -		LLLocalClipRect clip(doc_rect, mScroller != NULL); + 	bool should_clip = mClip || mScroller != NULL; + 	{ LLLocalClipRect clip(text_rect, should_clip); +  + 		// draw document view + 		if (mScroller) +		{ + 			drawChild(mScroller); + 		} + 		else + 		{ + 			drawChild(mDocumentView); + 		} +   		drawSelectionBackground();  		drawText();  		drawCursor();  	} +  + 	mDocumentView->setVisible(FALSE); + 	LLUICtrl::draw(); + 	mDocumentView->setVisible(TRUE);  } @@ -1415,7 +1439,7 @@ S32	LLTextBase::getFirstVisibleLine() const  	return iter - mLineInfoList.begin();  } -std::pair<S32, S32>	LLTextBase::getVisibleLines(bool fully_visible)  +std::pair<S32, S32>	LLTextBase::getVisibleLines(bool require_fully_visible)   {  	LLRect visible_region = getVisibleDocumentRect();  	line_list_t::const_iterator first_iter; @@ -1424,14 +1448,14 @@ std::pair<S32, S32>	LLTextBase::getVisibleLines(bool fully_visible)  	// make sure we have an up-to-date mLineInfoList  	reflow(); -	if (fully_visible) +	if (require_fully_visible)  	{  		first_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_top()); -		last_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_bottom()); +		last_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_bottom());  	}  	else  	{ -		first_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_bottom()); +		first_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_bottom());  		last_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_top());  	}  	return std::pair<S32, S32>(first_iter - mLineInfoList.begin(), last_iter - mLineInfoList.begin()); @@ -2405,14 +2429,41 @@ LLRect LLTextBase::getVisibleDocumentRect() const  	{  		return mScroller->getVisibleContentRect();  	} -	else +	else if (mClip)  	{ -		// entire document rect is visible when not scrolling +		LLRect visible_text_rect = getVisibleTextRect(); +		LLRect doc_rect = mDocumentView->getRect(); +		visible_text_rect.translate(-doc_rect.mLeft, -doc_rect.mBottom); + +		// reject partially visible lines +		LLRect visible_lines_rect; +		for (line_list_t::const_iterator it = mLineInfoList.begin(), end_it = mLineInfoList.end(); +			it != end_it; +			++it) +		{ +			bool line_visible = mClipPartial ? visible_text_rect.contains(it->mRect) : visible_text_rect.overlaps(it->mRect); +			if (line_visible) +			{ +				if (visible_lines_rect.isEmpty()) +				{ +					visible_lines_rect = it->mRect; +				} +				else +				{ +					visible_lines_rect.unionWith(it->mRect); +				} +			} +		} +		return visible_lines_rect; +	} +	else +	{	// entire document rect is visible  		// but offset according to height of widget +	  		LLRect doc_rect = mDocumentView->getLocalRect();  		doc_rect.mLeft -= mDocumentView->getRect().mLeft;  		// adjust for height of text above widget baseline -		doc_rect.mBottom = doc_rect.getHeight() - mVisibleTextRect.getHeight(); +		doc_rect.mBottom = llmin(0, doc_rect.getHeight() - mVisibleTextRect.getHeight());  		return doc_rect;  	}  } diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index aafcf8ceb0..7d545a1ba6 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -265,6 +265,7 @@ public:  								use_ellipses,  								parse_urls,  								parse_highlights, +								clip,  								clip_partial;  		Optional<S32>			v_pad, @@ -338,7 +339,7 @@ public:  	void					addDocumentChild(LLView* view);  	void					removeDocumentChild(LLView* view);  	const LLView*			getDocumentView() const { return mDocumentView; } -	LLRect					getVisibleTextRect() { return mVisibleTextRect; } +	LLRect					getVisibleTextRect() const { return mVisibleTextRect; }  	LLRect					getTextBoundingRect();  	LLRect					getVisibleDocumentRect() const; @@ -552,6 +553,7 @@ protected:  	bool						mTrackEnd;			// if true, keeps scroll position at end of document during resize  	bool						mReadOnly;  	bool						mBGVisible;			// render background? +	bool						mClip;				// clip text to widget rect  	bool						mClipPartial;		// false if we show lines that are partially inside bounding rect  	bool						mPlainText;			// didn't use Image or Icon segments  	S32							mMaxTextByteLength;	// Maximum length mText is allowed to be in bytes diff --git a/indra/media_plugins/winmmshim/forwarding_api.cpp b/indra/media_plugins/winmmshim/forwarding_api.cpp index eff7e20451..495e08942b 100644 --- a/indra/media_plugins/winmmshim/forwarding_api.cpp +++ b/indra/media_plugins/winmmshim/forwarding_api.cpp @@ -389,90 +389,105 @@ void init_function_pointers(HMODULE winmm_handle)  extern "C" {  	LRESULT   WINAPI CloseDriver( HDRVR hDriver, LPARAM lParam1, LPARAM lParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"CloseDriver\n");  		return CloseDriver_orig( hDriver, lParam1, lParam2);  	}  	HDRVR     WINAPI OpenDriver( LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"OpenDriver\n");  		return OpenDriver_orig( szDriverName, szSectionName, lParam2);  	}  	LRESULT   WINAPI SendDriverMessage( HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"SendDriverMessage\n");  		return SendDriverMessage_orig( hDriver, message, lParam1, lParam2);  	}  	HMODULE   WINAPI DrvGetModuleHandle( HDRVR hDriver)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"DrvGetModuleHandle\n");  		return DrvGetModuleHandle_orig( hDriver);  	}  	HMODULE   WINAPI GetDriverModuleHandle( HDRVR hDriver)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"GetDriverModuleHandle\n");  		return GetDriverModuleHandle_orig( hDriver);  	}  	LRESULT   WINAPI DefDriverProc( DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"DefDriverProc\n");  		return DefDriverProc_orig( dwDriverIdentifier, hdrvr, uMsg, lParam1, lParam2);  	}  	BOOL WINAPI DriverCallback( DWORD dwCallBack, DWORD dwFlags, HDRVR hdrvr, DWORD msg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"DriverCallback\n");  		return DriverCallback_orig(dwCallBack, dwFlags, hdrvr, msg, dwUser, dwParam1, dwParam2);  	}  	UINT WINAPI mmsystemGetVersion(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmsystemGetVersion\n");  		return mmsystemGetVersion_orig();  	}  	BOOL WINAPI sndPlaySoundA( LPCSTR pszSound, UINT fuSound)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"sndPlaySoundA\n");  		return sndPlaySoundA_orig( pszSound, fuSound);  	}  	BOOL WINAPI sndPlaySoundW( LPCWSTR pszSound, UINT fuSound)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"sndPlaySoundW\n");  		return sndPlaySoundW_orig( pszSound, fuSound);  	}  	BOOL WINAPI PlaySoundA( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"PlaySoundA\n");  		return PlaySoundA_orig( pszSound, hmod, fdwSound);  	}  	BOOL WINAPI PlaySoundW( LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"PlaySoundW\n");  		return PlaySoundW_orig( pszSound, hmod, fdwSound);  	}  	UINT WINAPI waveOutGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetNumDevs\n");  		return waveOutGetNumDevs_orig();  	}  	MMRESULT WINAPI waveOutGetDevCapsA( UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetDevCapsA\n");  		return waveOutGetDevCapsA_orig( uDeviceID, pwoc, cbwoc);  	}  	MMRESULT WINAPI waveOutGetDevCapsW( UINT_PTR uDeviceID, LPWAVEOUTCAPSW pwoc, UINT cbwoc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetDevCapsW\n");  		return waveOutGetDevCapsW_orig( uDeviceID, pwoc, cbwoc);  	} @@ -480,24 +495,28 @@ extern "C" {  	MMRESULT WINAPI waveOutGetVolume( HWAVEOUT hwo, LPDWORD pdwVolume)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetVolume\n");  		return waveOutGetVolume_orig( hwo, pdwVolume);  	}  	MMRESULT WINAPI waveOutSetVolume( HWAVEOUT hwo, DWORD dwVolume)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutSetVolume\n");  		return waveOutSetVolume_orig( hwo, dwVolume);  	}  	MMRESULT WINAPI waveOutGetErrorTextA( MMRESULT mmrError, LPSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetErrorTextA\n");  		return waveOutGetErrorTextA_orig( mmrError, pszText, cchText);  	}  	MMRESULT WINAPI waveOutGetErrorTextW( MMRESULT mmrError, LPWSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetErrorTextW\n");  		return waveOutGetErrorTextW_orig( mmrError, pszText, cchText);  	} @@ -516,12 +535,14 @@ extern "C" {  	MMRESULT WINAPI waveOutPrepareHeader( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutPrepareHeader\n");  		return waveOutPrepareHeader_orig( hwo, pwh, cbwh);  	}  	MMRESULT WINAPI waveOutUnprepareHeader( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutUnprepareHeader\n");  		return waveOutUnprepareHeader_orig( hwo, pwh, cbwh);  	} @@ -535,834 +556,973 @@ extern "C" {  	MMRESULT WINAPI waveOutPause( HWAVEOUT hwo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutPause\n");  		return waveOutPause_orig( hwo);  	}  	MMRESULT WINAPI waveOutRestart( HWAVEOUT hwo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutRestart\n");  		return waveOutRestart_orig( hwo);  	}  	MMRESULT WINAPI waveOutReset( HWAVEOUT hwo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutReset\n");  		return waveOutReset_orig( hwo);  	}  	MMRESULT WINAPI waveOutBreakLoop( HWAVEOUT hwo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutBreakLoop\n");  		return waveOutBreakLoop_orig( hwo);  	}  	MMRESULT WINAPI waveOutGetPosition( HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetPosition\n");  		return waveOutGetPosition_orig( hwo, pmmt, cbmmt);  	}  	MMRESULT WINAPI waveOutGetPitch( HWAVEOUT hwo, LPDWORD pdwPitch)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetPitch\n");  		return waveOutGetPitch_orig( hwo, pdwPitch);  	}  	MMRESULT WINAPI waveOutSetPitch( HWAVEOUT hwo, DWORD dwPitch)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutSetPitch\n");  		return waveOutSetPitch_orig( hwo, dwPitch);  	}  	MMRESULT WINAPI waveOutGetPlaybackRate( HWAVEOUT hwo, LPDWORD pdwRate)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetPlaybackRate\n");  		return waveOutGetPlaybackRate_orig( hwo, pdwRate);  	}  	MMRESULT WINAPI waveOutSetPlaybackRate( HWAVEOUT hwo, DWORD dwRate)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutSetPlaybackRate\n");  		return waveOutSetPlaybackRate_orig( hwo, dwRate);  	}  	MMRESULT WINAPI waveOutGetID( HWAVEOUT hwo, LPUINT puDeviceID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutGetID\n");  		return waveOutGetID_orig( hwo, puDeviceID);  	}  	MMRESULT WINAPI waveOutMessage( HWAVEOUT hwo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveOutMessage\n");  		return waveOutMessage_orig( hwo, uMsg, dw1, dw2);  	}  	UINT WINAPI waveInGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetNumDevs\n");  		return waveInGetNumDevs_orig();  	}  	MMRESULT WINAPI waveInGetDevCapsA( UINT_PTR uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetDevCapsA\n");  		return waveInGetDevCapsA_orig( uDeviceID, pwic, cbwic);  	}  	MMRESULT WINAPI waveInGetDevCapsW( UINT_PTR uDeviceID, LPWAVEINCAPSW pwic, UINT cbwic)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetDevCapsW\n");  		return waveInGetDevCapsW_orig( uDeviceID, pwic, cbwic);  	}  	MMRESULT WINAPI waveInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetErrorTextA\n");  		return waveInGetErrorTextA_orig(mmrError, pszText, cchText);  	}  	MMRESULT WINAPI waveInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetErrorTextW\n");  		return waveInGetErrorTextW_orig(mmrError, pszText, cchText);  	}  	MMRESULT WINAPI waveInOpen( LPHWAVEIN phwi, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInOpen\n");  		return waveInOpen_orig(phwi, uDeviceID, pwfx, dwCallback, dwInstance, fdwOpen);  	}  	MMRESULT WINAPI waveInClose( HWAVEIN hwi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInClose\n");  		return waveInClose_orig( hwi);  	}  	MMRESULT WINAPI waveInPrepareHeader( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInPrepareHeader\n");  		return waveInPrepareHeader_orig( hwi, pwh, cbwh);  	}  	MMRESULT WINAPI waveInUnprepareHeader( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInUnprepareHeader\n");  		return waveInUnprepareHeader_orig( hwi, pwh, cbwh);  	}  	MMRESULT WINAPI waveInAddBuffer( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInAddBuffer\n");  		return waveInAddBuffer_orig( hwi, pwh, cbwh);  	}  	MMRESULT WINAPI waveInStart( HWAVEIN hwi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInStart\n");  		return waveInStart_orig( hwi);  	}  	MMRESULT WINAPI waveInStop( HWAVEIN hwi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInStop\n");  		return waveInStop_orig(hwi);  	}  	MMRESULT WINAPI waveInReset( HWAVEIN hwi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInReset\n");  		return waveInReset_orig(hwi);  	}  	MMRESULT WINAPI waveInGetPosition( HWAVEIN hwi, LPMMTIME pmmt, UINT cbmmt)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetPosition\n");  		return waveInGetPosition_orig( hwi, pmmt, cbmmt);  	}  	MMRESULT WINAPI waveInGetID( HWAVEIN hwi, LPUINT puDeviceID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInGetID\n");  		return waveInGetID_orig( hwi, puDeviceID);  	}  	MMRESULT WINAPI waveInMessage( HWAVEIN hwi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"waveInMessage\n");  		return waveInMessage_orig( hwi, uMsg, dw1, dw2);  	}  	UINT WINAPI midiOutGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetNumDevs\n");  		return midiOutGetNumDevs_orig();  	}  	MMRESULT WINAPI midiStreamOpen( LPHMIDISTRM phms, LPUINT puDeviceID, DWORD cMidi, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamOpen\n");  		return midiStreamOpen_orig( phms, puDeviceID, cMidi, dwCallback, dwInstance, fdwOpen);  	}  	MMRESULT WINAPI midiStreamClose( HMIDISTRM hms)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamClose\n");  		return midiStreamClose_orig( hms);  	}  	MMRESULT WINAPI midiStreamProperty( HMIDISTRM hms, LPBYTE lppropdata, DWORD dwProperty)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamProperty\n");  		return midiStreamProperty_orig( hms, lppropdata, dwProperty);  	}  	MMRESULT WINAPI midiStreamPosition( HMIDISTRM hms, LPMMTIME lpmmt, UINT cbmmt)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamPosition\n");  		return midiStreamPosition_orig( hms, lpmmt, cbmmt);  	}  	MMRESULT WINAPI midiStreamOut( HMIDISTRM hms, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamOut\n");  		return midiStreamOut_orig( hms, pmh, cbmh);  	}  	MMRESULT WINAPI midiStreamPause( HMIDISTRM hms)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamPause\n");  		return midiStreamPause_orig( hms);  	}  	MMRESULT WINAPI midiStreamRestart( HMIDISTRM hms)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamRestart\n");  		return midiStreamRestart_orig( hms);  	}  	MMRESULT WINAPI midiStreamStop( HMIDISTRM hms)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiStreamStop\n");  		return midiStreamStop_orig( hms);  	}  	MMRESULT WINAPI midiConnect( HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiConnect\n");  		return midiConnect_orig( hmi, hmo, pReserved);  	}  	MMRESULT WINAPI midiDisconnect( HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiDisconnect\n");  		return midiDisconnect_orig( hmi, hmo, pReserved);  	}  	MMRESULT WINAPI midiOutGetDevCapsA( UINT_PTR uDeviceID, LPMIDIOUTCAPSA pmoc, UINT cbmoc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetDevCapsA\n");  		return midiOutGetDevCapsA_orig( uDeviceID, pmoc, cbmoc);  	}  	MMRESULT WINAPI midiOutGetDevCapsW( UINT_PTR uDeviceID, LPMIDIOUTCAPSW pmoc, UINT cbmoc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetDevCapsW\n");  		return midiOutGetDevCapsW_orig( uDeviceID, pmoc, cbmoc);  	}  	MMRESULT WINAPI midiOutGetVolume( HMIDIOUT hmo, LPDWORD pdwVolume)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetVolume\n");  		return midiOutGetVolume_orig( hmo, pdwVolume);  	}  	MMRESULT WINAPI midiOutSetVolume( HMIDIOUT hmo, DWORD dwVolume)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutSetVolume\n");  		return midiOutSetVolume_orig( hmo, dwVolume);  	}  	MMRESULT WINAPI midiOutGetErrorTextA( MMRESULT mmrError, LPSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetErrorTextA\n");  		return midiOutGetErrorTextA_orig( mmrError, pszText, cchText);  	}  	MMRESULT WINAPI midiOutGetErrorTextW( MMRESULT mmrError, LPWSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetErrorTextW\n");  		return midiOutGetErrorTextW_orig( mmrError, pszText, cchText);  	}  	MMRESULT WINAPI midiOutOpen( LPHMIDIOUT phmo, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutOpen\n");  		return midiOutOpen_orig(phmo, uDeviceID, dwCallback, dwInstance, fdwOpen);  	}  	MMRESULT WINAPI midiOutClose( HMIDIOUT hmo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutClose\n");  		return midiOutClose_orig( hmo);  	}  	MMRESULT WINAPI midiOutPrepareHeader( HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutPrepareHeader\n");  		return midiOutPrepareHeader_orig( hmo, pmh, cbmh);  	}  	MMRESULT WINAPI midiOutUnprepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutUnprepareHeader\n");  		return midiOutUnprepareHeader_orig(hmo, pmh, cbmh);  	}  	MMRESULT WINAPI midiOutShortMsg( HMIDIOUT hmo, DWORD dwMsg)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutShortMsg\n");  		return midiOutShortMsg_orig( hmo, dwMsg);  	}  	MMRESULT WINAPI midiOutLongMsg(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutLongMsg\n");  		return midiOutLongMsg_orig(hmo, pmh, cbmh);  	}  	MMRESULT WINAPI midiOutReset( HMIDIOUT hmo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutReset\n");  		return midiOutReset_orig( hmo);  	}  	MMRESULT WINAPI midiOutCachePatches( HMIDIOUT hmo, UINT uBank, LPWORD pwpa, UINT fuCache)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutCachePatches\n");  		return midiOutCachePatches_orig( hmo, uBank, pwpa, fuCache);  	}  	MMRESULT WINAPI midiOutCacheDrumPatches( HMIDIOUT hmo, UINT uPatch, LPWORD pwkya, UINT fuCache)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutCacheDrumPatches\n");  		return midiOutCacheDrumPatches_orig( hmo, uPatch, pwkya, fuCache);  	}  	MMRESULT WINAPI midiOutGetID( HMIDIOUT hmo, LPUINT puDeviceID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutGetID\n");  		return midiOutGetID_orig( hmo, puDeviceID);  	}  	MMRESULT WINAPI midiOutMessage( HMIDIOUT hmo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiOutMessage\n");  		return midiOutMessage_orig( hmo, uMsg, dw1, dw2);  	}  	UINT WINAPI midiInGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInGetNumDevs\n");  		return midiInGetNumDevs_orig();  	}  	MMRESULT WINAPI midiInGetDevCapsA( UINT_PTR uDeviceID, LPMIDIINCAPSA pmic, UINT cbmic)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInGetDevCapsA\n");  		return midiInGetDevCapsA_orig( uDeviceID, pmic, cbmic);  	}  	MMRESULT WINAPI midiInGetDevCapsW( UINT_PTR uDeviceID, LPMIDIINCAPSW pmic, UINT cbmic)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInGetDevCapsW\n");  		return midiInGetDevCapsW_orig( uDeviceID, pmic, cbmic);  	}  	MMRESULT WINAPI midiInGetErrorTextA( MMRESULT mmrError, LPSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInGetErrorTextA\n");  		return midiInGetErrorTextA_orig( mmrError, pszText, cchText);  	}  	MMRESULT WINAPI midiInGetErrorTextW( MMRESULT mmrError, LPWSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInGetErrorTextW\n");  		return midiInGetErrorTextW_orig( mmrError, pszText, cchText);  	}  	MMRESULT WINAPI midiInOpen( LPHMIDIIN phmi, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInOpen\n");  		return midiInOpen_orig(phmi, uDeviceID, dwCallback, dwInstance, fdwOpen);  	}  	MMRESULT WINAPI midiInClose( HMIDIIN hmi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInClose\n");  		return midiInClose_orig( hmi);  	}  	MMRESULT WINAPI midiInPrepareHeader( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInPrepareHeader\n");  		return midiInPrepareHeader_orig( hmi, pmh, cbmh);  	}  	MMRESULT WINAPI midiInUnprepareHeader( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInUnprepareHeader\n");  		return midiInUnprepareHeader_orig( hmi, pmh, cbmh);  	}  	MMRESULT WINAPI midiInAddBuffer( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInAddBuffer\n");  		return midiInAddBuffer_orig( hmi, pmh, cbmh);  	}  	MMRESULT WINAPI midiInStart( HMIDIIN hmi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInStart\n");  		return midiInStart_orig( hmi);  	}  	MMRESULT WINAPI midiInStop( HMIDIIN hmi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInStop\n");  		return midiInStop_orig(hmi);  	}  	MMRESULT WINAPI midiInReset( HMIDIIN hmi)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInReset\n");  		return midiInReset_orig( hmi);  	}  	MMRESULT WINAPI midiInGetID( HMIDIIN hmi, LPUINT puDeviceID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInGetID\n");  		return midiInGetID_orig( hmi, puDeviceID);  	}  	MMRESULT WINAPI midiInMessage( HMIDIIN hmi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"midiInMessage\n");  		return midiInMessage_orig( hmi, uMsg, dw1, dw2);  	}  	UINT WINAPI auxGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"auxGetNumDevs\n");  		return auxGetNumDevs_orig();  	}  	MMRESULT WINAPI auxGetDevCapsA( UINT_PTR uDeviceID, LPAUXCAPSA pac, UINT cbac)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"auxGetDevCapsA\n");  		return auxGetDevCapsA_orig( uDeviceID, pac, cbac);  	}  	MMRESULT WINAPI auxGetDevCapsW( UINT_PTR uDeviceID, LPAUXCAPSW pac, UINT cbac)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"auxGetDevCapsW\n");  		return auxGetDevCapsW_orig( uDeviceID, pac, cbac);  	}  	MMRESULT WINAPI auxSetVolume( UINT uDeviceID, DWORD dwVolume)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"auxSetVolume\n");  		return auxSetVolume_orig( uDeviceID, dwVolume);  	}  	MMRESULT WINAPI auxGetVolume( UINT uDeviceID, LPDWORD pdwVolume)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"auxGetVolume\n");  		return auxGetVolume_orig( uDeviceID, pdwVolume);  	}  	MMRESULT WINAPI auxOutMessage( UINT uDeviceID, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"auxOutMessage\n");  		return auxOutMessage_orig( uDeviceID, uMsg, dw1, dw2);  	}  	UINT WINAPI mixerGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetNumDevs\n");  		return mixerGetNumDevs_orig();  	}  	MMRESULT WINAPI mixerGetDevCapsA( UINT_PTR uMxId, LPMIXERCAPSA pmxcaps, UINT cbmxcaps)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetDevCapsA\n");  		return mixerGetDevCapsA_orig( uMxId, pmxcaps, cbmxcaps);  	}  	MMRESULT WINAPI mixerGetDevCapsW( UINT_PTR uMxId, LPMIXERCAPSW pmxcaps, UINT cbmxcaps)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetDevCapsW\n");  		return mixerGetDevCapsW_orig( uMxId, pmxcaps, cbmxcaps);  	}  	MMRESULT WINAPI mixerOpen( LPHMIXER phmx, UINT uMxId, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerOpen\n");  		return mixerOpen_orig( phmx, uMxId, dwCallback, dwInstance, fdwOpen);  	}  	MMRESULT WINAPI mixerClose( HMIXER hmx)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerClose\n");  		return mixerClose_orig( hmx);  	}  	DWORD WINAPI mixerMessage( HMIXER hmx, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerMessage\n");  		return mixerMessage_orig( hmx, uMsg, dwParam1, dwParam2);  	}  	MMRESULT WINAPI mixerGetLineInfoA( HMIXEROBJ hmxobj, LPMIXERLINEA pmxl, DWORD fdwInfo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetLineInfoA\n");  		return mixerGetLineInfoA_orig( hmxobj, pmxl, fdwInfo);  	}  	MMRESULT WINAPI mixerGetLineInfoW( HMIXEROBJ hmxobj, LPMIXERLINEW pmxl, DWORD fdwInfo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetLineInfoW\n");  		return mixerGetLineInfoW_orig( hmxobj, pmxl, fdwInfo);  	}  	MMRESULT WINAPI mixerGetID( HMIXEROBJ hmxobj, UINT FAR *puMxId, DWORD fdwId)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetID\n");  		return mixerGetID_orig( hmxobj, puMxId, fdwId);  	}  	MMRESULT WINAPI mixerGetLineControlsA( HMIXEROBJ hmxobj, LPMIXERLINECONTROLSA pmxlc, DWORD fdwControls)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetLineControlsA\n");  		return mixerGetLineControlsA_orig( hmxobj, pmxlc, fdwControls);  	}  	MMRESULT WINAPI mixerGetLineControlsW( HMIXEROBJ hmxobj, LPMIXERLINECONTROLSW pmxlc, DWORD fdwControls)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetLineControlsW\n");  		return mixerGetLineControlsW_orig( hmxobj, pmxlc, fdwControls);  	}  	MMRESULT WINAPI mixerGetControlDetailsA( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetControlDetailsA\n");  		return mixerGetControlDetailsA_orig( hmxobj, pmxcd, fdwDetails);  	}  	MMRESULT WINAPI mixerGetControlDetailsW( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerGetControlDetailsW\n");  		return mixerGetControlDetailsW_orig( hmxobj, pmxcd, fdwDetails);  	}  	MMRESULT WINAPI mixerSetControlDetails( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mixerSetControlDetails\n");  		return mixerSetControlDetails_orig( hmxobj, pmxcd, fdwDetails);  	}  	DWORD    WINAPI mmGetCurrentTask(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmGetCurrentTask\n");  		return mmGetCurrentTask_orig();  	}  	void WINAPI mmTaskBlock(DWORD val)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmTaskBlock\n");  		return mmTaskBlock_orig(val);  	}  	UINT WINAPI mmTaskCreate(LPTASKCALLBACK a, HANDLE* b, DWORD_PTR c)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmTaskCreate\n");  		return mmTaskCreate_orig(a, b, c);  	}  	BOOL WINAPI mmTaskSignal(DWORD a)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmTaskSignal\n");  		return mmTaskSignal_orig(a);  	}  	VOID WINAPI mmTaskYield()  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmTaskYield\n");  		mmTaskYield_orig();  	}  	MMRESULT WINAPI timeGetSystemTime( LPMMTIME pmmt, UINT cbmmt)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeGetSystemTime\n");  		return timeGetSystemTime_orig( pmmt, cbmmt);  	}  	DWORD WINAPI timeGetTime(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeGetTime\n");  		return timeGetTime_orig();  	}  	MMRESULT WINAPI timeSetEvent( UINT uDelay, UINT uResolution, LPTIMECALLBACK fptc, DWORD_PTR dwUser, UINT fuEvent)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeSetEvent\n");  		return timeSetEvent_orig(uDelay, uResolution, fptc, dwUser, fuEvent);  	}  	MMRESULT WINAPI timeKillEvent( UINT uTimerID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeKillEvent\n");  		return timeKillEvent_orig( uTimerID);  	}  	MMRESULT WINAPI timeGetDevCaps( LPTIMECAPS ptc, UINT cbtc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeGetDevCaps\n");  		return timeGetDevCaps_orig( ptc, cbtc);  	}  	MMRESULT WINAPI timeBeginPeriod( UINT uPeriod)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeBeginPeriod\n");  		return timeBeginPeriod_orig( uPeriod);  	}  	MMRESULT WINAPI timeEndPeriod( UINT uPeriod)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"timeEndPeriod\n");  		return timeEndPeriod_orig( uPeriod);  	}  	UINT WINAPI joyGetNumDevs(void)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyGetNumDevs\n");  		return joyGetNumDevs_orig();  	}  	MMRESULT WINAPI joyConfigChanged(DWORD dwFlags)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyConfigChanged\n");  		return joyConfigChanged_orig(dwFlags);  	}  	MMRESULT WINAPI joyGetDevCapsA( UINT_PTR uJoyID, LPJOYCAPSA pjc, UINT cbjc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyGetDevCapsA\n");  		return joyGetDevCapsA_orig( uJoyID, pjc, cbjc);  	}  	MMRESULT WINAPI joyGetDevCapsW( UINT_PTR uJoyID, LPJOYCAPSW pjc, UINT cbjc)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyGetDevCapsW\n");  		return joyGetDevCapsW_orig( uJoyID, pjc, cbjc);  	}  	MMRESULT WINAPI joyGetPos( UINT uJoyID, LPJOYINFO pji)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyGetPos\n");  		return joyGetPos_orig( uJoyID, pji);  	}  	MMRESULT WINAPI joyGetPosEx( UINT uJoyID, LPJOYINFOEX pji)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyGetPosEx\n");  		return joyGetPosEx_orig( uJoyID, pji);  	}  	MMRESULT WINAPI joyGetThreshold( UINT uJoyID, LPUINT puThreshold)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyGetThreshold\n");  		return joyGetThreshold_orig( uJoyID, puThreshold);  	}  	MMRESULT WINAPI joyReleaseCapture( UINT uJoyID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joyReleaseCapture\n");  		return joyReleaseCapture_orig( uJoyID);  	}  	MMRESULT WINAPI joySetCapture( HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joySetCapture\n");  		return joySetCapture_orig(hwnd, uJoyID, uPeriod, fChanged);  	}  	MMRESULT WINAPI joySetThreshold( UINT uJoyID, UINT uThreshold)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"joySetThreshold\n");  		return joySetThreshold_orig( uJoyID, uThreshold);  	}  	BOOL WINAPI  mciDriverNotify(HWND hwndCallback, UINT uDeviceID, UINT uStatus)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciDriverNotify\n");  		return mciDriverNotify_orig(hwndCallback, uDeviceID, uStatus);  	}  	UINT WINAPI  mciDriverYield(UINT uDeviceID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciDriverYield\n");  		return mciDriverYield_orig(uDeviceID);  	}	  	FOURCC WINAPI mmioStringToFOURCCA( LPCSTR sz, UINT uFlags)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioStringToFOURCCA\n");  		return mmioStringToFOURCCA_orig( sz, uFlags);  	}  	FOURCC WINAPI mmioStringToFOURCCW( LPCWSTR sz, UINT uFlags)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioStringToFOURCCW\n");  		return mmioStringToFOURCCW_orig( sz, uFlags);  	}  	LPMMIOPROC WINAPI mmioInstallIOProcA( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioInstallIOProcA\n");  		return mmioInstallIOProcA_orig( fccIOProc, pIOProc, dwFlags);  	}  	LPMMIOPROC WINAPI mmioInstallIOProcW( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioInstallIOProcW\n");  		return mmioInstallIOProcW_orig( fccIOProc, pIOProc, dwFlags);  	}  	HMMIO WINAPI mmioOpenA( LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioOpenA\n");  		return mmioOpenA_orig( pszFileName, pmmioinfo, fdwOpen);  	}  	HMMIO WINAPI mmioOpenW( LPWSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioOpenW\n");  		return mmioOpenW_orig( pszFileName, pmmioinfo, fdwOpen);  	}  	MMRESULT WINAPI mmioRenameA( LPCSTR pszFileName, LPCSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioRenameA\n");  		return mmioRenameA_orig( pszFileName, pszNewFileName, pmmioinfo, fdwRename);  	}  	MMRESULT WINAPI mmioRenameW( LPCWSTR pszFileName, LPCWSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioRenameW\n");  		return mmioRenameW_orig( pszFileName, pszNewFileName, pmmioinfo, fdwRename);  	}  	MMRESULT WINAPI mmioClose( HMMIO hmmio, UINT fuClose)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioClose\n");  		return mmioClose_orig( hmmio, fuClose);  	}  	LONG WINAPI mmioRead( HMMIO hmmio, HPSTR pch, LONG cch)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioRead\n");  		return mmioRead_orig( hmmio, pch, cch);  	}  	LONG WINAPI mmioWrite( HMMIO hmmio, const char _huge* pch, LONG cch)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioWrite\n");  		return mmioWrite_orig( hmmio, pch, cch);  	}  	LONG WINAPI mmioSeek( HMMIO hmmio, LONG lOffset, int iOrigin)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioSeek\n");  		return mmioSeek_orig(hmmio, lOffset, iOrigin);  	}  	MMRESULT WINAPI mmioGetInfo( HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuInfo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioGetInfo\n");  		return mmioGetInfo_orig( hmmio, pmmioinfo, fuInfo);  	}  	MMRESULT WINAPI mmioSetInfo( HMMIO hmmio, LPCMMIOINFO pmmioinfo, UINT fuInfo)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioSetInfo\n");  		return mmioSetInfo_orig( hmmio, pmmioinfo, fuInfo);  	}  	MMRESULT WINAPI mmioSetBuffer( HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer, UINT fuBuffer)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioSetBuffer\n");  		return mmioSetBuffer_orig(hmmio, pchBuffer, cchBuffer, fuBuffer);  	}  	MMRESULT WINAPI mmioFlush( HMMIO hmmio, UINT fuFlush)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioFlush\n");  		return mmioFlush_orig( hmmio, fuFlush);  	}  	MMRESULT WINAPI mmioAdvance( HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuAdvance)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioAdvance\n");  		return mmioAdvance_orig( hmmio, pmmioinfo, fuAdvance);  	}  	LRESULT WINAPI mmioSendMessage( HMMIO hmmio, UINT uMsg, LPARAM lParam1, LPARAM lParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioSendMessage\n");  		return mmioSendMessage_orig(hmmio, uMsg, lParam1, lParam2);  	}  	MMRESULT WINAPI mmioDescend( HMMIO hmmio, LPMMCKINFO pmmcki, const MMCKINFO FAR* pmmckiParent, UINT fuDescend)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioDescend\n");  		return mmioDescend_orig(hmmio, pmmcki, pmmckiParent, fuDescend);  	}  	MMRESULT WINAPI mmioAscend( HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioAscend\n");  		return mmioAscend_orig( hmmio, pmmcki, fuAscend);  	}  	MMRESULT WINAPI mmioCreateChunk(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuCreate)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mmioCreateChunk\n");  		return mmioCreateChunk_orig(hmmio, pmmcki, fuCreate);  	}  	MCIERROR WINAPI mciSendCommandA( MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciSendCommandA\n");  		return mciSendCommandA_orig( mciId, uMsg, dwParam1, dwParam2);  	}  	MCIERROR WINAPI mciSendCommandW( MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciSendCommandW\n");  		return mciSendCommandW_orig( mciId, uMsg, dwParam1, dwParam2);  	}  	MCIERROR  WINAPI mciSendStringA( LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciSendStringA\n");  		return mciSendStringA_orig( lpstrCommand, lpstrReturnString, uReturnLength, hwndCallback);  	}  	MCIERROR  WINAPI mciSendStringW( LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciSendStringW\n");  		return mciSendStringW_orig( lpstrCommand, lpstrReturnString, uReturnLength, hwndCallback);  	} @@ -1375,72 +1535,84 @@ extern "C" {  	MCIDEVICEID WINAPI mciGetDeviceIDW( LPCWSTR pszDevice)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetDeviceIDW\n");  		return mciGetDeviceIDW_orig( pszDevice);  	}  	MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDA( DWORD dwElementID, LPCSTR lpstrType )  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetDeviceIDFromElementIDA\n");  		return mciGetDeviceIDFromElementIDA_orig( dwElementID, lpstrType );  	}  	MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDW( DWORD dwElementID, LPCWSTR lpstrType )  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetDeviceIDFromElementIDW\n");  		return mciGetDeviceIDFromElementIDW_orig( dwElementID, lpstrType );  	}  	DWORD_PTR WINAPI  mciGetDriverData(UINT uDeviceID)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetDriverData\n");  		return mciGetDriverData_orig(uDeviceID);  	}  	BOOL WINAPI mciGetErrorStringA( MCIERROR mcierr, LPSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetErrorStringA\n");  		return mciGetErrorStringA_orig( mcierr, pszText, cchText);  	}  	BOOL WINAPI mciGetErrorStringW( MCIERROR mcierr, LPWSTR pszText, UINT cchText)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetErrorStringW\n");  		return mciGetErrorStringW_orig( mcierr, pszText, cchText);  	}  	BOOL WINAPI  mciSetDriverData(UINT uDeviceID, DWORD_PTR dwData)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciSetDriverData_type\n");  		return mciSetDriverData_orig( uDeviceID, dwData );  	}  	BOOL WINAPI mciSetYieldProc( MCIDEVICEID mciId, YIELDPROC fpYieldProc, DWORD dwYieldData)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciSetYieldProc\n");  		return mciSetYieldProc_orig(mciId, fpYieldProc, dwYieldData);  	}  	BOOL WINAPI  mciFreeCommandResource(UINT uTable)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciFreeCommandResource\n");  		return mciFreeCommandResource_orig(uTable);  	}  	HTASK WINAPI mciGetCreatorTask( MCIDEVICEID mciId)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetCreatorTask\n");  		return mciGetCreatorTask_orig( mciId);  	}  	YIELDPROC WINAPI mciGetYieldProc( MCIDEVICEID mciId, LPDWORD pdwYieldData)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciGetYieldProc\n");  		return mciGetYieldProc_orig( mciId, pdwYieldData);  	}  	UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciLoadCommandResource");  		return mciLoadCommandResource_orig(hInstance, lpResName, uType);  	} @@ -1448,6 +1620,7 @@ extern "C" {  	BOOL WINAPI mciExecute(LPCSTR pszCommand)  	{ +		ll_winmm_shim_initialize();  		//OutputDebugString(L"mciExecute\n");  		return mciExecute_orig(pszCommand);  	} diff --git a/indra/media_plugins/winmmshim/forwarding_api.h b/indra/media_plugins/winmmshim/forwarding_api.h index 89a6b347f3..076a08f769 100644 --- a/indra/media_plugins/winmmshim/forwarding_api.h +++ b/indra/media_plugins/winmmshim/forwarding_api.h @@ -30,6 +30,7 @@  #include <mmsystem.h>  void init_function_pointers(HMODULE winmm_handle); +void ll_winmm_shim_initialize();  typedef VOID (*LPTASKCALLBACK)(DWORD_PTR dwInst); diff --git a/indra/media_plugins/winmmshim/winmm_shim.cpp b/indra/media_plugins/winmmshim/winmm_shim.cpp index 9563a3b664..47a1e5c018 100644 --- a/indra/media_plugins/winmmshim/winmm_shim.cpp +++ b/indra/media_plugins/winmmshim/winmm_shim.cpp @@ -32,14 +32,21 @@ using std::wstring;  static float sVolumeLevel = 1.f;  static bool sMute = false; +static CRITICAL_SECTION sCriticalSection;  BOOL APIENTRY DllMain( HMODULE hModule,                         DWORD  ul_reason_for_call,                         LPVOID lpReserved  					 )  { +	InitializeCriticalSection(&sCriticalSection); +	return TRUE; +} + +void ll_winmm_shim_initialize(){  	static bool initialized = false;  	// do this only once +	EnterCriticalSection(&sCriticalSection);  	if (!initialized)  	{	// bind to original winmm.dll  		TCHAR system_path[MAX_PATH]; @@ -54,13 +61,15 @@ BOOL APIENTRY DllMain( HMODULE hModule,  		{	// we have a dll, let's get out pointers!  			initialized = true;  			init_function_pointers(winmm_handle); -			return true; +			::OutputDebugStringA("WINMM_SHIM.DLL: real winmm.dll initialized successfully\n"); +		} +		else +		{ +			// failed to initialize real winmm.dll +			::OutputDebugStringA("WINMM_SHIM.DLL: Failed to initialize real winmm.dll\n");  		} - -		// failed to initialize real winmm.dll -		return false;  	} -	return true; +	LeaveCriticalSection(&sCriticalSection);  } @@ -79,6 +88,7 @@ extern "C"  	MMRESULT WINAPI waveOutOpen( LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)  	{ +		ll_winmm_shim_initialize();  		if (pwfx->wFormatTag != WAVE_FORMAT_PCM  			|| (pwfx->wBitsPerSample != 8 && pwfx->wBitsPerSample != 16))  		{ // uncompressed 8 and 16 bit sound are the only types we support @@ -97,6 +107,7 @@ extern "C"  	MMRESULT WINAPI waveOutClose( HWAVEOUT hwo)  	{ +		ll_winmm_shim_initialize();  		wave_out_map_t::iterator found_it = sWaveOuts.find(hwo);  		if (found_it != sWaveOuts.end())  		{	// forget what we know about this handle @@ -108,6 +119,7 @@ extern "C"  	MMRESULT WINAPI waveOutWrite( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)  	{ +		ll_winmm_shim_initialize();  		MMRESULT result = MMSYSERR_NOERROR;  		if (sMute) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index f920e870d3..d98f0da1c2 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -9557,7 +9557,7 @@      <key>ShowNetStats</key>      <map>        <key>Comment</key> -      <string>Show the Search Bar in the Status Overlay</string> +      <string>Show the Status Indicators for the Viewer and Network Usage in the Status Overlay</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key> diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 85899603ee..ec162e3608 100644 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -4339,8 +4339,8 @@       wearable="shape"       edit_group="driven"       value_default="0" -     value_min="-2" -     value_max="2"> +     value_min="-3" +     value_max="3">        <param_morph />      </param> @@ -4352,8 +4352,8 @@       wearable="shape"       edit_group="driven"       value_default="0" -     value_min="-1" -     value_max="1"> +     value_min="-1.5" +     value_max="1.5">        <param_morph />      </param> @@ -11916,7 +11916,7 @@ render_pass="bump">       edit_group="physics_breasts_updown"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -11971,7 +11971,7 @@ render_pass="bump">       edit_group="physics_breasts_inout"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12058,7 +12058,7 @@ render_pass="bump">       edit_group="physics_belly_updown"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12144,7 +12144,7 @@ render_pass="bump">       edit_group="physics_butt_updown"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12193,7 +12193,7 @@ render_pass="bump">       edit_group="physics_butt_leftright"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12244,7 +12244,7 @@ render_pass="bump">       edit_group="physics_breasts_leftright"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index cbd996f909..061ef7268e 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2467,6 +2467,14 @@ bool LLAppViewer::initConfiguration()  		}  	} +	// If automatic login from command line with --login switch +	// init StartSLURL location. In interactive login, LLPanelLogin +	// will take care of it. +	if ((clp.hasOption("login") || clp.hasOption("autologin")) && !clp.hasOption("url") && !clp.hasOption("slurl")) +	{ +		LLStartUp::setStartSLURL(LLSLURL(gSavedSettings.getString("LoginLocation"))); +	} +  	if (!gSavedSettings.getBOOL("AllowMultipleViewers"))  	{  	    // diff --git a/indra/newview/lldateutil.cpp b/indra/newview/lldateutil.cpp index fcc73a07bc..18ae6107e7 100644 --- a/indra/newview/lldateutil.cpp +++ b/indra/newview/lldateutil.cpp @@ -32,9 +32,9 @@  #include "llui.h"  static S32 DAYS_PER_MONTH_NOLEAP[] = -	{ 31, 28, 21, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; +	{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };  static S32 DAYS_PER_MONTH_LEAP[] = -	{ 31, 29, 21, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; +	{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };  static S32 days_from_month(S32 year, S32 month)  { diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 53835f0166..b1975c7261 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -1059,12 +1059,11 @@ void LLInventoryModel::idleNotifyObservers()  	{  		return;  	} -	notifyObservers(""); +	notifyObservers();  }  // Call this method when it's time to update everyone on a new state. -// The optional argument 'service_name' is used by Agent Inventory Service [DEV-20328] -void LLInventoryModel::notifyObservers(const std::string service_name) +void LLInventoryModel::notifyObservers()  {  	if (mIsNotifyObservers)  	{ @@ -1081,15 +1080,7 @@ void LLInventoryModel::notifyObservers(const std::string service_name)  	{  		LLInventoryObserver* observer = *iter; -		if (service_name.empty()) -		{ -			observer->changed(mModifyMask); -		} -		else -		{ -			observer->mMessageName = service_name; -			observer->changed(mModifyMask); -		} +		observer->changed(mModifyMask);  		// safe way to increment since changed may delete entries! (@!##%@!@&*!)  		iter = mObservers.upper_bound(observer);  @@ -1187,7 +1178,7 @@ void  LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)  	{  		changes |= gInventory.updateItem(*it);  	} -	gInventory.notifyObservers("fetchinventory"); +	gInventory.notifyObservers();  	gViewerWindow->getWindow()->decBusyCount();  } @@ -1196,7 +1187,7 @@ void LLInventoryModel::fetchInventoryResponder::error(U32 status, const std::str  {  	llinfos << "fetchInventory::error "  		<< status << ": " << reason << llendl; -	gInventory.notifyObservers("fetchinventory"); +	gInventory.notifyObservers();  }  bool LLInventoryModel::fetchDescendentsOf(const LLUUID& folder_id) const diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index f6728fd575..15da09990f 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -425,9 +425,8 @@ public:  	// has been indicated.  	void idleNotifyObservers(); -	// Call to explicitly update everyone on a new state.  The optional argument -	// 'service_name' is used by Agent Inventory Service [DEV-20328] -	void notifyObservers(const std::string service_name=""); +	// Call to explicitly update everyone on a new state. +	void notifyObservers();  	// Allows outsiders to tell the inventory if something has  	// been changed 'under the hood', but outside the control of the diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp index e31360fcbc..7b1ff102e7 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.cpp +++ b/indra/newview/llinventorymodelbackgroundfetch.cpp @@ -388,7 +388,7 @@ void LLInventoryModelFetchDescendentsResponder::result(const LLSD& content)                          titem->setParent(lost_uuid);                          titem->updateParentOnServer(FALSE);                          gInventory.updateItem(titem); -                        gInventory.notifyObservers("fetchDescendents"); +                        gInventory.notifyObservers();                      }                  } @@ -464,7 +464,7 @@ void LLInventoryModelFetchDescendentsResponder::result(const LLSD& content)  		fetcher->setAllFoldersFetched();  	} -	gInventory.notifyObservers("fetchDescendents"); +	gInventory.notifyObservers();  }  // If we get back an error (not found, etc...), handle it here. @@ -496,7 +496,7 @@ void LLInventoryModelFetchDescendentsResponder::error(U32 status, const std::str  			fetcher->setAllFoldersFetched();  		}  	} -	gInventory.notifyObservers("fetchDescendents"); +	gInventory.notifyObservers();  }  BOOL LLInventoryModelFetchDescendentsResponder::getIsRecursive(const LLUUID& cat_id) const diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp index 0fd4b2bee5..6bf19e346d 100644 --- a/indra/newview/llinventoryobserver.cpp +++ b/indra/newview/llinventoryobserver.cpp @@ -572,16 +572,7 @@ void LLInventoryAddedObserver::changed(U32 mask)  	// the network, figure out which item was updated.  	LLMessageSystem* msg = gMessageSystem; -	std::string msg_name; -	if (mMessageName.empty()) -	{ -		msg_name = msg->getMessageName(); -	} -	else -	{ -		msg_name = mMessageName; -	} - +	std::string msg_name = msg->getMessageName();  	if (msg_name.empty())  	{  		return; diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h index f2a2049a51..2d9021961e 100644 --- a/indra/newview/llinventoryobserver.h +++ b/indra/newview/llinventoryobserver.h @@ -63,7 +63,6 @@ public:  	LLInventoryObserver();  	virtual ~LLInventoryObserver();  	virtual void changed(U32 mask) = 0; -	std::string mMessageName; // used by Agent Inventory Service only. [DEV-20328]  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp index 968e62a8c3..23fa0cbd9c 100644 --- a/indra/newview/llphysicsmotion.cpp +++ b/indra/newview/llphysicsmotion.cpp @@ -121,7 +121,8 @@ protected:                  return mCharacter->getVisualParamWeight(param_name.c_str());          }          void setParamValue(LLViewerVisualParam *param, -                           const F32 new_value_local); +                           const F32 new_value_local, +						   F32 behavior_maxeffect);          F32 toLocal(const LLVector3 &world);          F32 calculateVelocity_local(const F32 time_delta); @@ -472,9 +473,6 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)          F32 behavior_maxeffect = getParamValue("MaxEffect");          if (physics_test)                  behavior_maxeffect = 1.0f; -        // Maximum effect is [0,1] range. -        const F32 min_val = 0.5f-behavior_maxeffect/2.0; -        const F32 max_val = 0.5f+behavior_maxeffect/2.0;          // mPositon_local should be in normalized 0,1 range already.  Just making sure...          F32 position_current_local = llclamp(mPosition_local, @@ -572,12 +570,12 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)              position_new_local = position_user_local;          // Zero out the velocity if the param is being pushed beyond its limits. -        if ((position_new_local < min_val && velocity_new_local < 0) ||  -            (position_new_local > max_val && velocity_new_local > 0)) +        if ((position_new_local < 0 && velocity_new_local < 0) ||  +            (position_new_local > 1 && velocity_new_local > 0))          {                  velocity_new_local = 0;          } - +	  	// Check for NaN values.  A NaN value is detected if the variables doesn't equal itself.    	// If NaN, then reset everything.  	if ((mPosition_local != mPosition_local) || @@ -595,8 +593,8 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)  	}          const F32 position_new_local_clamped = llclamp(position_new_local, -						       min_val, -						       max_val); +						       0.0f, +						       1.0f);          LLDriverParam *driver_param = dynamic_cast<LLDriverParam *>(mParamDriver);          llassert_always(driver_param); @@ -617,7 +615,7 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)                  {                          LLDrivenEntry &entry = (*iter);                          LLViewerVisualParam *driven_param = entry.mParam; -                        setParamValue(driven_param,position_new_local_clamped); +                        setParamValue(driven_param,position_new_local_clamped, behavior_maxeffect);                  }          } @@ -699,12 +697,19 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)  // Range of new_value_local is assumed to be [0 , 1] normalized.  void LLPhysicsMotion::setParamValue(LLViewerVisualParam *param, -                                    F32 new_value_normalized) +                                    F32 new_value_normalized, +				    F32 behavior_maxeffect)  {          const F32 value_min_local = param->getMinWeight();          const F32 value_max_local = param->getMaxWeight(); +        const F32 min_val = 0.5f-behavior_maxeffect/2.0; +        const F32 max_val = 0.5f+behavior_maxeffect/2.0; -        const F32 new_value_local = value_min_local + (value_max_local-value_min_local) * new_value_normalized; +	// Scale from [0,1] to [min_val,max_val] +	const F32 new_value_rescaled = min_val + (max_val-min_val) * new_value_normalized; +	 +	// Scale from [0,1] to [value_min_local,value_max_local] +        const F32 new_value_local = value_min_local + (value_max_local-value_min_local) * new_value_rescaled;          mCharacter->setVisualParamWeight(param,                                           new_value_local, diff --git a/indra/newview/llsidetraylistener.cpp b/indra/newview/llsidetraylistener.cpp index 6db13e517d..cd6fa28948 100644 --- a/indra/newview/llsidetraylistener.cpp +++ b/indra/newview/llsidetraylistener.cpp @@ -4,8 +4,25 @@   * @date   2011-02-15   * @brief  Implementation for llsidetraylistener.   *  - * $LicenseInfo:firstyear=2011&license=lgpl$ - * Copyright (c) 2011, Linden Research, Inc. + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 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$   */ diff --git a/indra/newview/llsidetraylistener.h b/indra/newview/llsidetraylistener.h index 0dd2067433..51e2137762 100644 --- a/indra/newview/llsidetraylistener.h +++ b/indra/newview/llsidetraylistener.h @@ -4,8 +4,25 @@   * @date   2011-02-15   * @brief     *  - * $LicenseInfo:firstyear=2011&license=lgpl$ - * Copyright (c) 2011, Linden Research, Inc. + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 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$   */ diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 4bc8a7ec54..ca908ef822 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -720,6 +720,8 @@ bool idle_startup()  		timeout_count = 0; +		initialize_edit_menu(); +  		if (show_connect_box)  		{  			// Load all the name information out of the login view @@ -736,8 +738,6 @@ bool idle_startup()  			// Make sure the process dialog doesn't hide things  			gViewerWindow->setShowProgress(FALSE); -			initialize_edit_menu(); -  			// Show the login dialog  			login_show();  			// connect dialog is already shown, so fill in the names diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index e7b5c13860..cb49976e5f 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -310,7 +310,7 @@ void LLIMWellWindow::RowPanel::onChicletSizeChanged(LLChiclet* ctrl, const LLSD&  	S32 new_text_left = mChiclet->getRect().mRight + CHICLET_HPAD;  	LLRect text_rect = text->getRect();   	text_rect.mLeft = new_text_left; -	text->setRect(text_rect); +	text->setShape(text_rect);  }  //--------------------------------------------------------------------------------- diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 8b2f066d41..0f337825e9 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -220,7 +220,6 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal  	}  	static LLUIColor alert_caution_text_color = LLUIColorTable::instance().getColor("AlertCautionTextColor"); -	static LLUIColor alert_text_color = LLUIColorTable::instance().getColor("AlertTextColor");  	if (mCaution)  	{  		LLIconCtrl* icon = LLUICtrlFactory::getInstance()->createFromFile<LLIconCtrl>("alert_icon.xml", this, LLPanel::child_registry_t::instance()); @@ -233,10 +232,6 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal  		msg_x += 32 + HPAD;  		msg_box->setColor( alert_caution_text_color );  	} -	else -	{ -		msg_box->setColor( alert_text_color ); -	}  	LLRect rect;  	rect.setLeftTopAndSize( msg_x, msg_y, text_rect.getWidth(), text_rect.getHeight() ); diff --git a/indra/newview/llwearabletype.cpp b/indra/newview/llwearabletype.cpp index f933be4d8f..9e95604712 100644 --- a/indra/newview/llwearabletype.cpp +++ b/indra/newview/llwearabletype.cpp @@ -144,6 +144,7 @@ BOOL LLWearableType::getDisableCameraSwitch(LLWearableType::EType type)  {  	const LLWearableDictionary *dict = LLWearableDictionary::getInstance();  	const WearableEntry *entry = dict->lookup(type); +	if (!entry) return FALSE;  	return entry->mDisableCameraSwitch;  } @@ -152,6 +153,7 @@ BOOL LLWearableType::getAllowMultiwear(LLWearableType::EType type)  {  	const LLWearableDictionary *dict = LLWearableDictionary::getInstance();  	const WearableEntry *entry = dict->lookup(type); +	if (!entry) return FALSE;  	return entry->mAllowMultiwear;  } diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 75aec21f93..72a4dd7f63 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -115,9 +115,6 @@       name="AlertCautionTextColor"       reference="LtYellow" />      <color -     name="AlertTextColor" -     value="0.58 0.66 0.84 1" /> -    <color       name="AvatarListItemIconDefaultColor"       reference="White" />      <color diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 51610c0ae0..a5115b0faa 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3113,6 +3113,16 @@               function="ToggleControl"               parameter="ImagePipelineUseHTTP" />          </menu_item_check> +        <menu_item_check +         label="HTTP Inventory" +         name="HTTP Inventory"> +            <menu_item_check.on_check +             function="CheckControl" +             parameter="UseHTTPInventory" /> +            <menu_item_check.on_click +             function="ToggleControl" +             parameter="UseHTTPInventory" /> +        </menu_item_check>          <menu_item_call           label="Compress Images"           name="Compress Images"> diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index f0b1973fdf..f671c770ea 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -939,9 +939,9 @@ class Linux_i686Manifest(LinuxManifest):              self.path("libdb-5.1.so")              self.path("libdb-5.so")              self.path("libdb.so") -            self.path("libcrypto.so.0.9.8") +            self.path("libcrypto.so.1.0.0")              self.path("libexpat.so.1.5.2") -            self.path("libssl.so.0.9.8") +            self.path("libssl.so.1.0.0")              self.path("libuuid.so")              self.path("libuuid.so.16")              self.path("libuuid.so.16.0.22") diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp index e9d4d99753..7164934b26 100644 --- a/indra/test_apps/llplugintest/llmediaplugintest.cpp +++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp @@ -4,7 +4,7 @@   *   * $LicenseInfo:firstyear=2008&license=viewerlgpl$   * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. + * Copyright (C) 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 @@ -2233,7 +2233,13 @@ void LLMediaPluginTest::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e  		case MEDIA_EVENT_LINK_HOVERED:  		{  			std::cerr <<  "Media event:  MEDIA_EVENT_LINK_HOVERED, hover text is: " << self->getHoverText() << std::endl; -		}; +		} +		break; + +		default: +		{ +			std::cerr <<  "Media event:  <unknown>, code is: " << int(event) << std::endl; +		}  		break;  	}  }  | 
