SL-10982 [EEP] Personal Lighting - Add options to select water maps / cloud textures
parent
11d1c28d82
commit
ce9cf1027f
|
|
@ -32,8 +32,10 @@
|
|||
#include "llslider.h"
|
||||
#include "llsliderctrl.h"
|
||||
#include "llcolorswatch.h"
|
||||
#include "lltexturectrl.h"
|
||||
#include "llvirtualtrackball.h"
|
||||
#include "llenvironment.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
//=========================================================================
|
||||
namespace
|
||||
|
|
@ -46,6 +48,8 @@ namespace
|
|||
const std::string FIELD_SKY_HAZE_HORIZON("haze_horizon");
|
||||
const std::string FIELD_SKY_HAZE_DENSITY("haze_density");
|
||||
const std::string FIELD_SKY_CLOUD_COVERAGE("cloud_coverage");
|
||||
const std::string FIELD_SKY_CLOUD_MAP("cloud_map");
|
||||
const std::string FIELD_WATER_NORMAL_MAP("water_normal_map");
|
||||
const std::string FIELD_SKY_CLOUD_SCALE("cloud_scale");
|
||||
const std::string FIELD_SKY_SCENE_GAMMA("scene_gamma");
|
||||
const std::string FIELD_SKY_SUN_ROTATION("sun_rotation");
|
||||
|
|
@ -97,6 +101,14 @@ BOOL LLFloaterEnvironmentAdjust::postBuild()
|
|||
getChild<LLUICtrl>(FIELD_SKY_MOON_ROTATION)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMoonRotationChanged(); });
|
||||
getChild<LLUICtrl>(BTN_RESET)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onButtonReset(); });
|
||||
|
||||
getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onCloudMapChanged(); });
|
||||
getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setDefaultImageAssetID(LLSettingsSky::GetDefaultCloudNoiseTextureId());
|
||||
getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setAllowNoTexture(TRUE);
|
||||
|
||||
getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setDefaultImageAssetID(LLSettingsWater::GetDefaultWaterNormalAssetId());
|
||||
getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setBlankImageAssetID(LLUUID(gSavedSettings.getString("DefaultBlankNormalTexture")));
|
||||
getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onWaterMapChanged(); });
|
||||
|
||||
refresh();
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -115,6 +127,7 @@ void LLFloaterEnvironmentAdjust::onClose(bool app_quitting)
|
|||
{
|
||||
mEventConnection.disconnect();
|
||||
mLiveSky.reset();
|
||||
mLiveWater.reset();
|
||||
LLFloater::onClose(app_quitting);
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +135,7 @@ void LLFloaterEnvironmentAdjust::onClose(bool app_quitting)
|
|||
//-------------------------------------------------------------------------
|
||||
void LLFloaterEnvironmentAdjust::refresh()
|
||||
{
|
||||
if (!mLiveSky)
|
||||
if (!mLiveSky || !mLiveWater)
|
||||
{
|
||||
setAllChildrenEnabled(FALSE);
|
||||
return;
|
||||
|
|
@ -142,6 +155,9 @@ void LLFloaterEnvironmentAdjust::refresh()
|
|||
getChild<LLUICtrl>(FIELD_SKY_CLOUD_SCALE)->setValue(mLiveSky->getCloudScale());
|
||||
getChild<LLColorSwatchCtrl>(FIELD_SKY_SUN_COLOR)->set(mLiveSky->getSunlightColor() / SLIDER_SCALE_SUN_AMBIENT);
|
||||
|
||||
getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setValue(mLiveSky->getCloudNoiseTextureId());
|
||||
getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setValue(mLiveWater->getNormalMapID());
|
||||
|
||||
LLColor3 glow(mLiveSky->getGlow());
|
||||
|
||||
// takes 40 - 0.2 range -> 0 - 1.99 UI range
|
||||
|
|
@ -165,22 +181,26 @@ void LLFloaterEnvironmentAdjust::captureCurrentEnvironment()
|
|||
if (environment.getEnvironmentDay(LLEnvironment::ENV_LOCAL))
|
||||
{ // We have a full day cycle in the local environment. Freeze the sky
|
||||
mLiveSky = environment.getEnvironmentFixedSky(LLEnvironment::ENV_LOCAL)->buildClone();
|
||||
mLiveWater = environment.getEnvironmentFixedWater(LLEnvironment::ENV_LOCAL)->buildClone();
|
||||
updatelocal = true;
|
||||
}
|
||||
else
|
||||
{ // otherwise we can just use the sky.
|
||||
mLiveSky = environment.getEnvironmentFixedSky(LLEnvironment::ENV_LOCAL);
|
||||
mLiveWater = environment.getEnvironmentFixedWater(LLEnvironment::ENV_LOCAL);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mLiveSky = environment.getEnvironmentFixedSky(LLEnvironment::ENV_PARCEL, true)->buildClone();
|
||||
mLiveWater = environment.getEnvironmentFixedWater(LLEnvironment::ENV_PARCEL, true)->buildClone();
|
||||
updatelocal = true;
|
||||
}
|
||||
|
||||
if (updatelocal)
|
||||
{
|
||||
environment.setEnvironment(LLEnvironment::ENV_LOCAL, mLiveSky, FLOATER_ENVIRONMENT_UPDATE);
|
||||
environment.setEnvironment(LLEnvironment::ENV_LOCAL, mLiveWater, FLOATER_ENVIRONMENT_UPDATE);
|
||||
}
|
||||
environment.setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
environment.updateEnvironment(LLEnvironment::TRANSITION_INSTANT);
|
||||
|
|
@ -322,6 +342,22 @@ void LLFloaterEnvironmentAdjust::onMoonRotationChanged()
|
|||
mLiveSky->update();
|
||||
}
|
||||
|
||||
void LLFloaterEnvironmentAdjust::onCloudMapChanged()
|
||||
{
|
||||
if (!mLiveSky)
|
||||
return;
|
||||
mLiveSky->setCloudNoiseTextureId(getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->getValue().asUUID());
|
||||
mLiveSky->update();
|
||||
}
|
||||
|
||||
void LLFloaterEnvironmentAdjust::onWaterMapChanged()
|
||||
{
|
||||
if (!mLiveWater)
|
||||
return;
|
||||
mLiveWater->setNormalMapID(getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->getValue().asUUID());
|
||||
mLiveWater->update();
|
||||
}
|
||||
|
||||
void LLFloaterEnvironmentAdjust::onSunColorChanged()
|
||||
{
|
||||
if (!mLiveSky)
|
||||
|
|
|
|||
|
|
@ -77,11 +77,15 @@ private:
|
|||
|
||||
void onMoonRotationChanged();
|
||||
|
||||
void onCloudMapChanged();
|
||||
void onWaterMapChanged();
|
||||
|
||||
void onButtonReset();
|
||||
|
||||
void onEnvironmentUpdated(LLEnvironment::EnvSelection_t env, S32 version);
|
||||
|
||||
LLSettingsSky::ptr_t mLiveSky;
|
||||
LLSettingsWater::ptr_t mLiveWater;
|
||||
LLEnvironment::connection_t mEventConnection;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@
|
|||
save_rect="false"
|
||||
title="Personal Lighting"
|
||||
width="845"
|
||||
height="230"
|
||||
height="240"
|
||||
min_width="500"
|
||||
min_height="225"
|
||||
min_height="235"
|
||||
single_instance="true"
|
||||
can_resize="false">
|
||||
<layout_stack name="outer_stack"
|
||||
width="845"
|
||||
height="220"
|
||||
height="230"
|
||||
follows="all"
|
||||
animate="false"
|
||||
top="0"
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
width="80">Ambient:</text>
|
||||
<color_swatch can_apply_immediately="true"
|
||||
follows="left|top"
|
||||
height="37"
|
||||
height="40"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
width="80">Blue Horizon:</text>
|
||||
<color_swatch can_apply_immediately="true"
|
||||
follows="left|top"
|
||||
height="37"
|
||||
height="40"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
width="80">Blue Density:</text>
|
||||
<color_swatch can_apply_immediately="true"
|
||||
follows="left|top"
|
||||
height="37"
|
||||
height="40"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
|
|
@ -97,12 +97,12 @@
|
|||
<text follows="right|top"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
right="-10"
|
||||
right="-12"
|
||||
top="5"
|
||||
width="60">Sun Color:</text>
|
||||
<color_swatch can_apply_immediately="true"
|
||||
follows="left|top"
|
||||
height="37"
|
||||
height="10"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
|
|
@ -113,17 +113,43 @@
|
|||
height="10"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="10"
|
||||
top_pad="5"
|
||||
width="80">Cloud Color:</text>
|
||||
<color_swatch can_apply_immediately="true"
|
||||
follows="left|top"
|
||||
height="37"
|
||||
height="10"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="cloud_color"
|
||||
top_pad="5"
|
||||
width="60"/>
|
||||
<text follows="left|top"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="10"
|
||||
name="cloud_map_label"
|
||||
width="80">Cloud Image:</text>
|
||||
<texture_picker height="63"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="cloud_map"
|
||||
top_pad="5"
|
||||
width="60"/>
|
||||
<text follows="left|top"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="-13"
|
||||
name="cloud_map_label"
|
||||
width="80">Water Image:</text>
|
||||
<texture_picker height="63"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="water_normal_map"
|
||||
top_pad="5"
|
||||
width="60"/>
|
||||
</layout_panel>
|
||||
<layout_panel border="false"
|
||||
bevel_style="in"
|
||||
|
|
@ -257,7 +283,7 @@
|
|||
layout="topleft"
|
||||
name="sunbeacon"
|
||||
left_delta="55"
|
||||
bottom="-10"
|
||||
bottom="-20"
|
||||
follows="bottom|right"/>
|
||||
<text follows="left|top"
|
||||
height="10"
|
||||
|
|
@ -366,7 +392,7 @@
|
|||
layout="topleft"
|
||||
name="moonbeacon"
|
||||
right="-50"
|
||||
bottom="-10"
|
||||
bottom="-20"
|
||||
follows="bottom|right"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
|
|
|||
Loading…
Reference in New Issue