diff options
Diffstat (limited to 'indra/newview/llhudobject.cpp')
-rw-r--r-- | indra/newview/llhudobject.cpp | 398 |
1 files changed, 199 insertions, 199 deletions
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index 292045f25d..e922e8230c 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -1,25 +1,25 @@ -/** +/** * @file llhudobject.cpp * @brief LLHUDObject class implementation * * $LicenseInfo:firstyear=2002&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2002-2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -46,24 +46,24 @@ std::list<LLPointer<LLHUDObject> > LLHUDObject::sHUDObjects; struct hud_object_further_away { - bool operator()(const LLPointer<LLHUDObject>& lhs, const LLPointer<LLHUDObject>& rhs) const; + bool operator()(const LLPointer<LLHUDObject>& lhs, const LLPointer<LLHUDObject>& rhs) const; }; bool hud_object_further_away::operator()(const LLPointer<LLHUDObject>& lhs, const LLPointer<LLHUDObject>& rhs) const { - return (lhs->getDistance() > rhs->getDistance()) ? true : false; + return (lhs->getDistance() > rhs->getDistance()) ? true : false; } -LLHUDObject::LLHUDObject(const U8 type) : - mPositionGlobal(), - mSourceObject(NULL), - mTargetObject(NULL) +LLHUDObject::LLHUDObject(const U8 type) : + mPositionGlobal(), + mSourceObject(NULL), + mTargetObject(NULL) { - mVisible = TRUE; - mType = type; - mDead = FALSE; + mVisible = TRUE; + mType = type; + mDead = FALSE; } LLHUDObject::~LLHUDObject() @@ -72,184 +72,184 @@ LLHUDObject::~LLHUDObject() void LLHUDObject::markDead() { - mVisible = FALSE; - mDead = TRUE; - mSourceObject = NULL; - mTargetObject = NULL; + mVisible = FALSE; + mDead = TRUE; + mSourceObject = NULL; + mTargetObject = NULL; } F32 LLHUDObject::getDistance() const { - return 0.f; + return 0.f; } void LLHUDObject::setSourceObject(LLViewerObject* objectp) { - if (objectp == mSourceObject) - { - return; - } + if (objectp == mSourceObject) + { + return; + } - mSourceObject = objectp; + mSourceObject = objectp; } void LLHUDObject::setTargetObject(LLViewerObject* objectp) { - if (objectp == mTargetObject) - { - return; - } + if (objectp == mTargetObject) + { + return; + } - mTargetObject = objectp; + mTargetObject = objectp; } void LLHUDObject::setPositionGlobal(const LLVector3d &position_global) { - mPositionGlobal = position_global; + mPositionGlobal = position_global; } void LLHUDObject::setPositionAgent(const LLVector3 &position_agent) { - mPositionGlobal = gAgent.getPosGlobalFromAgent(position_agent); + mPositionGlobal = gAgent.getPosGlobalFromAgent(position_agent); } // static void LLHUDObject::cleanupHUDObjects() { - LLHUDIcon::cleanupDeadIcons(); - hud_object_list_t::iterator object_it; - for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ++object_it) - { - (*object_it)->markDead(); - if ((*object_it)->getNumRefs() > 1) - { - LL_INFOS() << "LLHUDObject " << (LLHUDObject *)(*object_it) << " type " << (S32)(*object_it)->getType() << " has " << (*object_it)->getNumRefs() << " refs!" << LL_ENDL; - } - } - sHUDObjects.clear(); + LLHUDIcon::cleanupDeadIcons(); + hud_object_list_t::iterator object_it; + for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ++object_it) + { + (*object_it)->markDead(); + if ((*object_it)->getNumRefs() > 1) + { + LL_INFOS() << "LLHUDObject " << (LLHUDObject *)(*object_it) << " type " << (S32)(*object_it)->getType() << " has " << (*object_it)->getNumRefs() << " refs!" << LL_ENDL; + } + } + sHUDObjects.clear(); } // static LLHUDObject *LLHUDObject::addHUDObject(const U8 type) { - LLHUDObject *hud_objectp = NULL; - - switch (type) - { - case LL_HUD_TEXT: - hud_objectp = new LLHUDText(type); - break; - case LL_HUD_ICON: - hud_objectp = new LLHUDIcon(type); - break; - case LL_HUD_NAME_TAG: - hud_objectp = new LLHUDNameTag(type); - break; - default: - LL_WARNS() << "Unknown type of hud object:" << (U32) type << LL_ENDL; - } - if (hud_objectp) - { - sHUDObjects.push_back(hud_objectp); - } - return hud_objectp; + LLHUDObject *hud_objectp = NULL; + + switch (type) + { + case LL_HUD_TEXT: + hud_objectp = new LLHUDText(type); + break; + case LL_HUD_ICON: + hud_objectp = new LLHUDIcon(type); + break; + case LL_HUD_NAME_TAG: + hud_objectp = new LLHUDNameTag(type); + break; + default: + LL_WARNS() << "Unknown type of hud object:" << (U32) type << LL_ENDL; + } + if (hud_objectp) + { + sHUDObjects.push_back(hud_objectp); + } + return hud_objectp; } LLHUDEffect *LLHUDObject::addHUDEffect(const U8 type) { - LLHUDEffect *hud_objectp = NULL; - - switch (type) - { - case LL_HUD_EFFECT_BEAM: - hud_objectp = new LLHUDEffectSpiral(type); - ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.7f); - ((LLHUDEffectSpiral *)hud_objectp)->setVMag(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(0.2f); - ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(10.f); - ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.05f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.02f); - ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); - break; - case LL_HUD_EFFECT_GLOW: - // deprecated - break; - case LL_HUD_EFFECT_POINT: - hud_objectp = new LLHUDEffectSpiral(type); - ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setVMag(1.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(1.f); - ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(10.f); - ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); - break; - case LL_HUD_EFFECT_SPHERE: - hud_objectp = new LLHUDEffectSpiral(type); - ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setVMag(1.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(20.f); - ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(0.f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); - break; - case LL_HUD_EFFECT_SPIRAL: - hud_objectp = new LLHUDEffectSpiral(type); - ((LLHUDEffectSpiral *)hud_objectp)->setDuration(2.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVMag(-2.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(1.f); - ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(0.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(10.f); - ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(20.f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.02f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.02f); - ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); - break; - case LL_HUD_EFFECT_EDIT: - hud_objectp = new LLHUDEffectSpiral(type); - ((LLHUDEffectSpiral *)hud_objectp)->setDuration(2.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVMag(2.f); - ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(-1.f); - ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(1.5f); - ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(1.f); - ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(4.f); - ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(200.f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.1f); - ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); - break; - case LL_HUD_EFFECT_LOOKAT: - hud_objectp = new LLHUDEffectLookAt(type); - break; - case LL_HUD_EFFECT_VOICE_VISUALIZER: - hud_objectp = new LLVoiceVisualizer(type); - break; - case LL_HUD_EFFECT_POINTAT: - hud_objectp = new LLHUDEffectPointAt(type); - break; - case LL_HUD_EFFECT_BLOB: - hud_objectp = new LLHUDEffectBlob(type); - break; - default: - LL_WARNS() << "Unknown type of hud effect:" << (U32) type << LL_ENDL; - } - - if (hud_objectp) - { - sHUDObjects.push_back(hud_objectp); - } - return hud_objectp; + LLHUDEffect *hud_objectp = NULL; + + switch (type) + { + case LL_HUD_EFFECT_BEAM: + hud_objectp = new LLHUDEffectSpiral(type); + ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.7f); + ((LLHUDEffectSpiral *)hud_objectp)->setVMag(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(0.2f); + ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(10.f); + ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.05f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.02f); + ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); + break; + case LL_HUD_EFFECT_GLOW: + // deprecated + break; + case LL_HUD_EFFECT_POINT: + hud_objectp = new LLHUDEffectSpiral(type); + ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setVMag(1.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(1.f); + ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(10.f); + ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); + break; + case LL_HUD_EFFECT_SPHERE: + hud_objectp = new LLHUDEffectSpiral(type); + ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setVMag(1.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(20.f); + ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(0.f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); + break; + case LL_HUD_EFFECT_SPIRAL: + hud_objectp = new LLHUDEffectSpiral(type); + ((LLHUDEffectSpiral *)hud_objectp)->setDuration(2.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVMag(-2.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(1.f); + ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(0.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(10.f); + ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(20.f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.02f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.02f); + ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); + break; + case LL_HUD_EFFECT_EDIT: + hud_objectp = new LLHUDEffectSpiral(type); + ((LLHUDEffectSpiral *)hud_objectp)->setDuration(2.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVMag(2.f); + ((LLHUDEffectSpiral *)hud_objectp)->setVOffset(-1.f); + ((LLHUDEffectSpiral *)hud_objectp)->setInitialRadius(1.5f); + ((LLHUDEffectSpiral *)hud_objectp)->setFinalRadius(1.f); + ((LLHUDEffectSpiral *)hud_objectp)->setSpinRate(4.f); + ((LLHUDEffectSpiral *)hud_objectp)->setFlickerRate(200.f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleBase(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setScaleVar(0.1f); + ((LLHUDEffectSpiral *)hud_objectp)->setColor(LLColor4U(255, 255, 255, 255)); + break; + case LL_HUD_EFFECT_LOOKAT: + hud_objectp = new LLHUDEffectLookAt(type); + break; + case LL_HUD_EFFECT_VOICE_VISUALIZER: + hud_objectp = new LLVoiceVisualizer(type); + break; + case LL_HUD_EFFECT_POINTAT: + hud_objectp = new LLHUDEffectPointAt(type); + break; + case LL_HUD_EFFECT_BLOB: + hud_objectp = new LLHUDEffectBlob(type); + break; + default: + LL_WARNS() << "Unknown type of hud effect:" << (U32) type << LL_ENDL; + } + + if (hud_objectp) + { + sHUDObjects.push_back(hud_objectp); + } + return hud_objectp; } static LLTrace::BlockTimerStatHandle FTM_HUD_UPDATE("Update Hud"); @@ -257,11 +257,11 @@ static LLTrace::BlockTimerStatHandle FTM_HUD_UPDATE("Update Hud"); // static void LLHUDObject::updateAll() { - LL_RECORD_BLOCK_TIME(FTM_HUD_UPDATE); - LLHUDText::updateAll(); - LLHUDIcon::updateAll(); - LLHUDNameTag::updateAll(); - sortObjects(); + LL_RECORD_BLOCK_TIME(FTM_HUD_UPDATE); + LLHUDText::updateAll(); + LLHUDIcon::updateAll(); + LLHUDNameTag::updateAll(); + sortObjects(); } // static @@ -274,58 +274,58 @@ void LLHUDObject::renderAll() LLGLDepthTest depth(GL_FALSE, GL_FALSE); - LLHUDObject *hud_objp; - - hud_object_list_t::iterator object_it; - for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ) - { - hud_object_list_t::iterator cur_it = object_it++; - hud_objp = (*cur_it); - if (hud_objp->getNumRefs() == 1) - { - sHUDObjects.erase(cur_it); - } - else if (hud_objp->isVisible()) - { - hud_objp->render(); - } - } - - LLVertexBuffer::unbind(); + LLHUDObject *hud_objp; + + hud_object_list_t::iterator object_it; + for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ) + { + hud_object_list_t::iterator cur_it = object_it++; + hud_objp = (*cur_it); + if (hud_objp->getNumRefs() == 1) + { + sHUDObjects.erase(cur_it); + } + else if (hud_objp->isVisible()) + { + hud_objp->render(); + } + } + + LLVertexBuffer::unbind(); gUIProgram.unbind(); } // static void LLHUDObject::renderAllForTimer() { - LLHUDObject *hud_objp; - - hud_object_list_t::iterator object_it; - for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ) - { - hud_object_list_t::iterator cur_it = object_it++; - hud_objp = (*cur_it); - if (hud_objp->getNumRefs() == 1) - { - sHUDObjects.erase(cur_it); - } - else if (hud_objp->isVisible()) - { - hud_objp->renderForTimer(); - } - } + LLHUDObject *hud_objp; + + hud_object_list_t::iterator object_it; + for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ) + { + hud_object_list_t::iterator cur_it = object_it++; + hud_objp = (*cur_it); + if (hud_objp->getNumRefs() == 1) + { + sHUDObjects.erase(cur_it); + } + else if (hud_objp->isVisible()) + { + hud_objp->renderForTimer(); + } + } } // static void LLHUDObject::reshapeAll() { - // only hud objects that use fonts care about window size/scale changes - LLHUDText::reshape(); - LLHUDNameTag::reshape(); + // only hud objects that use fonts care about window size/scale changes + LLHUDText::reshape(); + LLHUDNameTag::reshape(); } // static void LLHUDObject::sortObjects() { - sHUDObjects.sort(hud_object_further_away()); + sHUDObjects.sort(hud_object_further_away()); } |