From 60d3dd98a44230c21803c1606552ee098ed9fa7c Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 21 Feb 2024 21:05:14 +0100 Subject: Convert remaining BOOL to bool --- indra/newview/llhudobject.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/newview/llhudobject.cpp') diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index 292045f25d..08a763bcec 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -61,9 +61,9 @@ LLHUDObject::LLHUDObject(const U8 type) : mSourceObject(NULL), mTargetObject(NULL) { - mVisible = TRUE; + mVisible = true; mType = type; - mDead = FALSE; + mDead = false; } LLHUDObject::~LLHUDObject() @@ -72,8 +72,8 @@ LLHUDObject::~LLHUDObject() void LLHUDObject::markDead() { - mVisible = FALSE; - mDead = TRUE; + mVisible = false; + mDead = true; mSourceObject = NULL; mTargetObject = NULL; } -- cgit v1.2.3 From f9473e8afcb624cc1b101195bf15943ec372b56f Mon Sep 17 00:00:00 2001 From: Alexander Gavriliuk Date: Mon, 6 May 2024 16:52:34 +0200 Subject: secondlife/viewer#1333 BOOL to bool conversion leftovers: ternaries --- indra/newview/llhudobject.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/newview/llhudobject.cpp') diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index 08a763bcec..7fe313e3b0 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -52,13 +52,13 @@ struct hud_object_further_away bool hud_object_further_away::operator()(const LLPointer& lhs, const LLPointer& rhs) const { - return (lhs->getDistance() > rhs->getDistance()) ? true : false; + return lhs->getDistance() > rhs->getDistance(); } -LLHUDObject::LLHUDObject(const U8 type) : - mPositionGlobal(), - mSourceObject(NULL), +LLHUDObject::LLHUDObject(const U8 type) : + mPositionGlobal(), + mSourceObject(NULL), mTargetObject(NULL) { mVisible = true; -- cgit v1.2.3 From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 22 May 2024 21:25:21 +0200 Subject: Fix line endlings --- indra/newview/llhudobject.cpp | 662 +++++++++++++++++++++--------------------- 1 file changed, 331 insertions(+), 331 deletions(-) (limited to 'indra/newview/llhudobject.cpp') diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index e914caa601..e6fbfbfb38 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -1,331 +1,331 @@ -/** - * @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$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llhudobject.h" -#include "llviewerobject.h" - -#include "llhudtext.h" -#include "llhudicon.h" -#include "llhudeffectbeam.h" -#include "llhudeffectblob.h" -#include "llhudeffecttrail.h" -#include "llhudeffectlookat.h" -#include "llhudeffectpointat.h" -#include "llhudnametag.h" -#include "llvoicevisualizer.h" - -#include "llagent.h" - -// statics -std::list > LLHUDObject::sHUDObjects; - -struct hud_object_further_away -{ - bool operator()(const LLPointer& lhs, const LLPointer& rhs) const; -}; - - -bool hud_object_further_away::operator()(const LLPointer& lhs, const LLPointer& rhs) const -{ - return lhs->getDistance() > rhs->getDistance(); -} - - -LLHUDObject::LLHUDObject(const U8 type) : - mPositionGlobal(), - mSourceObject(NULL), - mTargetObject(NULL) -{ - mVisible = true; - mType = type; - mDead = false; -} - -LLHUDObject::~LLHUDObject() -{ -} - -void LLHUDObject::markDead() -{ - mVisible = false; - mDead = true; - mSourceObject = NULL; - mTargetObject = NULL; -} - -F32 LLHUDObject::getDistance() const -{ - return 0.f; -} - -void LLHUDObject::setSourceObject(LLViewerObject* objectp) -{ - if (objectp == mSourceObject) - { - return; - } - - mSourceObject = objectp; -} - -void LLHUDObject::setTargetObject(LLViewerObject* objectp) -{ - if (objectp == mTargetObject) - { - return; - } - - mTargetObject = objectp; -} - -void LLHUDObject::setPositionGlobal(const LLVector3d &position_global) -{ - mPositionGlobal = position_global; -} - -void LLHUDObject::setPositionAgent(const LLVector3 &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(); -} - -// 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; -} - -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; -} - -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(); -} - -// static -void LLHUDObject::renderAll() -{ - LLGLSUIDefault gls_ui; - - gUIProgram.bind(); - gGL.color4f(1, 1, 1, 1); - - 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(); - 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(); - } - } -} - -// static -void LLHUDObject::reshapeAll() -{ - // 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()); -} +/** + * @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$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llhudobject.h" +#include "llviewerobject.h" + +#include "llhudtext.h" +#include "llhudicon.h" +#include "llhudeffectbeam.h" +#include "llhudeffectblob.h" +#include "llhudeffecttrail.h" +#include "llhudeffectlookat.h" +#include "llhudeffectpointat.h" +#include "llhudnametag.h" +#include "llvoicevisualizer.h" + +#include "llagent.h" + +// statics +std::list > LLHUDObject::sHUDObjects; + +struct hud_object_further_away +{ + bool operator()(const LLPointer& lhs, const LLPointer& rhs) const; +}; + + +bool hud_object_further_away::operator()(const LLPointer& lhs, const LLPointer& rhs) const +{ + return lhs->getDistance() > rhs->getDistance(); +} + + +LLHUDObject::LLHUDObject(const U8 type) : + mPositionGlobal(), + mSourceObject(NULL), + mTargetObject(NULL) +{ + mVisible = true; + mType = type; + mDead = false; +} + +LLHUDObject::~LLHUDObject() +{ +} + +void LLHUDObject::markDead() +{ + mVisible = false; + mDead = true; + mSourceObject = NULL; + mTargetObject = NULL; +} + +F32 LLHUDObject::getDistance() const +{ + return 0.f; +} + +void LLHUDObject::setSourceObject(LLViewerObject* objectp) +{ + if (objectp == mSourceObject) + { + return; + } + + mSourceObject = objectp; +} + +void LLHUDObject::setTargetObject(LLViewerObject* objectp) +{ + if (objectp == mTargetObject) + { + return; + } + + mTargetObject = objectp; +} + +void LLHUDObject::setPositionGlobal(const LLVector3d &position_global) +{ + mPositionGlobal = position_global; +} + +void LLHUDObject::setPositionAgent(const LLVector3 &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(); +} + +// 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; +} + +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; +} + +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(); +} + +// static +void LLHUDObject::renderAll() +{ + LLGLSUIDefault gls_ui; + + gUIProgram.bind(); + gGL.color4f(1, 1, 1, 1); + + 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(); + 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(); + } + } +} + +// static +void LLHUDObject::reshapeAll() +{ + // 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()); +} -- cgit v1.2.3