diff options
Diffstat (limited to 'indra/newview')
-rwxr-xr-x | indra/newview/llfloatermodelpreview.cpp | 33 | ||||
-rw-r--r-- | indra/newview/llviewerregion.cpp | 34 | ||||
-rw-r--r-- | indra/newview/llviewerregion.h | 2 |
3 files changed, 46 insertions, 23 deletions
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 0748ed8039..ef846ec42e 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -780,19 +780,6 @@ void LLFloaterModelPreview::draw() childSetTextArg("prim_cost", "[PRIM_COST]", llformat("%d", mModelPreview->mResourceCost)); childSetTextArg("description_label", "[TEXTURES]", llformat("%d", mModelPreview->mTextureSet.size())); - if (!mCurRequest.empty()) - { - LLMutexLock lock(mStatusLock); - childSetTextArg("status", "[STATUS]", mStatusMessage); - } - else - { - childSetVisible("Simplify", true); - childSetVisible("simplify_cancel", false); - childSetVisible("Decompose", true); - childSetVisible("decompose_cancel", false); - } - if (mModelPreview) { gGL.color3f(1.f, 1.f, 1.f); @@ -992,12 +979,14 @@ void LLFloaterModelPreview::onPhysicsStageExecute(LLUICtrl* ctrl, void* data) sInstance->setStatusMessage(sInstance->getString("decomposing")); sInstance->childSetVisible("Decompose", false); sInstance->childSetVisible("decompose_cancel", true); + sInstance->childDisable("Simplify"); } else if (stage == "Simplify") { sInstance->setStatusMessage(sInstance->getString("simplifying")); sInstance->childSetVisible("Simplify", false); sInstance->childSetVisible("simplify_cancel", true); + sInstance->childDisable("Decompose"); } } } @@ -4345,6 +4334,24 @@ void LLModelPreview::updateStatusMessages() child->setEnabled(enable); child = panel->findNextSibling(child); } + + if (fmp->mCurRequest.empty()) + { + fmp->childSetVisible("Simplify", true); + fmp->childSetVisible("simplify_cancel", false); + fmp->childSetVisible("Decompose", true); + fmp->childSetVisible("decompose_cancel", false); + + if (phys_hulls > 0) + { + fmp->childEnable("Simplify"); + } + + if (phys_tris || phys_hulls > 0) + { + fmp->childEnable("Decompose"); + } + } } const char* lod_controls[] = diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 1d07960937..5b7492b66f 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -186,8 +186,8 @@ class BaseCapabilitiesComplete : public LLHTTPClient::Responder { LOG_CLASS(BaseCapabilitiesComplete); public: - BaseCapabilitiesComplete(LLViewerRegion* region) - : mRegion(region) + BaseCapabilitiesComplete(LLViewerRegion* region, S32 retry = 0) + : mRegion(region), mRetry(retry) { } virtual ~BaseCapabilitiesComplete() { @@ -206,9 +206,24 @@ public: { LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL; - if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) + const S32 MAX_RETRIES = 5; + + if (mRetry < MAX_RETRIES) { - LLStartUp::setStartupState( STATE_SEED_CAP_GRANTED ); + std::string url = mRegion->getCapability("Seed"); + + mRetry++; + + llinfos << "retry " << mRetry << " posting to seed " << url << llendl; + + mRegion->setSeedCapability(url, mRetry); + } + else + { + if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) + { + LLStartUp::setStartupState( STATE_SEED_CAP_GRANTED ); + } } } @@ -242,14 +257,15 @@ public: } static boost::intrusive_ptr<BaseCapabilitiesComplete> build( - LLViewerRegion* region) + LLViewerRegion* region, S32 retry) { return boost::intrusive_ptr<BaseCapabilitiesComplete>( - new BaseCapabilitiesComplete(region)); + new BaseCapabilitiesComplete(region, retry)); } private: LLViewerRegion* mRegion; + S32 mRetry; }; @@ -1477,9 +1493,9 @@ void LLViewerRegion::unpackRegionHandshake() msg->sendReliable(host); } -void LLViewerRegion::setSeedCapability(const std::string& url) +void LLViewerRegion::setSeedCapability(const std::string& url, S32 retry) { - if (getCapability("Seed") == url) + if (retry == 0 && getCapability("Seed") == url) { // llwarns << "Ignoring duplicate seed capability" << llendl; return; @@ -1569,7 +1585,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url) llinfos << "posting to seed " << url << llendl; - mImpl->mHttpResponderPtr = BaseCapabilitiesComplete::build(this) ; + mImpl->mHttpResponderPtr = BaseCapabilitiesComplete::build(this, retry) ; LLHTTPClient::post(url, capabilityNames, mImpl->mHttpResponderPtr); } diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index 00252b8897..0176969cea 100644 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -230,7 +230,7 @@ public: const LLHTTPClient::ResponderPtr getHttpResponderPtr() const; // Get/set named capability URLs for this region. - void setSeedCapability(const std::string& url); + void setSeedCapability(const std::string& url, S32 retry = 0); void setCapability(const std::string& name, const std::string& url); // implements LLCapabilityProvider virtual std::string getCapability(const std::string& name) const; |