From b6b18b06937ebb65bb386e72908fcea538194bd1 Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sat, 26 Mar 2011 01:06:34 +0100 Subject: [PATCH 01/43] Adjustments to MultiAttach --- indra/newview/llagent.cpp | 5 +++-- indra/newview/llfloatercustomize.cpp | 8 ++++++++ indra/newview/llinventorybridge.cpp | 3 ++- indra/newview/skins/default/xui/en-us/menu_inventory.xml | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index f3dc53305..1cc324c2c 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -7348,9 +7348,10 @@ void LLAgent::makeNewOutfit( return; } - BOOL fUseLinks = !gSavedSettings.getBOOL("UseInventoryLinks") && + BOOL fUseLinks = gSavedSettings.getBOOL("UseInventoryLinks") && gHippoGridManager->getConnectedGrid()->isSecondLife(); - BOOL fUseOutfits = gSavedSettings.getBOOL("UseOutfitFolders"); + BOOL fUseOutfits = gSavedSettings.getBOOL("UseOutfitFolders") && + gHippoGridManager->getConnectedGrid()->isSecondLife(); LLAssetType::EType typeDest = (fUseOutfits) ? LLAssetType::AT_MY_OUTFITS : LLAssetType::AT_CLOTHING; LLAssetType::EType typeFolder = (fUseOutfits) ? LLAssetType::AT_OUTFIT : LLAssetType::AT_NONE; diff --git a/indra/newview/llfloatercustomize.cpp b/indra/newview/llfloatercustomize.cpp index 17d16bb61..2670ae2a8 100644 --- a/indra/newview/llfloatercustomize.cpp +++ b/indra/newview/llfloatercustomize.cpp @@ -76,6 +76,7 @@ #include "lluictrlfactory.h" #include "llfilepicker.h" +#include "hippogridmanager.h" using namespace LLVOAvatarDefines; @@ -219,6 +220,13 @@ public: } } + if(!gHippoGridManager->getConnectedGrid()->isSecondLife()) { + childSetEnabled("checkbox_use_links", FALSE); + childSetValue("checkbox_use_links", FALSE); + childSetEnabled("checkbox_use_outfits", FALSE); + childSetValue("checkbox_use_outfits", FALSE); + } + childSetAction("Save", onSave, this ); childSetAction("Cancel", onCancel, this ); childSetAction("Check All", onCheckAll, this ); diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 063be4f1d..e2e844eaa 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -4179,7 +4179,8 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { items.push_back(std::string("Attach Separator")); items.push_back(std::string("Object Wear")); - items.push_back(std::string("Object Add")); + if (gHippoGridManager->getConnectedGrid()->isSecondLife()) + items.push_back(std::string("Object Add")); if (!avatarp->canAttachMoreObjects()) { disabled_items.push_back(std::string("Object Add")); diff --git a/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/indra/newview/skins/default/xui/en-us/menu_inventory.xml index 90f70d440..64f294599 100644 --- a/indra/newview/skins/default/xui/en-us/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en-us/menu_inventory.xml @@ -263,7 +263,7 @@ - @@ -271,7 +271,7 @@ name="Object Wear" width="128"> - From 18b10638be2257fba8608275f2581fcfb775fd15 Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sat, 26 Mar 2011 04:02:51 +0100 Subject: [PATCH 02/43] Stupid headers -.- workaround --- indra/llimage/llimagejpeg.h | 4 ++-- indra/newview/llfloatercustomize.cpp | 2 +- indra/newview/llfloaterpostcard.h | 4 ++-- indra/newview/llviewermenufile.cpp | 8 ++++---- indra/newview/llviewermessage.cpp | 1 + 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/indra/llimage/llimagejpeg.h b/indra/llimage/llimagejpeg.h index 884d07116..abeaf84ce 100644 --- a/indra/llimage/llimagejpeg.h +++ b/indra/llimage/llimagejpeg.h @@ -35,8 +35,6 @@ #include -#include "llimage.h" - extern "C" { #ifdef LL_STANDALONE # include @@ -47,6 +45,8 @@ extern "C" { #endif } +#include "llimage.h" + class LLImageJPEG : public LLImageFormatted { protected: diff --git a/indra/newview/llfloatercustomize.cpp b/indra/newview/llfloatercustomize.cpp index 2670ae2a8..359c8a19c 100644 --- a/indra/newview/llfloatercustomize.cpp +++ b/indra/newview/llfloatercustomize.cpp @@ -32,6 +32,7 @@ #include "llviewerprecompiledheaders.h" +#include "llimagejpeg.h" #include "llfloatercustomize.h" #include "llfontgl.h" #include "llbutton.h" @@ -71,7 +72,6 @@ #include "llglheaders.h" #include "llui.h" #include "llviewermessage.h" -#include "llimagejpeg.h" #include "llviewercontrol.h" #include "lluictrlfactory.h" diff --git a/indra/newview/llfloaterpostcard.h b/indra/newview/llfloaterpostcard.h index d294cfca5..f9e1b50cb 100644 --- a/indra/newview/llfloaterpostcard.h +++ b/indra/newview/llfloaterpostcard.h @@ -33,12 +33,12 @@ #ifndef LL_LLFLOATERPOSTCARD_H #define LL_LLFLOATERPOSTCARD_H +#include "llimagegl.h" +#include "llimagejpeg.h" #include "llfloater.h" #include "llcheckboxctrl.h" #include "llmemory.h" -#include "llimagegl.h" -#include "llimagejpeg.h" class LLTextEditor; class LLLineEditor; diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 596dee9e9..a706b02ab 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -37,6 +37,10 @@ // project includes #include "llagent.h" +#include "llimagejpeg.h" +#include "llimagepng.h" +#include "llimagebmp.h" + #include "llfilepicker.h" #include "llfloateranimpreview.h" #include "llfloaterbuycurrency.h" @@ -81,10 +85,6 @@ #include "lluuid.h" #include "llvorbisencode.h" -#include "llimagejpeg.h" -#include "llimagepng.h" -#include "llimagebmp.h" - // system libraries #include diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index a37cffd26..77ad620f6 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -37,6 +37,7 @@ #include +#include "llimagejpeg.h" #include "llaudioengine.h" #include "llavatarnamecache.h" #include "indra_constants.h" From ba9bd7d41ebdb655da54bf8b7f3e44a554228a8d Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sat, 26 Mar 2011 16:47:16 +0100 Subject: [PATCH 03/43] meta7 LightShare --- indra/newview/app_settings/keywords.ini | 37 +++++++ indra/newview/app_settings/settings.xml | 13 +++ indra/newview/llfloaterenvsettings.cpp | 18 +++- indra/newview/llfloaterenvsettings.h | 3 + indra/newview/llviewergenericmessage.cpp | 130 +++++++++++++++++++--- indra/newview/llviewergenericmessage.h | 2 +- indra/newview/llviewermessage.cpp | 9 ++ indra/newview/meta7windlight.h | 131 +++++++++++++++++++++++ 8 files changed, 328 insertions(+), 15 deletions(-) create mode 100644 indra/newview/meta7windlight.h diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index cd7b533e7..022017247 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -512,6 +512,43 @@ TOUCH_INVALID_TEXCOORD Value returned by llDetectedTouchUV() and llDetectedTouc TOUCH_INVALID_VECTOR Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid. TOUCH_INVALID_FACE Value returned by llDetectedTouchFace() when the touch position is not valid. +WL_WATER_COLOR Windlight Water Colour +WL_WATER_FOG_DENSITY_EXPONENT Windlight Water Fog Density Exponent +WL_UNDERWATER_FOG_MODIFIER Windlight Underwater Fog Modifier +WL_REFLECTION_WAVELET_SCALE Windlight Reflection Wavelet Scale +WL_FRESNEL_SCALE Windlight Fresnel Scale +WL_FRESNEL_OFFSET Windlight Fresnel Offset +WL_REFRACT_SCALE_ABOVE Windlight Refract Scale Above +WL_REFRACT_SCALE_BELOW Windlight Refract Scale Below +WL_BLUR_MULTIPLIER Windlight Blur Multiplier +WL_BIG_WAVE_DIRECTION Windlight Big Wave Direction +WL_LITTLE_WAVE_DIRECTION Windlight Little Wave Direction +WL_NORMAL_MAP_TEXTURE Windlight Normal Map Texture +WL_HORIZON Windlight Horizon Colour +WL_HAZE_HORIZON Windlight Haze Horizon +WL_BLUE_DENSITY Windlight Blue Density +WL_HAZE_DENSITY Windlight Haze Density +WL_DENSITY_MULTIPLIER Windlight Density Multiplier +WL_DISTANCE_MULTIPLIER Windlight Distance Multiplier +WL_MAX_ALTITUDE Windlight Max Altitude +WL_SUN_MOON_COLOR Windlight Sun/Moon Colour +WL_AMBIENT Windlight Ambient Colour +WL_EAST_ANGLE Windlight Sun/Position East +WL_SUN_GLOW_FOCUS Windlight Sun Glow Focus +WL_SUN_GLOW_SIZE Windlight Sun Glow Size +WL_SCENE_GAMMA Windlight Scene Gamma +WL_STAR_BRIGHTNESS Windlight Star Brightness +WL_CLOUD_COLOR Windlight Cloud Colour +WL_CLOUD_XY_DENSITY Windlight Cloud X/Y/Density +WL_CLOUD_COVERAGE Windlight Cloud Coverage +WL_CLOUD_SCALE Windlight Cloud Scale +WL_CLOUD_DETAIL_XY_DENSITY Windlight Cloud Detail X/Y/Density +WL_CLOUD_SCROLL_X Windlight Cloud Scroll X +WL_CLOUD_SCROLL_Y Windlight Cloud Scroll Y +WL_CLOUD_SCROLL_Y_LOCK Windlight Cloud Scroll Y Lock +WL_CLOUD_SCROLL_X_LOCK Windlight Cloud Scroll X Lock +WL_DRAW_CLASSIC_CLOUDS Windlight Draw Classic Clouds + # string constants [word .1, .3, .5] NULL_KEY Indicates an empty key diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 2057d827c..4a9a0918f 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -9,6 +9,19 @@ settings_rlv.xml + + UseServersideWindlightSettings + + Comment + Whether or not to use Windlight settings presented by the server. + Persist + 1 + Type + Boolean + Value + 1 + + FloaterLocalbitmapbrowserRect Comment diff --git a/indra/newview/llfloaterenvsettings.cpp b/indra/newview/llfloaterenvsettings.cpp index 661c3988c..6a55b8598 100644 --- a/indra/newview/llfloaterenvsettings.cpp +++ b/indra/newview/llfloaterenvsettings.cpp @@ -41,7 +41,8 @@ #include "llcombobox.h" #include "llcolorswatch.h" #include "llwlanimator.h" - +#include "llviewergenericmessage.h" +#include "meta7windlight.h" #include "llwlparamset.h" #include "llwlparammanager.h" #include "llwaterparammanager.h" @@ -87,6 +88,7 @@ void LLFloaterEnvSettings::initCallbacks(void) // WL Top childSetAction("EnvAdvancedSkyButton", onOpenAdvancedSky, NULL); childSetAction("EnvAdvancedWaterButton", onOpenAdvancedWater, NULL); + childSetAction("EnvSubmitWindlight", onSubmitWindlight, NULL); childSetAction("EnvUseEstateTimeButton", onUseEstateTime, NULL); childSetAction("EnvSettingsHelpButton", onClickHelp, this); } @@ -284,6 +286,20 @@ void LLFloaterEnvSettings::onOpenAdvancedWater(void* userData) LLFloaterWater::show(); } +void LLFloaterEnvSettings::onSubmitWindlight(void* userData) +{ + Meta7WindlightPacket * wl = new Meta7WindlightPacket(); + + LLWaterParamManager * param_mgr = LLWaterParamManager::instance(); + wl->reflectionWaveletScale.X = param_mgr->mNormalScale.mX; + wl->reflectionWaveletScale.Y = param_mgr->mNormalScale.mY; + wl->reflectionWaveletScale.Z = param_mgr->mNormalScale.mZ; + + + std::vector strings; + strings.push_back((char*)wl); + send_generic_message("Windlight", strings); +} void LLFloaterEnvSettings::onUseEstateTime(void* userData) { diff --git a/indra/newview/llfloaterenvsettings.h b/indra/newview/llfloaterenvsettings.h index 4cdf6036c..49bf4fd0d 100644 --- a/indra/newview/llfloaterenvsettings.h +++ b/indra/newview/llfloaterenvsettings.h @@ -78,6 +78,9 @@ public: /// open the advanced water settings menu static void onOpenAdvancedWater(void* userData); + /// submit windlight settings to the estate + static void onSubmitWindlight(void* userData); + /// sync time with the server static void onUseEstateTime(void* userData); diff --git a/indra/newview/llviewergenericmessage.cpp b/indra/newview/llviewergenericmessage.cpp index e06766bbb..b541104fd 100644 --- a/indra/newview/llviewergenericmessage.cpp +++ b/indra/newview/llviewergenericmessage.cpp @@ -34,13 +34,16 @@ #include "llviewerprecompiledheaders.h" #include "llviewergenericmessage.h" - +#include "meta7windlight.h" #include "lldispatcher.h" #include "lluuid.h" #include "message.h" - #include "llagent.h" - +#include "llwaterparamset.h" +#include "llwaterparammanager.h" +#include "llwlparamset.h" +#include "llwlparammanager.h" +#include "lluuid.h" LLDispatcher gGenericDispatcher; @@ -82,20 +85,121 @@ void process_generic_message(LLMessageSystem* msg, void**) { LLUUID agent_id; msg->getUUID("AgentData", "AgentID", agent_id); - if (agent_id != gAgent.getID()) + + std::string method; + msg->getStringFast(_PREHASH_MethodData, _PREHASH_Method, method); + + //This needs to be handled by a dispatcher really, but I'm not sure where is the best place to put it + if (method == "Windlight") + { + //Meta7 WindLight packet + //We are delivering with an agentID of NULL_KEY so as to be + //friendly and not trigger a warning for unsupporting clients. + S32 count = msg->getNumberOfBlocksFast(_PREHASH_ParamList); + for (S32 i = 0; i < count; ++i) + { + // our param is binary data) + S32 size = msg->getSizeFast(_PREHASH_ParamList, i, _PREHASH_Parameter); + if (size >= 0) + { + char buf[250]; + msg->getBinaryDataFast( + _PREHASH_ParamList, _PREHASH_Parameter, + buf, size, i, 249); + + Meta7WindlightPacket* wl = (Meta7WindlightPacket*)buf; + + LLWaterParamManager * param_mgr = LLWaterParamManager::instance(); + LLWaterParamSet & param_set = param_mgr->mCurParams; + + param_set.set("waterFogColor", wl->waterColor.red / 256.f, wl->waterColor.green / 256.f, wl->waterColor.blue / 256.f); + param_set.set("waterFogDensity", pow(2.0f, wl->waterFogDensityExponent)); + param_set.set("underWaterFogMod", wl->underwaterFogModifier); + param_set.set("normScale", wl->reflectionWaveletScale.X,wl->reflectionWaveletScale.Y,wl->reflectionWaveletScale.Z); + param_set.set("fresnelScale", wl->fresnelScale); + param_set.set("fresnelOffset", wl->fresnelOffset); + param_set.set("scaleAbove", wl->refractScaleAbove); + param_set.set("scaleBelow", wl->refractScaleBelow); + param_set.set("blurMultiplier", wl->blurMultiplier); + param_set.set("wave1Dir", wl->littleWaveDirection.X, wl->littleWaveDirection.Y); + param_set.set("wave2Dir", wl->bigWaveDirection.X, wl->bigWaveDirection.Y); + + LLUUID normalMapTexture; + + std::string out = llformat( + "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + (U8)(wl->normalMapTexture[0]), + (U8)(wl->normalMapTexture[1]), + (U8)(wl->normalMapTexture[2]), + (U8)(wl->normalMapTexture[3]), + (U8)(wl->normalMapTexture[4]), + (U8)(wl->normalMapTexture[5]), + (U8)(wl->normalMapTexture[6]), + (U8)(wl->normalMapTexture[7]), + (U8)(wl->normalMapTexture[8]), + (U8)(wl->normalMapTexture[9]), + (U8)(wl->normalMapTexture[10]), + (U8)(wl->normalMapTexture[11]), + (U8)(wl->normalMapTexture[12]), + (U8)(wl->normalMapTexture[13]), + (U8)(wl->normalMapTexture[14]), + (U8)(wl->normalMapTexture[15])); + + normalMapTexture.set(out); + + param_mgr->setParamSet( "Meta7CurrentRegion", param_set); + param_mgr->setNormalMapID(normalMapTexture); + + LLWLParamManager * wl_param_mgr = LLWLParamManager::instance(); + LLWLParamSet & wl_param_set = wl_param_mgr->mCurParams; + wl_param_set.setSunAngle(F_TWO_PI * wl->sunMoonPosiiton); + wl_param_set.setEastAngle(F_TWO_PI * wl->eastAngle); + wl_param_set.set("sunlight_color", wl->sunMoonColor.red * 3.0f, wl->sunMoonColor.green * 3.0f, wl->sunMoonColor.blue * 3.0f, wl->sunMoonColor.alpha * 3.0f); + wl_param_set.set("ambient", wl->ambient.red * 3.0f, wl->ambient.green * 3.0f, wl->ambient.blue * 3.0f, wl->ambient.alpha * 3.0f); + wl_param_set.set("blue_horizon", wl->horizon.red * 2.0f, wl->horizon.green *2.0f, wl->horizon.blue * 2.0f, wl->horizon.alpha * 2.0f); + wl_param_set.set("blue_density", wl->blueDensity.red * 2.0f, wl->blueDensity.green * 2.0f, wl->blueDensity.blue * 2.0f, wl->blueDensity.alpha * 2.0f); + wl_param_set.set("haze_horizon", wl->hazeHorizon, wl->hazeHorizon, wl->hazeHorizon, 1.f); + wl_param_set.set("haze_density", wl->hazeDensity, wl->hazeDensity, wl->hazeDensity, 1.f); + wl_param_set.set("cloud_shadow", wl->cloudCoverage, wl->cloudCoverage, wl->cloudCoverage, wl->cloudCoverage); + wl_param_set.set("density_multiplier", wl->densityMultiplier / 1000.0f); + wl_param_set.set("distance_multiplier", wl->distanceMultiplier, wl->distanceMultiplier, wl->distanceMultiplier, wl->distanceMultiplier); + wl_param_set.set("max_y",(F32)wl->maxAltitude); + wl_param_set.set("cloud_color", wl->cloudColor.red, wl->cloudColor.green, wl->cloudColor.blue, wl->cloudColor.alpha); + wl_param_set.set("cloud_pos_density1", wl->cloudXYDensity.X, wl->cloudXYDensity.Y, wl->cloudXYDensity.Z); + wl_param_set.set("cloud_pos_density2", wl->cloudDetailXYDensity.X, wl->cloudDetailXYDensity.Y, wl->cloudDetailXYDensity.Z); + wl_param_set.set("cloud_scale", wl->cloudScale, 0.f, 0.f, 1.f); + wl_param_set.set("gamma", wl->sceneGamma, wl->sceneGamma, wl->sceneGamma, 0.0f); + wl_param_set.set("glow",(2 - wl->sunGlowSize) * 20 , 0.f, -wl->sunGlowFocus * 5); + wl_param_set.setCloudScrollX(wl->cloudScrollX + 10.0f); + wl_param_set.setCloudScrollY(wl->cloudScrollY + 10.0f); + wl_param_set.setEnableCloudScrollX(!wl->cloudScrollXLock); + wl_param_set.setEnableCloudScrollY(!wl->cloudScrollYLock); + wl_param_set.setStarBrightness(wl->starBrightness); + wl_param_mgr->removeParamSet("Meta7-CurrentRegion",true); + wl_param_mgr->addParamSet( "Meta7-CurrentRegion", wl_param_set); + wl_param_mgr->savePreset( "Meta7-CurrentRegion"); + LLWLParamManager::instance()->mAnimator.mIsRunning = false; + LLWLParamManager::instance()->mAnimator.mUseLindenTime = false; + wl_param_mgr->loadPreset( "Meta7-CurrentRegion",true); + } + } + } + else if (agent_id != gAgent.getID()) { llwarns << "GenericMessage for wrong agent" << llendl; return; } - - std::string request; - LLUUID invoice; - LLDispatcher::sparam_t strings; - LLDispatcher::unpackMessage(msg, request, invoice, strings); - - if(!gGenericDispatcher.dispatch(request, invoice, strings)) + else { - llwarns << "GenericMessage " << request << " failed to dispatch" - << llendl; + std::string request; + LLUUID invoice; + LLDispatcher::sparam_t strings; + LLDispatcher::unpackMessage(msg, request, invoice, strings); + + if(!gGenericDispatcher.dispatch(request, invoice, strings)) + { + llwarns << "GenericMessage " << request << " failed to dispatch" + << llendl; + } } } diff --git a/indra/newview/llviewergenericmessage.h b/indra/newview/llviewergenericmessage.h index 6e1f0945b..6f54a2814 100644 --- a/indra/newview/llviewergenericmessage.h +++ b/indra/newview/llviewergenericmessage.h @@ -30,7 +30,7 @@ * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ - +#include "lluuid.h" #ifndef LLVIEWERGENERICMESSAGE_H #define LLVIEWERGENERICMESSAGE_H diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 77ad620f6..fafe1d942 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -160,6 +160,9 @@ #include "hippofloaterxml.h" #include "llversionviewer.h" +#include "llwlparammanager.h" +#include "llwaterparammanager.h" + #include #if LL_WINDOWS // For Windows specific error handler @@ -3663,6 +3666,12 @@ void process_teleport_finish(LLMessageSystem* msg, void**) gCacheName->setUpstream(sim); */ + //Reset the windlight profile to default + LLWLParamManager::instance()->mAnimator.mIsRunning = false; + LLWLParamManager::instance()->mAnimator.mUseLindenTime = false; + LLWLParamManager::instance()->loadPreset("Default", true); + LLWaterParamManager::instance()->loadPreset("Default",true); + // now, use the circuit info to tell simulator about us! LL_INFOS("Messaging") << "process_teleport_finish() Enabling " << sim_host << " with code " << msg->mOurCircuitCode << LL_ENDL; diff --git a/indra/newview/meta7windlight.h b/indra/newview/meta7windlight.h new file mode 100644 index 000000000..04ce86d46 --- /dev/null +++ b/indra/newview/meta7windlight.h @@ -0,0 +1,131 @@ +/** + * @file lightshare.cpp + * @brief Handler for Meta7 Lightshare (region-side Windlight settings). + * + * Copyright (c) 2010, Tom Meta / Meta7 Project + * + * The source code in this file ("Source Code") is provided to you + * under the terms of the GNU General Public License, version 2.0 + * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in + * this distribution, or online at + * http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + */ + + +#ifndef META7WINDLIGHT_H +#define META7WINDLIGHT_H + +#include "linden_common.h" + +struct M7Color3{ + M7Color3(){}; + M7Color3(F32 pRed, F32 pGreen, F32 pBlue) + { + red=pRed; + green=pGreen; + blue=pBlue; + } + F32 red; + F32 green; + F32 blue; +}; + +struct M7Vector3 { + M7Vector3(){} + M7Vector3(F32 pX, F32 pY, F32 pZ) + { + X=pX; + Y=pY; + Z=pZ; + } + F32 X; + F32 Y; + F32 Z; + +}; + +struct M7Vector2{ + M7Vector2(){} + M7Vector2(F32 pX, F32 pY) + { + X=pX; + Y=pY; + } + F32 X; + F32 Y; + +}; + +struct M7Color4 { + M7Color4(){} + M7Color4(F32 pRed, F32 pGreen, F32 pBlue, F32 pAlpha) + { + red=pRed; + green=pGreen; + blue=pBlue; + alpha=pAlpha; + } + F32 red; + F32 green; + F32 blue; + F32 alpha; +}; + +struct Meta7WindlightPacket { + Meta7WindlightPacket(){} + M7Color3 waterColor; + F32 waterFogDensityExponent; + F32 underwaterFogModifier; + M7Vector3 reflectionWaveletScale; + F32 fresnelScale; + F32 fresnelOffset; + F32 refractScaleAbove; + F32 refractScaleBelow; + F32 blurMultiplier; + M7Vector2 littleWaveDirection; + M7Vector2 bigWaveDirection; + unsigned char normalMapTexture[16]; + M7Color4 horizon; + F32 hazeHorizon; + M7Color4 blueDensity; + F32 hazeDensity; + F32 densityMultiplier; + F32 distanceMultiplier; + M7Color4 sunMoonColor; + F32 sunMoonPosiiton; + M7Color4 ambient; + F32 eastAngle; + F32 sunGlowFocus; + F32 sunGlowSize; + F32 sceneGamma; + F32 starBrightness; + M7Color4 cloudColor; + M7Vector3 cloudXYDensity; + F32 cloudCoverage; + F32 cloudScale; + M7Vector3 cloudDetailXYDensity; + F32 cloudScrollX; + F32 cloudScrollY; + unsigned short maxAltitude; + char cloudScrollXLock; + char cloudScrollYLock; + char drawClassicClouds; + + +}; + +#endif From 1054ea251925af8613ca82aa2f42da0a4b4638b8 Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sun, 27 Mar 2011 16:02:07 +0200 Subject: [PATCH 04/43] Apparently LLQtWebKit 4.7.1 is still broken on Linux --- install.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.xml b/install.xml index ae6a04657..a8bbca00b 100644 --- a/install.xml +++ b/install.xml @@ -929,9 +929,9 @@ anguage Infrstructure (CLI) international standard linux md5sum - b3acc92ca0a7b671bd5e5185fb10fc66 + 5d743c93b970abe685b185de83001a6e url - https://github.com/downloads/siana/SingularityViewer/llqtwebkit-4.7.1-linux-20110317.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20100923.tar.bz2 windows From 9435671d8d9fb230ee3aea05537a1931b5a06546 Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sun, 27 Mar 2011 16:03:06 +0200 Subject: [PATCH 05/43] Remove L$ in status bar and replace by generic icon --- .../dark/textures/status_buy_currency.tga | Bin 777 -> 740 bytes .../textures/status_buy_currency_pressed.tga | Bin 708 -> 626 bytes .../default/textures/status_buy_currency.tga | Bin 3609 -> 3596 bytes .../textures/status_buy_currency_pressed.tga | Bin 3973 -> 3668 bytes .../default/xui/en-us/panel_status_bar.xml | 10 +++++----- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/newview/skins/dark/textures/status_buy_currency.tga b/indra/newview/skins/dark/textures/status_buy_currency.tga index 391265320b177380d018e1ca1b9c399e676c8886..206550cbb54c37d21721af3188de1a952baf597f 100644 GIT binary patch literal 740 zcmZ9Ky=nqM6oqG|2qA^|2*Ex<1qHz$R17Xkf-(M}Vj+qa7IuP_lc*@G;tN=)jg6I^ zFL%Njb;D+hVA@6_d%t*bO5|J67Aa zp_|Pn6c38y9gj!o^Z5)##RxNok)$2#VzIbcYqgrW4s$_=!{P6On7LX>yR6?l8Of@YMeF1JrTS*&Gq2(o+|WKi literal 777 zcmZ9K%W48a5Jh{)Kuk9A6N3BXFAR>xiDrzCg(4#OMDYb~M^x1Dfr9>SC8uNziHokP zJNHz#-DS+934c)&HO~CL_M*dGY{|&*v39olY7Z$B|~UDcx>Y zAZ{Bk77N9JX1Gl@o4sasyWN&Tp`hRK0og3eUkimg^FjTjq^hENk}$yw0x z!oX?+Oxz}>GgVQJfF`ROQn)@IvtrI z*kmZUaNqV0fY(t&3PGJb oo+Fq{CSsA%?{`i);%!d;QvxzDe7-tn9d_oeveyvJY7H;K({nE(I) diff --git a/indra/newview/skins/dark/textures/status_buy_currency_pressed.tga b/indra/newview/skins/dark/textures/status_buy_currency_pressed.tga index 4ade0c06df0293543f1fa70680bca762d6f16993..2b82aef0ff9d3cadf313ab20144c6a26e15f88dd 100644 GIT binary patch literal 626 zcmZva!A^rf6h+^3rLOu3{(vU^h)N(vQx!GDxT3p~mX?Gjw2NVyhK68RbihUkJ0SD*THc}9c5fU2JxgcQ?qxkO1HUrjYeG~-}j;AX*QdI zgMVwsZ9UHe#c_;Wc2AN7IXk;d?l=w(k(HlnN^db{1CH=oaO{)sNlHF`x+h*>Na zkc>SN+))5f+mjb}Xx0z#sRa9BtThR}GxgI5xttPe8f z8)VZqaA3aqc78JpyF%QE=IM*RxVsX%u8X{S5vvZ=dcCGhe0@^~3J%+Fvejxu9jHIH zbR37|VzD4rnr+);Sr#G2SW`%sM^*f6Hlz7`UQ;nLfwl>hs#bI5WHO-`1!6j#p4Dcv zAzo;yACJd%LkZObX__V>ab1^?^GXY97)Fi8tUS*n$&-U1APKJp8V-l&c~BZ4Fo+2p zh1@njV7uM&R<2LPak*R)G%##2O;gT&-zU_<2YcBx*zI=Q9}wn*VMs+$Pz<971qW3P zdeNYHp7SYVW)ww)Tp|%*S#{y<_j?7alRF-dbT}L+fzXm9A#4#bhNHez9bQ(JnjGu+p1o_E@E>_-(Sta$LMYJ@_hgKIC>g9h#!6%RcQbK diff --git a/indra/newview/skins/default/textures/status_buy_currency.tga b/indra/newview/skins/default/textures/status_buy_currency.tga index e4dc5f278a19ee7dd778b45f303a6ba2cad8608e..ec86213984eec4a6e87543b8afc955e04e84f994 100644 GIT binary patch delta 2727 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 Pb+s>Abi zA__i2qoNFpD53}qQb}g4td$>0{-nT~OsXa(nV2!LDpfHUDnH=MeVq|!y6fJ0ukQK2 z^PO|EW${+d-jFL?jZ1C|NBrWZNT3D(a6_HMBbGn>|zKJNnlgR`1A5cklS7_rlH1-rGmu~#GXK;MW(>rp%y{q5U*z7)7UR6&+Q_|2Rq?`8_+}`G28L5JpEOwHA zxTHFvq`JjbUhjEP-*$1^)i<%-(0_Z|>7Cs+w0^iFZMeF_#fQ9`^e>n9V#nE*t^^th zIg?iqWaTr&6MOkB_7$#1UUr_jOYtiQ~cpPw2s)uC5fRfmuo@lVQuZ7>Tq#UP$?21Dq@_?~GOWjwU_JQ( za??&AFC!g!5)tR!6B|=nQAZd?PU3iFQW;CQ`8^3qel`=GtOzcJ5Y5af)SNz!()1)0 zrY6Bjwah<#iQ9jDiDIb;B{K1q&{&V7poo%4q*Q{Dm~+eC$**+XaW)LXGVloO*r%|b zpG2P`6QgDp6LuXYa&@>)SHP;ph*^bxtr#BpDV!IdL}TU&)Mlihedb4KfA~Ap$V8}O zrF6+rtyMu=I|8P83Wc2$@DJTwYW0W*63eR^iGZQS)EMkxHfKXlL9KtMp#LG%<9|R_ z@5kuUYpEA0rk?y8KG(1Qj+ma`KF94JKEi0Oo?8!%_vD$as5hFSX`KesFpj2ynVqh_ zvC5`a@BaOAR!8(^=eKP|=K=*a{X4et$54%Kpr)t^-88UHRt%n1KmSJ*J^TXAKYtc{ z_x}1h?tcCcOgJr={rxkv{qh;k{`5^hZ`+a`28Pq5(It!J1 z0XEl7_%DC>No(goN}M{&LQM9ubZb$|r;g6KZTrFt*!?T$(J9cW5}}Q1;Qc#R{*38s z6Id#YiPlg7%?eu$sof;J%eF`6akYA!#C$)x&H*`e)c7X&o-dXs6lgS6IkCG zihQ@w?&H?tOxD6^y|uhDr?}%~!S#)8$Nd-ZI}6dRlc7Upl;9f*W~T8`bskpfTB*zp zs=j7b<4U$7s9?k-#}&H9%nD4q&!hF@&tY14f_55pps5Z+*)*!XiAf!530(4w-N=?^ zXRumZfYq9OtW?-Bmv0D0HAEx2Y?O13y|H0|94$sI8g6)R;!(F+j84UC{PNr^*6IuK zu+E9)ayw=mIv$5XtB(6@Z+z%Pu7QgROVMa)Nr~$gC8ljE%-GeKv8geYqr|9Qf*$25xTI-lXVTC`v(Dc` z{%g8dl7o8{d6=&&<02zs1^cCPmN2Y=aETEK?_V=Yan&HfxK4}_bq4(Mba7!oUxo}< z&loXXTEJ~b9EpnKr>In+A`%5{$qA9k(HChJ1~d%%v=a1Z$++^!lQGf!pp!^sM4>hi znaWJK>BzbR!66Vlp))8$Bqvf0Jvq3q=FQ#l5S-DpU7r@xQ*}1s`uCX=jk)DSsWlT3 zqYR;>Aw0$Z=MFy~UPEMrQ5p%ixzCU&QyGX*EDLJj&39+uTdyDzs)1LR$*2gYk1`zP zoBS?wa7Z5t+I|%YpKUp-C#R?~?rs!&ls^oPRX Loading... -