Selectable cloud textures (from Alchemy)
Option is in Clouds tab of the Advanced Sky Editor.
This commit is contained in:
@@ -222,6 +222,17 @@
|
|||||||
<string>Boolean</string>
|
<string>Boolean</string>
|
||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
</map>
|
||||||
|
<key>AlchemyWLCloudTexture</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Name of local cloud texture to use for windlight</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>String</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<string>Default.tga</string>
|
||||||
</map>
|
</map>
|
||||||
<key>AscentPowerfulWizard</key>
|
<key>AscentPowerfulWizard</key>
|
||||||
<map>
|
<map>
|
||||||
|
|||||||
BIN
indra/newview/app_settings/windlight/clouds/Altocumulus.tga
Normal file
BIN
indra/newview/app_settings/windlight/clouds/Altocumulus.tga
Normal file
Binary file not shown.
BIN
indra/newview/app_settings/windlight/clouds/Cumulo-Nimbus.tga
Normal file
BIN
indra/newview/app_settings/windlight/clouds/Cumulo-Nimbus.tga
Normal file
Binary file not shown.
BIN
indra/newview/app_settings/windlight/clouds/Layered.tga
Normal file
BIN
indra/newview/app_settings/windlight/clouds/Layered.tga
Normal file
Binary file not shown.
@@ -47,6 +47,7 @@
|
|||||||
#include "llviewerregion.h"
|
#include "llviewerregion.h"
|
||||||
#include "llface.h"
|
#include "llface.h"
|
||||||
#include "llrender.h"
|
#include "llrender.h"
|
||||||
|
#include "llviewercontrol.h"
|
||||||
|
|
||||||
LLPointer<LLViewerTexture> LLDrawPoolWLSky::sCloudNoiseTexture = NULL;
|
LLPointer<LLViewerTexture> LLDrawPoolWLSky::sCloudNoiseTexture = NULL;
|
||||||
|
|
||||||
@@ -59,7 +60,11 @@ static LLGLSLShader* star_shader = NULL;
|
|||||||
LLDrawPoolWLSky::LLDrawPoolWLSky(void) :
|
LLDrawPoolWLSky::LLDrawPoolWLSky(void) :
|
||||||
LLDrawPool(POOL_WL_SKY)
|
LLDrawPool(POOL_WL_SKY)
|
||||||
{
|
{
|
||||||
const std::string cloudNoiseFilename(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", "clouds2.tga"));
|
std::string cloudNoiseFilename(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/clouds", gSavedSettings.getString("AlchemyWLCloudTexture")));
|
||||||
|
if (!gDirUtilp->fileExists(cloudNoiseFilename))
|
||||||
|
{
|
||||||
|
cloudNoiseFilename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/clouds", "Default.tga");
|
||||||
|
}
|
||||||
llinfos << "loading WindLight cloud noise from " << cloudNoiseFilename << llendl;
|
llinfos << "loading WindLight cloud noise from " << cloudNoiseFilename << llendl;
|
||||||
|
|
||||||
LLPointer<LLImageFormatted> cloudNoiseFile(LLImageFormatted::createFromExtension(cloudNoiseFilename));
|
LLPointer<LLImageFormatted> cloudNoiseFile(LLImageFormatted::createFromExtension(cloudNoiseFilename));
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ private:
|
|||||||
void renderSkyClouds(F32 camHeightLocal) const;
|
void renderSkyClouds(F32 camHeightLocal) const;
|
||||||
void renderHeavenlyBodies();
|
void renderHeavenlyBodies();
|
||||||
|
|
||||||
private:
|
public:
|
||||||
static LLPointer<LLViewerTexture> sCloudNoiseTexture;
|
static LLPointer<LLViewerTexture> sCloudNoiseTexture;
|
||||||
static LLPointer<LLImageRaw> sCloudNoiseRawImage;
|
static LLPointer<LLImageRaw> sCloudNoiseRawImage;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -77,6 +77,8 @@
|
|||||||
#include "llworldmapview.h"
|
#include "llworldmapview.h"
|
||||||
#include "llnetmap.h"
|
#include "llnetmap.h"
|
||||||
#include "llrender.h"
|
#include "llrender.h"
|
||||||
|
#include "lldrawpoolwlsky.h"
|
||||||
|
#include "llwlparammanager.h"
|
||||||
#include "aistatemachine.h"
|
#include "aistatemachine.h"
|
||||||
#include "aithreadsafe.h"
|
#include "aithreadsafe.h"
|
||||||
#include "lldrawpoolbump.h"
|
#include "lldrawpoolbump.h"
|
||||||
@@ -573,6 +575,44 @@ bool handleVelocityInterpolate(const LLSD& newvalue)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool handleWindlightCloudChanged(const LLSD& new_value)
|
||||||
|
{
|
||||||
|
std::string cloudNoiseFilename(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/clouds", new_value.asString()));
|
||||||
|
if (!gDirUtilp->fileExists(cloudNoiseFilename))
|
||||||
|
{
|
||||||
|
cloudNoiseFilename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/clouds", "Default.tga");
|
||||||
|
}
|
||||||
|
llinfos << "loading WindLight cloud noise from " << cloudNoiseFilename << LL_ENDL;
|
||||||
|
|
||||||
|
LLPointer<LLImageFormatted> cloudNoiseFile(LLImageFormatted::createFromExtension(cloudNoiseFilename));
|
||||||
|
|
||||||
|
if (cloudNoiseFile.isNull())
|
||||||
|
{
|
||||||
|
llwarns << "Error: Failed to load cloud noise image " << cloudNoiseFilename << LL_ENDL;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cloudNoiseFile->load(cloudNoiseFilename))
|
||||||
|
{
|
||||||
|
LLDrawPoolWLSky::sCloudNoiseRawImage = new LLImageRaw();
|
||||||
|
|
||||||
|
if (cloudNoiseFile->decode(LLDrawPoolWLSky::sCloudNoiseRawImage, 0.0f))
|
||||||
|
{
|
||||||
|
//debug use
|
||||||
|
lldebugs << "cloud noise raw image width: " << LLDrawPoolWLSky::sCloudNoiseRawImage->getWidth() << " : height: " << LLDrawPoolWLSky::sCloudNoiseRawImage->getHeight() << " : components: " <<
|
||||||
|
(S32) LLDrawPoolWLSky::sCloudNoiseRawImage->getComponents() << " : data size: " << LLDrawPoolWLSky::sCloudNoiseRawImage->getDataSize() << LL_ENDL;
|
||||||
|
llassert_always(LLDrawPoolWLSky::sCloudNoiseRawImage->getData());
|
||||||
|
|
||||||
|
LLDrawPoolWLSky::sCloudNoiseTexture = LLViewerTextureManager::getLocalTexture(LLDrawPoolWLSky::sCloudNoiseRawImage.get(), TRUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLDrawPoolWLSky::sCloudNoiseRawImage = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool handleCloudSettingsChanged(const LLSD& newvalue)
|
bool handleCloudSettingsChanged(const LLSD& newvalue)
|
||||||
{
|
{
|
||||||
bool bCloudsEnabled = gSavedSettings.getBOOL("CloudsEnabled");
|
bool bCloudsEnabled = gSavedSettings.getBOOL("CloudsEnabled");
|
||||||
@@ -782,6 +822,7 @@ void settings_setup_listeners()
|
|||||||
gSavedSettings.getControl("CloudsEnabled")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _2));
|
gSavedSettings.getControl("CloudsEnabled")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _2));
|
||||||
gSavedSettings.getControl("SkyUseClassicClouds")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _2));
|
gSavedSettings.getControl("SkyUseClassicClouds")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _2));
|
||||||
gSavedSettings.getControl("RenderTransparentWater")->getSignal()->connect(boost::bind(&handleRenderTransparentWaterChanged, _2));
|
gSavedSettings.getControl("RenderTransparentWater")->getSignal()->connect(boost::bind(&handleRenderTransparentWaterChanged, _2));
|
||||||
|
gSavedSettings.getControl("AlchemyWLCloudTexture")->getSignal()->connect(boost::bind(&handleWindlightCloudChanged, _2));
|
||||||
|
|
||||||
gSavedSettings.getControl("AscentAvatarXModifier")->getSignal()->connect(boost::bind(&handleAscentAvatarModifier, _2));
|
gSavedSettings.getControl("AscentAvatarXModifier")->getSignal()->connect(boost::bind(&handleAscentAvatarModifier, _2));
|
||||||
gSavedSettings.getControl("AscentAvatarYModifier")->getSignal()->connect(boost::bind(&handleAscentAvatarModifier, _2));
|
gSavedSettings.getControl("AscentAvatarYModifier")->getSignal()->connect(boost::bind(&handleAscentAvatarModifier, _2));
|
||||||
|
|||||||
@@ -585,6 +585,40 @@
|
|||||||
name="DrawClassicClouds" width="200" />
|
name="DrawClassicClouds" width="200" />
|
||||||
<button bottom="-102" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
<button bottom="-102" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||||
left="608" name="WLClassicCloudsHelp" width="18" />
|
left="608" name="WLClassicCloudsHelp" width="18" />
|
||||||
|
<text
|
||||||
|
name="cloud_settings_title"
|
||||||
|
follows="top|left"
|
||||||
|
height="16"
|
||||||
|
left="480"
|
||||||
|
bottom_delta="-17"
|
||||||
|
width="76">
|
||||||
|
Cloud Setting
|
||||||
|
</text>
|
||||||
|
<combo_box
|
||||||
|
follows="top|left"
|
||||||
|
control_name="AlchemyWLCloudTexture"
|
||||||
|
name="cloud_settings_preset_combo"
|
||||||
|
left_delta="76"
|
||||||
|
bottom_delta="2"
|
||||||
|
height="14"
|
||||||
|
width="110">
|
||||||
|
<combo_box.item
|
||||||
|
label="Altocumulus"
|
||||||
|
name="altocumulus_cloud"
|
||||||
|
value="Altocumulus.tga"/>
|
||||||
|
<combo_box.item
|
||||||
|
label="Cumulo-Nimbus"
|
||||||
|
name="cumulonimbus_cloud"
|
||||||
|
value="Cumulo-Nimbus.tga"/>
|
||||||
|
<combo_box.item
|
||||||
|
label="Default"
|
||||||
|
name="default_cloud"
|
||||||
|
value="Default.tga"/>
|
||||||
|
<combo_box.item
|
||||||
|
label="Layered"
|
||||||
|
name="layered_cloud"
|
||||||
|
value="Layered.tga"/>
|
||||||
|
</combo_box>
|
||||||
</panel>
|
</panel>
|
||||||
</tab_container>
|
</tab_container>
|
||||||
<string name="WLDefaultSkyNames">
|
<string name="WLDefaultSkyNames">
|
||||||
|
|||||||
Reference in New Issue
Block a user