summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llfloatermodelpreview.cpp33
-rw-r--r--indra/newview/llviewerregion.cpp34
-rw-r--r--indra/newview/llviewerregion.h2
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;