diff options
-rw-r--r-- | NORSPEC-207.patch | 164 | ||||
-rwxr-xr-x | indra/viewer_components/login/lllogin.cpp | 26 | ||||
-rwxr-xr-x | indra/viewer_components/updater/llupdaterservice.cpp | 12 |
3 files changed, 193 insertions, 9 deletions
diff --git a/NORSPEC-207.patch b/NORSPEC-207.patch new file mode 100644 index 0000000000..a1c1447bda --- /dev/null +++ b/NORSPEC-207.patch @@ -0,0 +1,164 @@ +diff -r fe4bab01522e indra/llprimitive/llrendermaterialtable.cpp +--- a/indra/llprimitive/llrendermaterialtable.cpp Wed May 15 17:57:21 2013 +0000 ++++ b/indra/llprimitive/llrendermaterialtable.cpp Wed May 22 14:23:04 2013 -0700 +@@ -184,6 +184,44 @@ + } + } + ++// 'v' is an integer value for 100ths of radians (don't ask...) ++// ++void LLRenderMaterialEntry::LLRenderMaterial::setSpecularMapRotation(S32 v) const ++{ ++ // Store the fact that we're using the new rotation rep ++ // ++ m_flags |= kNewSpecularMapRotation; ++ ++ // Store 'sign bit' in our m_flags ++ // ++ m_flags &= ~kSpecularMapRotationNegative; ++ m_flags |= (specularMapRotation < 0) ? kSpecularMapRotationNegative : 0; ++ ++ specularRotation = abs(specularRotation); ++ specularRotation = llmin(specularRotation, MAX_MATERIAL_MAP_ROTATION); ++ ++ m_specularRotation = (U16)(abs(specularMapRotation)); ++} ++ ++// 'v' is an integer value for 100ths of radians (don't ask...) ++// ++void LLRenderMaterialEntry::LLRenderMaterial::setNormalMapRotation(S32 v) const ++{ ++ ++ // Store the fact that we're using the new rep for this material ++ // ++ m_flags |= kNewNormalMapRotation; ++ ++ // Store 'sign bit' in our m_flags ++ // ++ m_flags &= ~kNormalMapRotationNegative; ++ m_flags |= (normalMapRotation < 0) ? kNormalMapRotationNegative : 0; ++ ++ normalRotation = abs(normalRotation); ++ normalRotation = llmin(normalRotation, MAX_MATERIAL_MAP_ROTATION); ++ ++ m_normalRotation = (U16)(abs(normalMapRotation)); ++} + + void LLRenderMaterialEntry::LLRenderMaterial::asLLSD( LLSD& dest ) const + { +@@ -193,20 +231,45 @@ + dest["NormOffsetY"] = (S32)m_normalOffsetY; + dest["NormRepeatX"] = m_normalRepeatX; + dest["NormRepeatY"] = m_normalRepeatY; +- dest["NormRotation"] = (S32)m_normalRotation; ++ ++ S32 value = (S32)m_normalMapRotation; ++ ++ // If we don't have the flag for new rotations set, ++ // then we need to convert it now ++ if (!(m_flags & kNewNormalMapRotation)) ++ { ++ F32 old_radians = ((F32)m_normalMapRotation / 10000.0f) ++ S32 new_val = (S32)(old_radians * 100.0f); ++ setNormalMapRotation(new_Val); ++ } ++ ++ dest["NormRotation"] = (m_flags & kNormalMapRotationNegative) ? -(S32)m_normalRotation : (S32)m_normalRotation; + + dest["SpecOffsetX"] = (S32)m_specularOffsetX; + dest["SpecOffsetY"] = (S32)m_specularOffsetY; + dest["SpecRepeatX"] = m_specularRepeatX; + dest["SpecRepeatY"] = m_specularRepeatY; +- dest["SpecRotation"] = (S32)m_specularRotation; ++ ++ ++ value = (S32)m_specularRotation; ++ ++ // If we don't have the flag for new rotations set, ++ // then we need to convert it now ++ if (!(m_flags & kNewSpecularMapRotation)) ++ { ++ F32 old_radians = ((F32)m_specularMapRotation / 10000.0f) ++ S32 new_val = (S32)(old_radians * 100.0f); ++ setSpecularMapRotation(new_Val); ++ } ++ ++ dest["SpecRotation"] = (m_flags & kSpecularMapRotationNegative) ? -(S32)m_specularRotation : (S32)m_specularRotation; + + dest["SpecMap"] = m_specularMap; + dest["SpecColor"] = m_specularLightColor.getValue(); + dest["SpecExp"] = (S32)m_specularLightExponent; + dest["EnvIntensity"] = (S32)m_environmentIntensity; + dest["AlphaMaskCutoff"] = (S32)m_alphaMaskCutoff; +- dest["DiffuseAlphaMode"] = (S32)m_diffuseAlphaMode; ++ dest["DiffuseAlphaMode"] = (S32)(m_diffuseAlphaMode & 0xF); + + } + +@@ -217,7 +280,10 @@ + m_normalOffsetY = (U16)materialDefinition["NormOffsetY"].asInteger(); + m_normalRepeatX = materialDefinition["NormRepeatX"].asInteger(); + m_normalRepeatY = materialDefinition["NormRepeatY"].asInteger(); +- m_normalRotation = (U16)materialDefinition["NormRotation"].asInteger(); ++ ++ S32 normalRotation = materialDefinition["NormRotation"].asInteger(); ++ ++ setNormalMapRotation(normalRotation); + + m_specularMap = materialDefinition["SpecMap"].asUUID(); + +@@ -225,7 +291,10 @@ + m_specularOffsetY = (U16)materialDefinition["SpecOffsetY"].asInteger(); + m_specularRepeatX = materialDefinition["SpecRepeatX"].asInteger(); + m_specularRepeatY = materialDefinition["SpecRepeatY"].asInteger(); +- m_specularRotation = (U16)materialDefinition["SpecRotation"].asInteger(); ++ ++ S32 specularRotation = materialDefinition["SpecRotation"].asInteger(); ++ ++ setSpecularMapRotation(specularRotation); + + m_specularLightColor.setValue( materialDefinition["SpecColor"] ); + m_specularLightExponent = (U8)materialDefinition["SpecExp"].asInteger(); +diff -r fe4bab01522e indra/llprimitive/llrendermaterialtable.h +--- a/indra/llprimitive/llrendermaterialtable.h Wed May 15 17:57:21 2013 +0000 ++++ b/indra/llprimitive/llrendermaterialtable.h Wed May 22 14:23:04 2013 -0700 +@@ -89,11 +89,17 @@ + + void computeID(); + ++ + struct LLRenderMaterial + { + void asLLSD( LLSD& dest ) const; + void setFromLLSD( const LLSD& materialDefinition ); + ++ void setNormalMapRotation(S32 v); ++ void setSpecularMapRotation(S32 v); ++ ++ const S32 MAX_MATERIAL_MAP_ROTATION = 62800; ++ + // 36 bytes + LLUUID m_normalMap; + LLUUID m_specularMap; +@@ -119,7 +125,20 @@ + U8 m_specularLightExponent; + U8 m_environmentIntensity; + U8 m_alphaMaskCutoff; +- U8 m_diffuseAlphaMode; ++ U8 m_diffuseAlphaMode : 4; ++ U8 m_flags : 4; ++ }; ++ ++ // Flags stored in LLRenderMaterial::m_flags to differentiate 'old' rotation format ++ // which doesn't handle negative or large rotations correctly from new format. ++ // All ancient materials will have these flags unset as the values for diffuseAlphaMode ++ // from which the bits were stolen never used more than the bottom 2 bits. ++ // ++ enum RenderMaterialFlags { ++ kNewNormalMapRotation = 0x1, ++ kNewSpecularMapRotation = 0x2, ++ kNormalMapRotationNegative = 0x4, ++ kSpecularMapRotationNegative = 0x8 + }; + + friend struct eastl::hash<LLRenderMaterial>; diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp index 3357ad812d..27c91e2c14 100755 --- a/indra/viewer_components/login/lllogin.cpp +++ b/indra/viewer_components/login/lllogin.cpp @@ -117,14 +117,17 @@ private: void LLLogin::Impl::connect(const std::string& uri, const LLSD& login_params) { - LL_DEBUGS("LLLogin") << " connect with uri '" << uri << "', login_params " << login_params << LL_ENDL; + // BUG-2707? + //LL_DEBUGS("LLLogin") << " connect with uri '" << uri << "', login_params " << login_params << LL_ENDL; // Launch a coroutine with our login_() method. Run the coroutine until // its first wait; at that point, return here. std::string coroname = LLCoros::instance().launch("LLLogin::Impl::login_", boost::bind(&Impl::login_, this, _1, uri, login_params)); - LL_DEBUGS("LLLogin") << " connected with uri '" << uri << "', login_params " << login_params << LL_ENDL; + + // BUG-2707? + //LL_DEBUGS("LLLogin") << " connected with uri '" << uri << "', login_params " << login_params << LL_ENDL; } void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_params) @@ -137,8 +140,11 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para //{ // printable_params["params"]["passwd"] = "*******"; //} - LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self) - << " with uri '" << uri << "', parameters " << printable_params << LL_ENDL; + // + // +// BUG-2707? +// LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self) +// << " with uri '" << uri << "', parameters " << printable_params << LL_ENDL; // Arriving in SRVRequest state LLEventStream replyPump("SRVreply", true); @@ -150,7 +156,9 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para sendProgressEvent("offline", "srvrequest"); // Request SRV record. - LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL; + // BUG-2707? + //LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL; + // *NOTE:Mani - Completely arbitrary default timeout value for SRV request. F32 seconds_to_timeout = 5.0f; @@ -230,8 +238,9 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para // Still Downloading -- send progress update. sendProgressEvent("offline", "downloading"); } - - LL_DEBUGS("LLLogin") << "Auth Response: " << mAuthResponse << LL_ENDL; + + // BUG-2707? + //LL_DEBUGS("LLLogin") << "Auth Response: " << mAuthResponse << LL_ENDL; status = mAuthResponse["status"].asString(); // Okay, we've received our final status event for this @@ -276,7 +285,8 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para */ if( status == "Started") { - LL_DEBUGS("LLLogin") << mAuthResponse << LL_ENDL; + // BUG-2707? + //LL_DEBUGS("LLLogin") << mAuthResponse << LL_ENDL; continue; } diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp index 1bd9fa4fc0..1882e39a88 100755 --- a/indra/viewer_components/updater/llupdaterservice.cpp +++ b/indra/viewer_components/updater/llupdaterservice.cpp @@ -206,6 +206,8 @@ void LLUpdaterServiceImpl::initialize(const std::string& url, mPlatformVersion = platform_version; memcpy(mUniqueId, uniqueid, MD5HEX_STR_SIZE); mWillingToTest = willing_to_test; + +#if BUG_2707 LL_DEBUGS("UpdaterService") << "\n url: " << mUrl << "\n path: " << mPath @@ -214,6 +216,7 @@ void LLUpdaterServiceImpl::initialize(const std::string& url, << "\n uniqueid: " << mUniqueId << "\n willing: " << ( mWillingToTest ? "testok" : "testno" ) << LL_ENDL; +#endif } void LLUpdaterServiceImpl::setCheckPeriod(unsigned int seconds) @@ -431,12 +434,15 @@ void LLUpdaterServiceImpl::response(LLSD const & content) BOOL required = content["required"].asBoolean(); LLURI url(content["url"].asString()); std::string more_info = content["more_info"].asString(); + + #if BUG_2707 LL_DEBUGS("UpdaterService") << "Starting download of " << ( required ? "required" : "optional" ) << " update" << " to channel '" << mNewChannel << "' version " << mNewVersion << " more info '" << more_info << "'" << LL_ENDL; + #endif mUpdateDownloader.download(url, content["hash"].asString(), mNewChannel, mNewVersion, more_info, required); } } @@ -459,6 +465,8 @@ void LLUpdaterServiceImpl::downloadComplete(LLSD const & data) payload["channel"] = mNewChannel; payload["info_url"] = data["info_url"]; event["payload"] = payload; + + #if BUG_2707 LL_DEBUGS("UpdaterService") << "Download complete " << ( data["required"].asBoolean() ? "required" : "optional" ) @@ -466,6 +474,7 @@ void LLUpdaterServiceImpl::downloadComplete(LLSD const & data) << " version " << mNewVersion << " info " << data["info_url"].asString() << LL_ENDL; + #endif LLEventPumps::instance().obtain("mainlooprepeater").post(event); @@ -542,7 +551,8 @@ bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event) // Check for failed install. if(LLFile::isfile(ll_install_failed_marker_path())) { - LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;; + // BUG-2707? + //LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;; int requiredValue = 0; { llifstream stream(ll_install_failed_marker_path()); |