From eb910b0bae90c2d6978779acdc113f83468fbf64 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 23 Aug 2014 20:50:56 -0500 Subject: [PATCH 1/7] Use /Zm140 for all windows builds. --- indra/cmake/00-Common.cmake | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index efffa89b0..3e4af159b 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -54,10 +54,8 @@ if (WINDOWS) # Remove default /Zm1000 flag that cmake inserts string (REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - if (MSVC11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm140") - endif (MSVC11) - + # Always use /Zm140 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm140") # Don't build DLLs. set(BUILD_SHARED_LIBS OFF) From 4b205084f83740e9c3a720ffc37a1a7fbf2555b5 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 23 Aug 2014 20:52:01 -0500 Subject: [PATCH 2/7] Fix develop.py 'build' command. --- indra/develop.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/develop.py b/indra/develop.py index 024bd92cb..83c76b10f 100755 --- a/indra/develop.py +++ b/indra/develop.py @@ -169,7 +169,7 @@ class PlatformSetup(object): raise def parse_build_opts(self, arguments): - opts, targets = getopt.getopt(arguments, 'o:', ['option=']) + opts, targets = getopt.getopt(arguments, 'D:o:', ['option=']) build_opts = [] for o, a in opts: if o in ('-o', '--option'): From 5535ba6b47132aa47607b7a7c75bf04f28e301eb Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 30 Aug 2014 16:25:46 -0500 Subject: [PATCH 3/7] Fix issue with paths with spaces, in viewer_manifest.py --- indra/newview/viewer_manifest.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 51d47563e..cbb23b376 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -453,14 +453,14 @@ class WindowsManifest(ViewerManifest): try: import _winreg as reg NSIS_path = reg.QueryValue(reg.HKEY_LOCAL_MACHINE, r"SOFTWARE\NSIS\Unicode") + '\\makensis.exe' - self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) + self.run_command('"' + proper_windows_path(NSIS_path) + '" "' + self.dst_path_of(tempfile) + '"') except: try: NSIS_path = os.environ['ProgramFiles'] + '\\NSIS\\Unicode\\makensis.exe' - self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) + self.run_command('"' + proper_windows_path(NSIS_path) + '" "' + self.dst_path_of(tempfile) + '"') except: NSIS_path = os.environ['ProgramFiles(X86)'] + '\\NSIS\\Unicode\\makensis.exe' - self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) + self.run_command('"' + proper_windows_path(NSIS_path) + '" "' + self.dst_path_of(tempfile) + '"') # self.remove(self.dst_path_of(tempfile)) # If we're on a build machine, sign the code using our Authenticode certificate. JC sign_py = os.path.expandvars("{SIGN_PY}") From 9c63243fe79324a728698fc8323fa02d2f607a36 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 30 Aug 2014 18:56:27 -0500 Subject: [PATCH 4/7] Fix issue with planar face alignment. --- indra/newview/llface.cpp | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 86b840c03..6f89b5629 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -987,15 +987,15 @@ void LLFace::getPlanarProjectedParams(LLQuaternion* face_rot, LLVector3* face_po { const LLMatrix4a& vol_mat = getWorldMatrix(); const LLVolumeFace& vf = getViewerObject()->getVolume()->getVolumeFace(mTEOffset); - const LLVector4a& normal4a = vf.mNormals[0]; + const LLVector4a& normal = vf.mNormals[0]; const LLVector4a& tangent = vf.mTangents[0]; - LLVector4a binormal4a; - binormal4a.setCross3(normal4a, tangent); - binormal4a.mul(tangent.getF32ptr()[3]); + LLVector4a binormal; + binormal.setCross3(normal, tangent); + binormal.mul(tangent.getF32ptr()[3]); LLVector2 projected_binormal; - planarProjection(projected_binormal, normal4a, *vf.mCenter, binormal4a); + planarProjection(projected_binormal, normal, *vf.mCenter, binormal); projected_binormal -= LLVector2(0.5f, 0.5f); // this normally happens in xform() *scale = projected_binormal.length(); // rotate binormal to match what planarProjection() thinks it is, @@ -1004,19 +1004,15 @@ void LLFace::getPlanarProjectedParams(LLQuaternion* face_rot, LLVector3* face_po F32 ang = acos(projected_binormal.mV[VY]); ang = (projected_binormal.mV[VX] < 0.f) ? -ang : ang; - LLMatrix4a rot = gGL.genRot(ang, normal4a); - rot.rotate(binormal4a, binormal4a); + gGL.genRot(ang, normal).rotate(binormal, binormal); LLVector4a x_axis; - x_axis.setCross3(binormal4a, normal4a); + x_axis.setCross3(binormal, normal); - LLQuaternion2 local_rot(LLQuaternion( LLVector3(x_axis.getF32ptr()), LLVector3(binormal4a.getF32ptr()), LLVector3(normal4a.getF32ptr()) )); + //VECTORIZE THIS + LLQuaternion local_rot(LLVector3(x_axis.getF32ptr()), LLVector3(binormal.getF32ptr()), LLVector3(normal.getF32ptr())); + *face_rot = local_rot * LLMatrix4(vol_mat.getF32ptr()).quaternion(); - LLMatrix4 vol_mat2(vol_mat.getF32ptr()); - - local_rot.mul(LLQuaternion2(vol_mat2.quaternion())); - - *face_rot = LLQuaternion(local_rot.getVector4a().getF32ptr()); face_pos->set(vol_mat.getRow().getF32ptr()); } From 547d9817dbbad1a6577d00d4dc6feb46501be7d4 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 30 Aug 2014 18:57:12 -0500 Subject: [PATCH 5/7] Replace \t with spaces in develop.py. --- indra/develop.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/indra/develop.py b/indra/develop.py index 83c76b10f..a4101b138 100755 --- a/indra/develop.py +++ b/indra/develop.py @@ -612,15 +612,15 @@ class WindowsSetup(PlatformSetup): if environment == '': environment = self.find_visual_studio_express() if environment == '': - environment = self.find_visual_studio_express_single() - if environment == '': - print >> sys.stderr, "Something went very wrong during build stage, could not find a Visual Studio?" - else: - build_dirs=self.build_dirs() - print >> sys.stderr, "\nSolution generation complete, it can can now be found in:", build_dirs[0] - print >> sys.stderr, "\nAs you are using an Express Visual Studio, the build step cannot be automated" - print >> sys.stderr, "\nPlease see https://wiki.secondlife.com/wiki/Microsoft_Visual_Studio#Extra_steps_for_Visual_Studio_Express_editions for Visual Studio Express specific information" - exit(0) + environment = self.find_visual_studio_express_single() + if environment == '': + print >> sys.stderr, "Something went very wrong during build stage, could not find a Visual Studio?" + else: + build_dirs=self.build_dirs() + print >> sys.stderr, "\nSolution generation complete, it can can now be found in:", build_dirs[0] + print >> sys.stderr, "\nAs you are using an Express Visual Studio, the build step cannot be automated" + print >> sys.stderr, "\nPlease see https://wiki.secondlife.com/wiki/Microsoft_Visual_Studio#Extra_steps_for_Visual_Studio_Express_editions for Visual Studio Express specific information" + exit(0) # devenv.com is CLI friendly, devenv.exe... not so much. return ('"%sdevenv.com" %s.sln /build %s' % From afe573d2ebc52a8b9572c2ad1c885a2903dc9548 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 30 Aug 2014 23:47:32 -0500 Subject: [PATCH 6/7] Spaces in path... and nsi script... issues. --- indra/newview/installers/windows/installer_template.nsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 8399d9f56..33549a02b 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -77,8 +77,8 @@ Name "${VIEWERNAME}" SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text BrandingText "Prepare to Implode!" ; bottom of window text -Icon %%SOURCE%%\installers\windows\${INSTALL_ICON} -UninstallIcon %%SOURCE%%\installers\windows\${UNINSTALL_ICON} +Icon "%%SOURCE%%\installers\windows\${INSTALL_ICON}" +UninstallIcon "%%SOURCE%%\installers\windows\${UNINSTALL_ICON}" WindowIcon off ; show our icon in left corner # BGGradient 9090b0 000000 notext CRCCheck on ; make sure CRC is OK From c7e9430f998c7e20af4d1a4940d82632e6a51a76 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sat, 30 Aug 2014 23:48:56 -0500 Subject: [PATCH 7/7] Avoid erroneously creating 'About Land' instance. Also avoid issuing 'ParcelPropertiesRequest' excessively. --- indra/newview/llagent.cpp | 3 ++- indra/newview/llfloaterland.cpp | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 7fb21ab0d..cf5e3a3c8 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3973,7 +3973,8 @@ bool LLAgent::teleportCore(bool is_local) LLFloaterWorldMap::hide(); // hide land floater too - it'll be out of date - LLFloaterLand::hideInstance(); + if (LLFloaterLand::findInstance()) + LLFloaterLand::hideInstance(); LLViewerParcelMgr::getInstance()->deselectLand(); LLViewerMediaFocus::getInstance()->clearFocus(); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index d76a43566..874e45c49 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -257,7 +257,9 @@ LLFloaterLand::~LLFloaterLand() // public void LLFloaterLand::refresh() { - if (LLViewerParcelMgr::getInstance()->selectionEmpty()) + if (!instanceVisible()) + return; + if (LLViewerParcelMgr::getInstance()->selectionEmpty() && mParcel->getParcel() == NULL) LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal()); mPanelGeneral->refresh(); mPanelObjects->refresh();