From 718aecb2eeb7fb8dd53114d18cfc08919b176c2c Mon Sep 17 00:00:00 2001 From: Cinders Date: Sat, 24 Nov 2012 13:40:00 -0700 Subject: [PATCH] FIRE-8063: Add support for Aurora-sim WindlightRefresh message --- indra/newview/llenvmanager.cpp | 53 ++++++++++++++++++++++++++++++++-- indra/newview/llenvmanager.h | 6 ++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/indra/newview/llenvmanager.cpp b/indra/newview/llenvmanager.cpp index fadb298eb5..caa6ffe935 100644 --- a/indra/newview/llenvmanager.cpp +++ b/indra/newview/llenvmanager.cpp @@ -510,9 +510,11 @@ void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) // Let interested parties know about the region settings update. mRegionSettingsChangeSignal(); - + +// FIRE-8063: Aurora-sim windlight refresh // reset - mInterpNextChangeMessage = false; + //mInterpNextChangeMessage = false; +// } void LLEnvManagerNew::onRegionSettingsApplyResponse(bool ok) @@ -702,3 +704,50 @@ void LLEnvManagerNew::onRegionChange(bool interpolate) // Let interested parties know agent region has been changed. mRegionChangeSignal(); } + +// FIRE-8063: Aurora-sim windlight refresh +class WindLightRefresh : public LLHTTPNode +{ + /*virtual*/ void post( + LLHTTPNode::ResponsePtr response, + const LLSD& context, + const LLSD& input) const + { + if (!input || !context || !input.isMap() || !input.has("body")) { + llinfos << "malformed WindLightRefresh!" << llendl; + return; + } + + //std::string dump = input["body"].asString(); + //llwarns << dump << llendl; + + LLSD body = input["body"]; + LLEnvManagerNew *env = &LLEnvManagerNew::instance(); + + LLViewerRegion* regionp = gAgent.getRegion(); + LLUUID region_uuid = regionp ? regionp->getRegionID() : LLUUID::null; + + env->mNewRegionPrefs.clear(); + env->mCurRegionUUID = region_uuid; + + if(body.has("Interpolate")) { + if(body["Interpolate"].asInteger() == 1) { + env->mInterpNextChangeMessage = true; + } + else { + env->mInterpNextChangeMessage = false; + } + } + else { + env->mInterpNextChangeMessage = true; + } + llinfos << "Windlight Refresh , interpolate:" << env->mInterpNextChangeMessage << llendl; + env->requestRegionSettings(); + env->mRegionChangeSignal(); + } +}; + +LLHTTPRegistration +gHTTPRegistrationWindLightRefresh( + "/message/WindLightRefresh"); +// FIRE-8063: Aurora-sim windlight refresh diff --git a/indra/newview/llenvmanager.h b/indra/newview/llenvmanager.h index 3bdd343e19..fa2c338b57 100644 --- a/indra/newview/llenvmanager.h +++ b/indra/newview/llenvmanager.h @@ -33,6 +33,9 @@ class LLWLParamManager; class LLWaterParamManager; class LLWLAnimator; +// FIRE-8063: Aurora-sim windlight refresh +class WindLightRefresh; +// // generic key struct LLEnvKey @@ -250,6 +253,9 @@ public: bool useRegionWater(); private: +// FIRE-8063: Aurora-sim windlight refresh + friend class WindLightRefresh; +// bool useDefaultSky(); bool useDefaultWater();