From ca1c1eea78ff2ab83979a4308dd5a93ea0032fc8 Mon Sep 17 00:00:00 2001 From: leyla_linden Date: Wed, 19 Jan 2011 11:38:34 -0800 Subject: SH-808 Selectively enable/disable features in edit tools --- indra/newview/llfloatertools.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 920bdef7f6..49e24f8e3d 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -463,6 +463,13 @@ void LLFloaterTools::refresh() childSetEnabled("linked_set_cost", have_selection); childSetEnabled("object_cost", have_selection); + bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled"); + + getChildView("linked_set_count")->setVisible(enable_mesh); + getChildView("linked_set_cost")->setVisible(enable_mesh); + getChildView("object_count")->setVisible(enable_mesh); + getChildView("object_cost")->setVisible(enable_mesh); + // Refresh child tabs mPanelPermissions->refresh(); mPanelObject->refresh(); -- cgit v1.2.3 From ad54a46ba2bc3886f9663bcaa4a6757fac733af7 Mon Sep 17 00:00:00 2001 From: leyla_linden Date: Fri, 28 Jan 2011 12:22:51 -0800 Subject: SH-841 Hide physics parameters in build tools when connected to a region that doesn't support additional physics parameters. --- indra/newview/llfloatertools.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 49e24f8e3d..c9b99d83ff 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -32,6 +32,7 @@ #include "llcoord.h" //#include "llgl.h" +#include "llagent.h" #include "llagentcamera.h" #include "llbutton.h" #include "llcheckboxctrl.h" @@ -463,7 +464,8 @@ void LLFloaterTools::refresh() childSetEnabled("linked_set_cost", have_selection); childSetEnabled("object_cost", have_selection); - bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled"); + bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled") && + !gAgent.getRegion()->getCapability("GetMesh").empty(); getChildView("linked_set_count")->setVisible(enable_mesh); getChildView("linked_set_cost")->setVisible(enable_mesh); -- cgit v1.2.3 From 8b15ca8d6b9cf516670e66ee57591e79b898394d Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Mon, 7 Feb 2011 21:03:10 -0500 Subject: SH-930 FIX revert ARC algorithm for merge to viewer-development Reverting incomplete changes to ARC so that we don't change RC when we merge down. --- indra/newview/llfloatertools.cpp | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index c9b99d83ff..f5e3d160fc 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -451,8 +451,7 @@ void LLFloaterTools::refresh() if (sShowObjectCost) { std::string prim_cost_string; - S32 cost = LLSelectMgr::getInstance()->getSelection()->getSelectedObjectRenderCost(); - LLResMgr::getInstance()->getIntegerString(prim_cost_string, cost); + LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost()); getChild("RenderingCost")->setTextArg("[COUNT]", prim_cost_string); } @@ -1010,6 +1009,35 @@ void LLFloaterTools::onClickGridOptions() //floaterp->addDependentFloater(LLFloaterBuildOptions::getInstance(), FALSE); } +S32 LLFloaterTools::calcRenderCost() +{ + S32 cost = 0; + std::set textures; + + for (LLObjectSelection::iterator selection_iter = LLSelectMgr::getInstance()->getSelection()->begin(); + selection_iter != LLSelectMgr::getInstance()->getSelection()->end(); + ++selection_iter) + { + LLSelectNode *select_node = *selection_iter; + if (select_node) + { + LLViewerObject *vobj = select_node->getObject(); + if (vobj->getVolume()) + { + LLVOVolume* volume = (LLVOVolume*) vobj; + + cost += volume->getRenderCost(textures); + cost += textures.size() * LLVOVolume::ARC_TEXTURE_COST; + textures.clear(); + } + } + } + + + return cost; +} + + // static void LLFloaterTools::setEditTool(void* tool_pointer) { -- cgit v1.2.3 From d0bf3079d78df386bbac8676ee3e3264323e7e24 Mon Sep 17 00:00:00 2001 From: leyla_linden Date: Wed, 9 Feb 2011 10:53:38 -0800 Subject: SH-840 Convert resource cost physics cost to prim count --- indra/newview/llfloatertools.cpp | 154 +++++++++++++++++++++++++-------------- 1 file changed, 100 insertions(+), 54 deletions(-) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index f5e3d160fc..a404aa0b1c 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -414,62 +414,96 @@ void LLFloaterTools::refresh() // Refresh object and prim count labels LLLocale locale(LLLocale::USER_LOCALE); - // Get the number of objects selected - std::string root_object_count_string; - std::string object_count_string; - - LLResMgr::getInstance()->getIntegerString( - root_object_count_string, - LLSelectMgr::getInstance()->getSelection()->getRootObjectCount()); - LLResMgr::getInstance()->getIntegerString( - object_count_string, - LLSelectMgr::getInstance()->getSelection()->getObjectCount()); - - F32 obj_cost = - LLSelectMgr::getInstance()->getSelection()->getSelectedObjectCost(); - F32 link_cost = - LLSelectMgr::getInstance()->getSelection()->getSelectedLinksetCost(); - F32 obj_physics_cost = - LLSelectMgr::getInstance()->getSelection()->getSelectedPhysicsCost(); - F32 link_physics_cost = - LLSelectMgr::getInstance()->getSelection()->getSelectedLinksetPhysicsCost(); - - // Update the text for the counts - childSetTextArg( - "linked_set_count", - "[COUNT]", - root_object_count_string); - childSetTextArg("object_count", "[COUNT]", object_count_string); - - // Update the text for the resource costs - childSetTextArg("linked_set_cost","[COST]",llformat("%.1f", link_cost)); - childSetTextArg("object_cost", "[COST]", llformat("%.1f", obj_cost)); - childSetTextArg("linked_set_cost","[PHYSICS]",llformat("%.1f", link_physics_cost)); - childSetTextArg("object_cost", "[PHYSICS]", llformat("%.1f", obj_physics_cost)); - - // Display rendering cost if needed - if (sShowObjectCost) - { - std::string prim_cost_string; - LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost()); - getChild("RenderingCost")->setTextArg("[COUNT]", prim_cost_string); + if ((gAgent.getRegion() && gAgent.getRegion()->getCapability("GetMesh").empty()) || !gSavedSettings.getBOOL("MeshEnabled")) + { + std::string obj_count_string; + LLResMgr::getInstance()->getIntegerString(obj_count_string, LLSelectMgr::getInstance()->getSelection()->getRootObjectCount()); + getChild("obj_count")->setTextArg("[COUNT]", obj_count_string); + std::string prim_count_string; + LLResMgr::getInstance()->getIntegerString(prim_count_string, LLSelectMgr::getInstance()->getSelection()->getObjectCount()); + getChild("prim_count")->setTextArg("[COUNT]", prim_count_string); + + // calculate selection rendering cost + if (sShowObjectCost) + { + std::string prim_cost_string; + LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost()); + getChild("RenderingCost")->setTextArg("[COUNT]", prim_cost_string); + } + + getChildView("linked_set_count")->setVisible(false); + getChildView("linked_set_cost")->setVisible(false); + getChildView("object_count")->setVisible(false); + getChildView("object_cost")->setVisible(false); + getChildView("obj_count")->setVisible(true); + getChildView("prim_count")->setVisible(true); + + // disable the object and prim counts if nothing selected + bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty(); + getChildView("obj_count")->setEnabled(have_selection); + getChildView("prim_count")->setEnabled(have_selection); + getChildView("RenderingCost")->setEnabled(have_selection && sShowObjectCost); } + else + { + // Get the number of objects selected + std::string root_object_count_string; + std::string object_count_string; + + LLResMgr::getInstance()->getIntegerString( + root_object_count_string, + LLSelectMgr::getInstance()->getSelection()->getRootObjectCount()); + LLResMgr::getInstance()->getIntegerString( + object_count_string, + LLSelectMgr::getInstance()->getSelection()->getObjectCount()); + + F32 obj_cost = + LLSelectMgr::getInstance()->getSelection()->getSelectedObjectCost(); + F32 link_cost = + LLSelectMgr::getInstance()->getSelection()->getSelectedLinksetCost(); + F32 obj_physics_cost = + LLSelectMgr::getInstance()->getSelection()->getSelectedPhysicsCost(); + F32 link_physics_cost = + LLSelectMgr::getInstance()->getSelection()->getSelectedLinksetPhysicsCost(); + + // Update the text for the counts + childSetTextArg( + "linked_set_count", + "[COUNT]", + root_object_count_string); + childSetTextArg("object_count", "[COUNT]", object_count_string); + + // Update the text for the resource costs + childSetTextArg("linked_set_cost","[COST]",llformat("%.1f", link_cost)); + childSetTextArg("object_cost", "[COST]", llformat("%.1f", obj_cost)); + childSetTextArg("linked_set_cost","[PHYSICS]",llformat("%.1f", link_physics_cost)); + childSetTextArg("object_cost", "[PHYSICS]", llformat("%.1f", obj_physics_cost)); + + // Display rendering cost if needed + if (sShowObjectCost) + { + std::string prim_cost_string; + LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost()); + getChild("RenderingCost")->setTextArg("[COUNT]", prim_cost_string); + } - // disable the object and prim counts if nothing selected - bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty(); - childSetEnabled("linked_set_count", have_selection); - childSetEnabled("object_count", have_selection); - childSetEnabled("linked_set_cost", have_selection); - childSetEnabled("object_cost", have_selection); - - bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled") && - !gAgent.getRegion()->getCapability("GetMesh").empty(); + // disable the object and prim counts if nothing selected + bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty(); + childSetEnabled("linked_set_count", have_selection); + childSetEnabled("object_count", have_selection); + childSetEnabled("linked_set_cost", have_selection); + childSetEnabled("object_cost", have_selection); + getChildView("RenderingCost")->setEnabled(have_selection && sShowObjectCost); + + getChildView("linked_set_count")->setVisible(true); + getChildView("linked_set_cost")->setVisible(true); + getChildView("object_count")->setVisible(true); + getChildView("object_cost")->setVisible(true); + getChildView("obj_count")->setVisible(false); + getChildView("prim_count")->setVisible(false); + } - getChildView("linked_set_count")->setVisible(enable_mesh); - getChildView("linked_set_cost")->setVisible(enable_mesh); - getChildView("object_count")->setVisible(enable_mesh); - getChildView("object_cost")->setVisible(enable_mesh); // Refresh child tabs mPanelPermissions->refresh(); @@ -753,8 +787,20 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) getChildView("Strength:")->setVisible( land_visible); } - getChildView("obj_count")->setVisible( !land_visible); - getChildView("prim_count")->setVisible( !land_visible); + if (gAgent.getRegion()->getCapability("GetMesh").empty()) + { + getChildView("obj_count")->setVisible( !land_visible); + getChildView("prim_count")->setVisible( !land_visible); + getChildView("RenderingCost")->setVisible( !land_visible && sShowObjectCost); + } + else + { + getChildView("linked_set_count")->setVisible( !land_visible); + getChildView("linked_set_cost")->setVisible( !land_visible); + getChildView("object_count")->setVisible( !land_visible); + getChildView("object_cost")->setVisible( !land_visible); + getChildView("RenderingCost")->setVisible( !land_visible && sShowObjectCost); + } mTab->setVisible(!land_visible); mPanelLandInfo->setVisible(land_visible); } -- cgit v1.2.3 From d74c5813600244b62d3779ccc5873b2bfe8befc2 Mon Sep 17 00:00:00 2001 From: leyla_linden Date: Wed, 9 Feb 2011 15:09:15 -0800 Subject: SH-938 [REGRESSION] Mesh costs and old style costs shown in Edit tools on mesh region with MeshEnabled set to False --- indra/newview/llfloatertools.cpp | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index a404aa0b1c..bef830a93e 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -431,13 +431,6 @@ void LLFloaterTools::refresh() getChild("RenderingCost")->setTextArg("[COUNT]", prim_cost_string); } - getChildView("linked_set_count")->setVisible(false); - getChildView("linked_set_cost")->setVisible(false); - getChildView("object_count")->setVisible(false); - getChildView("object_cost")->setVisible(false); - getChildView("obj_count")->setVisible(true); - getChildView("prim_count")->setVisible(true); - // disable the object and prim counts if nothing selected bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty(); getChildView("obj_count")->setEnabled(have_selection); @@ -495,13 +488,6 @@ void LLFloaterTools::refresh() childSetEnabled("linked_set_cost", have_selection); childSetEnabled("object_cost", have_selection); getChildView("RenderingCost")->setEnabled(have_selection && sShowObjectCost); - - getChildView("linked_set_count")->setVisible(true); - getChildView("linked_set_cost")->setVisible(true); - getChildView("object_count")->setVisible(true); - getChildView("object_cost")->setVisible(true); - getChildView("obj_count")->setVisible(false); - getChildView("prim_count")->setVisible(false); } @@ -787,20 +773,16 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) getChildView("Strength:")->setVisible( land_visible); } - if (gAgent.getRegion()->getCapability("GetMesh").empty()) - { - getChildView("obj_count")->setVisible( !land_visible); - getChildView("prim_count")->setVisible( !land_visible); - getChildView("RenderingCost")->setVisible( !land_visible && sShowObjectCost); - } - else - { - getChildView("linked_set_count")->setVisible( !land_visible); - getChildView("linked_set_cost")->setVisible( !land_visible); - getChildView("object_count")->setVisible( !land_visible); - getChildView("object_cost")->setVisible( !land_visible); - getChildView("RenderingCost")->setVisible( !land_visible && sShowObjectCost); - } + bool show_mesh_cost = !gAgent.getRegion()->getCapability("GetMesh").empty() && gSavedSettings.getBOOL("MeshEnabled"); + + getChildView("obj_count")->setVisible( !land_visible && !show_mesh_cost); + getChildView("prim_count")->setVisible( !land_visible && !show_mesh_cost); + getChildView("linked_set_count")->setVisible( !land_visible && show_mesh_cost); + getChildView("linked_set_cost")->setVisible( !land_visible && show_mesh_cost); + getChildView("object_count")->setVisible( !land_visible && show_mesh_cost); + getChildView("object_cost")->setVisible( !land_visible && show_mesh_cost); + getChildView("RenderingCost")->setVisible( !land_visible && sShowObjectCost); + mTab->setVisible(!land_visible); mPanelLandInfo->setVisible(land_visible); } -- cgit v1.2.3