FIRE-5583, FIRE-5220: Experimental setting to show Camera Controls always opaque

* TT_FORCE_OPAQUE forces camera floater alpha to go beyond the range of 0-1 - to 10, what overwrites background images alpha values from skins, without manually modifying them. I didn't encountered any errors while testing.
master
PanteraPolnocy 2012-12-25 12:15:35 +01:00
parent 3a2de425e7
commit 57ab84cac2
7 changed files with 53 additions and 1 deletions

View File

@ -1001,6 +1001,13 @@ F32 LLUICtrl::getCurrentTransparency()
case TT_FADING:
alpha = sInactiveControlTransparency / 2;
break;
// <FS:PP> FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
case TT_FORCE_OPAQUE:
alpha = 10;
break;
// </FS:PP>
}
return alpha;

View File

@ -134,6 +134,7 @@ public:
TT_ACTIVE, // focused floater
TT_INACTIVE, // other floaters
TT_FADING, // fading toast
TT_FORCE_OPAQUE, // forced opaqueness (alpha = 10) for FIRE-5583, FIRE-5220 (option to show Camera Controls always opaque)
};
/*virtual*/ ~LLUICtrl();

View File

@ -19239,5 +19239,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>1</integer>
</map>
<key>FSAlwaysOpaqueCameraControls</key>
<map>
<key>Comment</key>
<string>Show Camera Controls always opaque</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
</map>
</llsd>

View File

@ -314,6 +314,7 @@ void LLFloaterCamera::onOpen(const LLSD& key)
LLFirstUse::viewPopup();
mZoom->onOpen(key);
setCameraFloaterTransparencyMode(LLSD(gSavedSettings.getBOOL("FSAlwaysOpaqueCameraControls"))); // <FS:PP> FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
// Returns to previous mode, see EXT-2727(View tool should remember state).
// In case floater was just hidden and it isn't reset the mode
@ -354,7 +355,11 @@ LLFloaterCamera::LLFloaterCamera(const LLSD& val)
// virtual
BOOL LLFloaterCamera::postBuild()
{
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
// <FS:PP> FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
// updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
gSavedSettings.getControl("FSAlwaysOpaqueCameraControls")->getSignal()->connect(boost::bind(&LLFloaterCamera::setCameraFloaterTransparencyMode, this, _2));
// </FS:PP>
mRotate = getChild<LLJoystickCameraRotate>(ORBIT);
mZoom = findChild<LLPanelCameraZoom>(ZOOM);
@ -380,6 +385,20 @@ BOOL LLFloaterCamera::postBuild()
return LLFloater::postBuild();
}
// <FS:PP> FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
void LLFloaterCamera::setCameraFloaterTransparencyMode(const LLSD &data)
{
if(data.asBoolean())
{
updateTransparency(TT_FORCE_OPAQUE);
}
else
{
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
}
}
// </FS:PP>
void LLFloaterCamera::fillFlatlistFromPanel (LLFlatListView* list, LLPanel* panel)
{
// copying child list and then iterating over a copy, because list itself

View File

@ -81,6 +81,8 @@ public:
LLPanelCameraZoom* mZoom;
LLJoystickCameraTrack* mTrack;
void setCameraFloaterTransparencyMode(const LLSD &data); // <FS:PP> FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
private:
LLFloaterCamera(const LLSD& val);

View File

@ -530,6 +530,17 @@
text_color="White_25">
(requires restart)
</text>
<check_box
top_pad="0"
follows="left|top"
height="16"
label="Show the default camera controls minifloater always as opaque"
layout="topleft"
left="30"
name="FSAlwaysOpaqueCameraControls"
width="350"
control_name="FSAlwaysOpaqueCameraControls"/>
<check_box
top_pad="12"

View File

@ -60,6 +60,7 @@
<check_box label="Wyłącz minimalną odległość przybliżenia kamery" name="disableminzoomdist" tool_tip="Wyłącz ograniczenie w przybliżaniu obiektów."/>
<check_box label="Obracaj awatara w stronę patrzenia kamery podczas resetowania widoku" name="resetviewturnsavatar" tool_tip="Po zresetowaniu widoku (lub naciśnięciu klawisza ESC) kierunek patrzenia kamery zostaje zachowany, a awatar - obrócony w jego stronę."/>
<check_box label="Przenikanie kamery przez primy bez ograniczeń" name="ignorecameraconstraints" tool_tip="Ignoruje 'pchnięcie' stosowane przez symulator, aby utrzymać kamerę na zewnątrz obiektów."/>
<check_box label="Pokazuj standardowe, małe okienko sterowania kamerą zawsze jako nieprzezroczyste" name="FSAlwaysOpaqueCameraControls"/>
<text name="ignorecameraconstraints_requires_restart">
(wymaga restartu)
</text>