Add @viewtransparent and @viewwireframe
parent
e39c6a43c5
commit
72d6aff610
|
|
@ -1214,11 +1214,11 @@ class LLAdvancedToggleWireframe : public view_listener_t
|
|||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
// [RLVa:KB] - Checked: RLVa-2.0.0
|
||||
bool fRlvBlockWireframe = gRlvAttachmentLocks.hasLockedHUD();
|
||||
if ( (!gUseWireframe) && (fRlvBlockWireframe) )
|
||||
// [RLVa:KB] - @detach and @viewwireframe
|
||||
const bool fRlvCanViewWireframe = RlvActions::canViewWireframe();
|
||||
if ( (!gUseWireframe) && (!fRlvCanViewWireframe) )
|
||||
RlvUtil::notifyBlocked(RlvStringKeys::Blocked::Wireframe);
|
||||
set_use_wireframe( (!gUseWireframe) && (!fRlvBlockWireframe) );
|
||||
set_use_wireframe( (!gUseWireframe) && (fRlvCanViewWireframe) );
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -8672,8 +8672,8 @@ class LLViewHighlightTransparent : public view_listener_t
|
|||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
// LLDrawPoolAlpha::sShowDebugAlpha = !LLDrawPoolAlpha::sShowDebugAlpha;
|
||||
// [RLVa:KB] - Checked: 2010-11-29 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c
|
||||
LLDrawPoolAlpha::sShowDebugAlpha = (!LLDrawPoolAlpha::sShowDebugAlpha) && (!gRlvHandler.hasBehaviour(RLV_BHVR_EDIT));
|
||||
// [RLVa:KB] - @edit and @viewtransparent
|
||||
LLDrawPoolAlpha::sShowDebugAlpha = (!LLDrawPoolAlpha::sShowDebugAlpha) && (RlvActions::canHighlightTransparent());
|
||||
// [/RLVa:KB]
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -584,6 +584,28 @@ bool RlvActions::canShowLocation()
|
|||
return !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// World (General)
|
||||
//
|
||||
|
||||
bool RlvActions::canHighlightTransparent()
|
||||
{
|
||||
// User cannot highlight transparent faces if:
|
||||
// - prevented from editing (exceptions are not taken into account)
|
||||
// - specifically prevented from highlight transparent faces
|
||||
return !gRlvHandler.hasBehaviour(RLV_BHVR_EDIT) && !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC);
|
||||
}
|
||||
|
||||
bool RlvActions::canViewWireframe()
|
||||
{
|
||||
// User can use wireframe rendering if:
|
||||
// - no HUD attachment is (remove) locked
|
||||
// - not specifically prevented from using wireframe mode
|
||||
return
|
||||
!gRlvAttachmentLocks.hasLockedHUD() && // Trivial function so no overhead when RLV is not enabled
|
||||
!gRlvHandler.hasBehaviour(RLV_BHVR_VIEWWIREFRAME);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Helper functions
|
||||
//
|
||||
|
|
|
|||
|
|
@ -300,6 +300,20 @@ public:
|
|||
*/
|
||||
static bool canTouch(const LLViewerObject* pObj, const LLVector3& posOffset = LLVector3::zero);
|
||||
|
||||
// ===============
|
||||
// World (General)
|
||||
// ===============
|
||||
public:
|
||||
/*
|
||||
* Returns true if the user can highlight transparent faces
|
||||
*/
|
||||
static bool canHighlightTransparent();
|
||||
|
||||
/*
|
||||
* Returns true if the user can switch to wireframe rendering
|
||||
*/
|
||||
static bool canViewWireframe();
|
||||
|
||||
// ================
|
||||
// Helper functions
|
||||
// ================
|
||||
|
|
|
|||
|
|
@ -157,6 +157,8 @@ enum ERlvBehaviour {
|
|||
RLV_BHVR_BUY, // "buy"
|
||||
RLV_BHVR_EDIT, // "edit"
|
||||
RLV_BHVR_EDITOBJ, // "editobj"
|
||||
RLV_BHVR_VIEWTRANSPARENT,
|
||||
RLV_BHVR_VIEWWIREFRAME,
|
||||
RLV_BHVR_PAY, // "pay"
|
||||
RLV_BHVR_REZ, // "rez"
|
||||
RLV_BHVR_FARTOUCH, // "fartouch"
|
||||
|
|
|
|||
|
|
@ -2612,6 +2612,26 @@ void RlvBehaviourShowSelfToggleHandler::onCommandToggle(ERlvBehaviour eBvhr, boo
|
|||
gAgentAvatarp->updateAttachmentVisibility(gAgentCamera.getCameraMode());
|
||||
}
|
||||
|
||||
// Handles: @viewtransparent toggles
|
||||
template<> template<>
|
||||
void RlvBehaviourToggleHandler<RLV_BHVR_VIEWTRANSPARENT>::onCommandToggle(ERlvBehaviour eBhvr, bool fHasBhvr)
|
||||
{
|
||||
if (fHasBhvr)
|
||||
{
|
||||
LLDrawPoolAlpha::sShowDebugAlpha = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Handles: @viewwireframe toggles
|
||||
template<> template<>
|
||||
void RlvBehaviourToggleHandler<RLV_BHVR_VIEWWIREFRAME>::onCommandToggle(ERlvBehaviour eBhvr, bool fHasBhvr)
|
||||
{
|
||||
if (fHasBhvr)
|
||||
{
|
||||
set_use_wireframe(false);
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Command handlers (RLV_TYPE_FORCE)
|
||||
//
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ RlvBehaviourDictionary::RlvBehaviourDictionary()
|
|||
addEntry(new RlvBehaviourInfo("detachallthis_except", RLV_BHVR_DETACHTHISEXCEPT, RLV_TYPE_ADDREM, RlvBehaviourInfo::FORCEWEAR_SUBTREE));
|
||||
addEntry(new RlvBehaviourGenericToggleProcessor<RLV_BHVR_EDIT, RLV_OPTION_NONE_OR_EXCEPTION>("edit"));
|
||||
addEntry(new RlvBehaviourGenericProcessor<RLV_OPTION_EXCEPTION>("editobj", RLV_BHVR_EDITOBJ));
|
||||
addEntry(new RlvBehaviourGenericToggleProcessor<RLV_BHVR_VIEWTRANSPARENT, RLV_OPTION_NONE>("viewtransparent", RlvBehaviourInfo::BHVR_EXPERIMENTAL));
|
||||
addEntry(new RlvBehaviourGenericToggleProcessor<RLV_BHVR_VIEWWIREFRAME, RLV_OPTION_NONE>("viewwireframe", RlvBehaviourInfo::BHVR_EXPERIMENTAL));
|
||||
addEntry(new RlvBehaviourGenericProcessor<RLV_OPTION_NONE>("emote", RLV_BHVR_EMOTE));
|
||||
addEntry(new RlvBehaviourGenericProcessor<RLV_OPTION_NONE_OR_MODIFIER>("fartouch", RLV_BHVR_FARTOUCH));
|
||||
addModifier(RLV_BHVR_FARTOUCH, RLV_MODIFIER_FARTOUCHDIST, new RlvBehaviourModifier("Fartouch Distance", RLV_MODIFIER_FARTOUCH_DEFAULT, true, new RlvBehaviourModifierCompMin));
|
||||
|
|
|
|||
Loading…
Reference in New Issue