summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/llfloaterdebugmaterials.cpp1245
-rw-r--r--indra/newview/llfloaterdebugmaterials.h186
-rw-r--r--indra/newview/llviewerfloaterreg.cpp3
-rw-r--r--indra/newview/skins/default/xui/en/floater_debug_materials.xml995
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml10
6 files changed, 1 insertions, 2440 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 3e99bd2551..85262b55a8 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -194,7 +194,6 @@ set(viewer_SOURCE_FILES
llfloaterbuyland.cpp
llfloatercamera.cpp
llfloatercolorpicker.cpp
- llfloaterdebugmaterials.cpp
llfloaterdeleteenvpreset.cpp
llfloaterdestinations.cpp
llfloaterdisplayname.cpp
@@ -773,7 +772,6 @@ set(viewer_HEADER_FILES
llfloaterbuyland.h
llfloatercamera.h
llfloatercolorpicker.h
- llfloaterdebugmaterials.h
llfloaterdeleteenvpreset.h
llfloaterdestinations.h
llfloaterdisplayname.h
diff --git a/indra/newview/llfloaterdebugmaterials.cpp b/indra/newview/llfloaterdebugmaterials.cpp
deleted file mode 100644
index c9f15a9c35..0000000000
--- a/indra/newview/llfloaterdebugmaterials.cpp
+++ /dev/null
@@ -1,1245 +0,0 @@
-/**
-* @file llfloaterdebugmaterials.cpp
-* @brief Implementation of llfloaterdebugmaterials
-* @author Stinson@lindenlab.com
-*
-* $LicenseInfo:firstyear=2012&license=viewerlgpl$
-* Second Life Viewer Source Code
-* Copyright (C) 2012, 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 "llfloaterdebugmaterials.h"
-
-#include <string>
-#include <vector>
-#include <map>
-
-#include <boost/shared_ptr.hpp>
-#include <boost/bind.hpp>
-#include <boost/function.hpp>
-#include <boost/signals2.hpp>
-
-#include "llagent.h"
-#include "llbutton.h"
-#include "llcolorswatch.h"
-#include "llenvmanager.h"
-#include "llfloater.h"
-#include "llfloaterreg.h"
-#include "llfontgl.h"
-#include "llhttpclient.h"
-#include "lllineeditor.h"
-#include "llmaterialid.h"
-#include "llresmgr.h"
-#include "llscrolllistcell.h"
-#include "llscrolllistctrl.h"
-#include "llscrolllistitem.h"
-#include "llsd.h"
-#include "llsdserialize.h"
-#include "llselectmgr.h"
-#include "llspinctrl.h"
-#include "llstring.h"
-#include "llstyle.h"
-#include "lltextbase.h"
-#include "lltexturectrl.h"
-#include "lltextvalidate.h"
-#include "llthread.h"
-#include "lluicolortable.h"
-#include "lluictrl.h"
-#include "lluuid.h"
-#include "llviewerobject.h"
-#include "llviewerobjectlist.h"
-#include "llviewerparcelmgr.h"
-#include "llviewerregion.h"
-#include "v4color.h"
-#include "v4coloru.h"
-
-#define MATERIALS_CAPABILITY_NAME "RenderMaterials"
-
-#define VIEWABLE_OBJECTS_REGION_ID_FIELD "regionId"
-#define VIEWABLE_OBJECTS_OBJECT_ID_FIELD "objectId"
-#define VIEWABLE_OBJECTS_MATERIAL_ID_FIELD "materialId"
-
-BOOL LLFloaterDebugMaterials::postBuild()
-{
- mStatusText = findChild<LLTextBase>("material_status");
- llassert(mStatusText != NULL);
-
- mGetButton = findChild<LLButton>("get_button");
- llassert(mGetButton != NULL);
- mGetButton->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onGetClicked, this));
-
- mParsingStatusText = findChild<LLTextBase>("loading_status");
- llassert(mParsingStatusText != NULL);
-
- mGetNormalMapScrollList = findChild<LLScrollListCtrl>("get_normal_map_scroll_list");
- llassert(mGetNormalMapScrollList != NULL);
- mGetNormalMapScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onGetScrollListSelectionChange, this, _1));
-
- mGetSpecularMapScrollList = findChild<LLScrollListCtrl>("get_specular_map_scroll_list");
- llassert(mGetSpecularMapScrollList != NULL);
- mGetSpecularMapScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onGetScrollListSelectionChange, this, _1));
-
- mGetOtherDataScrollList = findChild<LLScrollListCtrl>("get_other_data_scroll_list");
- llassert(mGetOtherDataScrollList != NULL);
- mGetOtherDataScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onGetScrollListSelectionChange, this, _1));
-
- mNormalMap = findChild<LLTextureCtrl>("normal_map");
- llassert(mNormalMap != NULL);
-
- mNormalMapOffsetX = findChild<LLSpinCtrl>("normal_map_offset_x");
- llassert(mNormalMapOffsetX != NULL);
-
- mNormalMapOffsetY = findChild<LLSpinCtrl>("normal_map_offset_y");
- llassert(mNormalMapOffsetY != NULL);
-
- mNormalMapRepeatX = findChild<LLSpinCtrl>("normal_map_repeat_x");
- llassert(mNormalMapRepeatX != NULL);
-
- mNormalMapRepeatY = findChild<LLSpinCtrl>("normal_map_repeat_y");
- llassert(mNormalMapRepeatY != NULL);
-
- mNormalMapRotation = findChild<LLSpinCtrl>("normal_map_rotation");
- llassert(mNormalMapRotation != NULL);
-
- mSpecularMap = findChild<LLTextureCtrl>("specular_map");
- llassert(mSpecularMap != NULL);
-
- mSpecularMapOffsetX = findChild<LLSpinCtrl>("specular_map_offset_x");
- llassert(mSpecularMapOffsetX != NULL);
-
- mSpecularMapOffsetY = findChild<LLSpinCtrl>("specular_map_offset_y");
- llassert(mSpecularMapOffsetY != NULL);
-
- mSpecularMapRepeatX = findChild<LLSpinCtrl>("specular_map_repeat_x");
- llassert(mSpecularMapRepeatX != NULL);
-
- mSpecularMapRepeatY = findChild<LLSpinCtrl>("specular_map_repeat_y");
- llassert(mSpecularMapRepeatY != NULL);
-
- mSpecularMapRotation = findChild<LLSpinCtrl>("specular_map_rotation");
- llassert(mSpecularMapRotation != NULL);
-
- mSpecularColor = findChild<LLColorSwatchCtrl>("specular_color");
- llassert(mSpecularColor != NULL);
-
- mSpecularColorAlpha = findChild<LLSpinCtrl>("specular_color_alpha");
- llassert(mSpecularColorAlpha != NULL);
-
- mSpecularExponent = findChild<LLLineEditor>("specular_exponent");
- llassert(mSpecularExponent != NULL);
- mSpecularExponent->setPrevalidate(LLTextValidate::validateInt);
- mSpecularExponent->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onValueEntered, this, _1));
-
- mEnvironmentExponent = findChild<LLLineEditor>("environment_exponent");
- llassert(mEnvironmentExponent != NULL);
- mEnvironmentExponent->setPrevalidate(LLTextValidate::validateInt);
- mEnvironmentExponent->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onValueEntered, this, _1));
-
- mAlphaMaskCutoff = findChild<LLLineEditor>("alpha_mask_cutoff");
- llassert(mAlphaMaskCutoff != NULL);
- mAlphaMaskCutoff->setPrevalidate(LLTextValidate::validateInt);
- mAlphaMaskCutoff->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onValueEntered, this, _1));
-
- mDiffuseAlphaMode = findChild<LLLineEditor>("diffuse_alpha_mode");
- llassert(mDiffuseAlphaMode != NULL);
- mDiffuseAlphaMode->setPrevalidate(LLTextValidate::validateInt);
- mDiffuseAlphaMode->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onValueEntered, this, _1));
-
- mPutSetButton = findChild<LLButton>("put_set_button");
- llassert(mPutSetButton != NULL);
- mPutSetButton->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onPutSetClicked, this));
-
- mPutClearButton = findChild<LLButton>("put_clear_button");
- llassert(mPutClearButton != NULL);
- mPutClearButton->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onPutClearClicked, this));
-
- LLButton* resetPutValuesButton = findChild<LLButton>("reset_put_values_button");
- llassert(resetPutValuesButton != NULL);
- resetPutValuesButton->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onResetPutValuesClicked, this));
-
- mPutScrollList = findChild<LLScrollListCtrl>("put_scroll_list");
- llassert(mPutScrollList != NULL);
-
- mQueryViewableObjectsButton = findChild<LLButton>("query_viewable_objects_button");
- llassert(mQueryViewableObjectsButton != NULL);
- mQueryViewableObjectsButton->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onQueryVisibleObjectsClicked, this));
-
- mQueryStatusText = findChild<LLTextBase>("query_status");
- llassert(mQueryStatusText != NULL);
-
- mViewableObjectsScrollList = findChild<LLScrollListCtrl>("viewable_objects_scroll_list");
- llassert(mViewableObjectsScrollList != NULL);
- mViewableObjectsScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onViewableObjectsScrollListSelectionChange, this));
-
- mPostButton = findChild<LLButton>("post_button");
- llassert(mPostButton != NULL);
- mPostButton->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onPostClicked, this));
-
- mPostNormalMapScrollList = findChild<LLScrollListCtrl>("post_normal_map_scroll_list");
- llassert(mPostNormalMapScrollList != NULL);
- mPostNormalMapScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onPostScrollListSelectionChange, this, _1));
-
- mPostSpecularMapScrollList = findChild<LLScrollListCtrl>("post_specular_map_scroll_list");
- llassert(mPostSpecularMapScrollList != NULL);
- mPostSpecularMapScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onPostScrollListSelectionChange, this, _1));
-
- mPostOtherDataScrollList = findChild<LLScrollListCtrl>("post_other_data_scroll_list");
- llassert(mPostOtherDataScrollList != NULL);
- mPostOtherDataScrollList->setCommitCallback(boost::bind(&LLFloaterDebugMaterials::onPostScrollListSelectionChange, this, _1));
-
- mDefaultSpecularColor = LLUIColorTable::instance().getColor("White");
-
- mWarningColor = LLUIColorTable::instance().getColor("MaterialWarningColor");
- mErrorColor = LLUIColorTable::instance().getColor("MaterialErrorColor");
-
- setState(kNoRegion);
-
- return LLFloater::postBuild();
-}
-
-void LLFloaterDebugMaterials::onOpen(const LLSD& pKey)
-{
- LLFloater::onOpen(pKey);
-
- if (!mRegionCrossConnection.connected())
- {
- mRegionCrossConnection = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterDebugMaterials::onRegionCross, this));
- }
-
- if (!mTeleportFailedConnection.connected())
- {
- mTeleportFailedConnection = LLViewerParcelMgr::getInstance()->setTeleportFailedCallback(boost::bind(&LLFloaterDebugMaterials::onRegionCross, this));
- }
-
- if (!mSelectionUpdateConnection.connected())
- {
- mSelectionUpdateConnection = LLSelectMgr::getInstance()->mUpdateSignal.connect(boost::bind(&LLFloaterDebugMaterials::onInWorldSelectionChange, this));
- }
-
- checkRegionMaterialStatus();
- resetObjectEditInputs();
- clearGetResults();
- clearViewableObjectsResults();
- clearPostResults();
-}
-
-void LLFloaterDebugMaterials::onClose(bool pIsAppQuitting)
-{
- resetObjectEditInputs();
- clearGetResults();
- clearViewableObjectsResults();
- clearPostResults();
-
- if (mSelectionUpdateConnection.connected())
- {
- mSelectionUpdateConnection.disconnect();
- }
-
- if (mTeleportFailedConnection.connected())
- {
- mTeleportFailedConnection.disconnect();
- }
-
- if (mRegionCrossConnection.connected())
- {
- mRegionCrossConnection.disconnect();
- }
-
- LLFloater::onClose(pIsAppQuitting);
-}
-
-void LLFloaterDebugMaterials::draw()
-{
- if (mNextUnparsedQueryDataIndex >= 0)
- {
- parseQueryViewableObjects();
- }
- if (LLSelectMgr::instance().getSelection().notNull())
- {
- refreshObjectEdit();
- }
- LLFloater::draw();
-}
-
-LLFloaterDebugMaterials::LLFloaterDebugMaterials(const LLSD& pParams)
- : LLFloater(pParams),
- mStatusText(NULL),
- mGetButton(NULL),
- mParsingStatusText(NULL),
- mGetNormalMapScrollList(NULL),
- mGetSpecularMapScrollList(NULL),
- mGetOtherDataScrollList(NULL),
- mNormalMap(NULL),
- mNormalMapOffsetX(NULL),
- mNormalMapOffsetY(NULL),
- mNormalMapRepeatX(NULL),
- mNormalMapRepeatY(NULL),
- mNormalMapRotation(NULL),
- mSpecularMap(NULL),
- mSpecularMapOffsetX(NULL),
- mSpecularMapOffsetY(NULL),
- mSpecularMapRepeatX(NULL),
- mSpecularMapRepeatY(NULL),
- mSpecularMapRotation(NULL),
- mSpecularColor(NULL),
- mSpecularColorAlpha(NULL),
- mSpecularExponent(NULL),
- mEnvironmentExponent(NULL),
- mAlphaMaskCutoff(NULL),
- mDiffuseAlphaMode(NULL),
- mPutSetButton(NULL),
- mPutClearButton(NULL),
- mPutScrollList(NULL),
- mQueryViewableObjectsButton(NULL),
- mQueryStatusText(NULL),
- mViewableObjectsScrollList(NULL),
- mPostButton(NULL),
- mPostNormalMapScrollList(NULL),
- mPostSpecularMapScrollList(NULL),
- mPostOtherDataScrollList(NULL),
- mState(kNoRegion),
- mWarningColor(),
- mErrorColor(),
- mRegionCrossConnection(),
- mTeleportFailedConnection(),
- mSelectionUpdateConnection(),
- mNextUnparsedQueryDataIndex(-1)
-{
-}
-
-LLFloaterDebugMaterials::~LLFloaterDebugMaterials()
-{
-}
-
-void LLFloaterDebugMaterials::onGetClicked()
-{
- requestGetMaterials();
-}
-
-void LLFloaterDebugMaterials::onValueEntered(LLUICtrl* pUICtrl)
-{
- LLLineEditor *pLineEditor = static_cast<LLLineEditor *>(pUICtrl);
- llassert(pLineEditor != NULL);
-
- const std::string &valueString = pLineEditor->getText();
-
- S32 intValue = 0;
- bool doResetValue = (!valueString.empty() && !LLStringUtil::convertToS32(valueString, intValue));
-
- if (doResetValue)
- {
- LL_WARNS("debugMaterials") << "cannot parse string '" << valueString << "' to an S32 value" <<LL_ENDL;
- LLSD value = static_cast<LLSD::Integer>(intValue);
- pLineEditor->setValue(value);
- }
-}
-
-void LLFloaterDebugMaterials::onPutSetClicked()
-{
- requestPutMaterials(true);
-}
-
-void LLFloaterDebugMaterials::onPutClearClicked()
-{
- requestPutMaterials(false);
-}
-
-void LLFloaterDebugMaterials::onResetPutValuesClicked()
-{
- resetObjectEditInputs();
-}
-
-void LLFloaterDebugMaterials::onQueryVisibleObjectsClicked()
-{
- clearViewableObjectsResults();
- setUnparsedQueryData();
-}
-
-void LLFloaterDebugMaterials::onPostClicked()
-{
- clearPostResults();
-
- std::vector<LLScrollListItem*> selectedItems = mViewableObjectsScrollList->getAllSelected();
- if (!selectedItems.empty())
- {
- for (std::vector<LLScrollListItem*>::const_iterator selectedItemIter = selectedItems.begin();
- selectedItemIter != selectedItems.end(); ++selectedItemIter)
- {
- const LLScrollListItem* selectedItem = *selectedItemIter;
- const LLSD& selectedItemValue = selectedItem->getValue();
- llassert(selectedItemValue.isMap());
-
- llassert(selectedItemValue.has(VIEWABLE_OBJECTS_REGION_ID_FIELD));
- llassert(selectedItemValue.get(VIEWABLE_OBJECTS_REGION_ID_FIELD).isUUID());
- const LLUUID& region_id = selectedItemValue.get(VIEWABLE_OBJECTS_REGION_ID_FIELD).asUUID();
-
- llassert(selectedItemValue.has(VIEWABLE_OBJECTS_MATERIAL_ID_FIELD));
- llassert(selectedItemValue.get(VIEWABLE_OBJECTS_MATERIAL_ID_FIELD).isBinary());
- const LLMaterialID material_id(selectedItemValue.get(VIEWABLE_OBJECTS_MATERIAL_ID_FIELD).asBinary());
-
- LLMaterialMgr::instance().get(region_id, material_id, boost::bind(&LLFloaterDebugMaterials::onPostMaterial, _1, _2));
- }
- }
-}
-
-void LLFloaterDebugMaterials::onRegionCross()
-{
- checkRegionMaterialStatus();
- clearGetResults();
- clearViewableObjectsResults();
- clearPostResults();
-}
-
-void LLFloaterDebugMaterials::onInWorldSelectionChange()
-{
- updateControls();
-}
-
-void LLFloaterDebugMaterials::onGetScrollListSelectionChange(LLUICtrl* pUICtrl)
-{
- LLScrollListCtrl* scrollListCtrl = dynamic_cast<LLScrollListCtrl*>(pUICtrl);
- llassert(scrollListCtrl != NULL);
-
- if (scrollListCtrl != mGetNormalMapScrollList)
- {
- mGetNormalMapScrollList->deselectAllItems(TRUE);
- }
- if (scrollListCtrl != mGetSpecularMapScrollList)
- {
- mGetSpecularMapScrollList->deselectAllItems(TRUE);
- }
- if (scrollListCtrl != mGetOtherDataScrollList)
- {
- mGetOtherDataScrollList->deselectAllItems(TRUE);
- }
-
- std::vector<LLScrollListItem*> selectedItems = scrollListCtrl->getAllSelected();
- if (!selectedItems.empty())
- {
- llassert(selectedItems.size() == 1);
- LLScrollListItem* selectedItem = selectedItems.front();
-
- llassert(selectedItem != NULL);
- const LLSD& selectedIdValue = selectedItem->getValue();
-
- if (scrollListCtrl != mGetNormalMapScrollList)
- {
- mGetNormalMapScrollList->selectByValue(selectedIdValue);
- mGetNormalMapScrollList->scrollToShowSelected();
- }
- if (scrollListCtrl != mGetSpecularMapScrollList)
- {
- mGetSpecularMapScrollList->selectByValue(selectedIdValue);
- mGetSpecularMapScrollList->scrollToShowSelected();
- }
- if (scrollListCtrl != mGetOtherDataScrollList)
- {
- mGetOtherDataScrollList->selectByValue(selectedIdValue);
- mGetOtherDataScrollList->scrollToShowSelected();
- }
- }
-}
-
-void LLFloaterDebugMaterials::onPostScrollListSelectionChange(LLUICtrl* pUICtrl)
-{
- LLScrollListCtrl* scrollListCtrl = dynamic_cast<LLScrollListCtrl*>(pUICtrl);
- llassert(scrollListCtrl != NULL);
-
- if (scrollListCtrl != mPostNormalMapScrollList)
- {
- mPostNormalMapScrollList->deselectAllItems(TRUE);
- }
- if (scrollListCtrl != mPostSpecularMapScrollList)
- {
- mPostSpecularMapScrollList->deselectAllItems(TRUE);
- }
- if (scrollListCtrl != mPostOtherDataScrollList)
- {
- mPostOtherDataScrollList->deselectAllItems(TRUE);
- }
-
- std::vector<LLScrollListItem*> selectedItems = scrollListCtrl->getAllSelected();
- if (!selectedItems.empty())
- {
- llassert(selectedItems.size() == 1);
- LLScrollListItem* selectedItem = selectedItems.front();
-
- llassert(selectedItem != NULL);
- const LLSD& selectedIdValue = selectedItem->getValue();
-
- if (scrollListCtrl != mPostNormalMapScrollList)
- {
- mPostNormalMapScrollList->selectByValue(selectedIdValue);
- mPostNormalMapScrollList->scrollToShowSelected();
- }
- if (scrollListCtrl != mPostSpecularMapScrollList)
- {
- mPostSpecularMapScrollList->selectByValue(selectedIdValue);
- mPostSpecularMapScrollList->scrollToShowSelected();
- }
- if (scrollListCtrl != mPostOtherDataScrollList)
- {
- mPostOtherDataScrollList->selectByValue(selectedIdValue);
- mPostOtherDataScrollList->scrollToShowSelected();
- }
- }
-}
-
-void LLFloaterDebugMaterials::onViewableObjectsScrollListSelectionChange()
-{
- updateControls();
-}
-
-void LLFloaterDebugMaterials::onDeferredCheckRegionMaterialStatus(LLUUID regionId)
-{
- checkRegionMaterialStatus(regionId);
-}
-
-void LLFloaterDebugMaterials::onDeferredRequestGetMaterials(LLUUID regionId)
-{
- requestGetMaterials(regionId);
-}
-
-void LLFloaterDebugMaterials::onDeferredRequestPutMaterials(LLUUID regionId, bool pIsDoSet)
-{
- requestPutMaterials(regionId, pIsDoSet);
-}
-
-void LLFloaterDebugMaterials::checkRegionMaterialStatus()
-{
- LLViewerRegion *region = gAgent.getRegion();
-
- if (region == NULL)
- {
- LL_WARNS("debugMaterials") << "Region is NULL" << LL_ENDL;
- setState(kNoRegion);
- }
- else if (!region->capabilitiesReceived())
- {
- setState(kCapabilitiesLoading);
- region->setCapabilitiesReceivedCallback(boost::bind(&LLFloaterDebugMaterials::onDeferredCheckRegionMaterialStatus, this, region->getRegionID()));
- }
- else
- {
- std::string capURL = region->getCapability(MATERIALS_CAPABILITY_NAME);
-
- if (capURL.empty())
- {
- LL_WARNS("debugMaterials") << "Capability '" << MATERIALS_CAPABILITY_NAME
- << "' is not defined on the current region '" << region->getName() << "'" << LL_ENDL;
- setState(kNotEnabled);
- }
- else
- {
- setState(kReady);
- }
- }
-}
-
-void LLFloaterDebugMaterials::checkRegionMaterialStatus(const LLUUID& regionId)
-{
- const LLViewerRegion *region = gAgent.getRegion();
-
- if ((region != NULL) && (region->getRegionID() == regionId))
- {
- checkRegionMaterialStatus();
- }
-}
-
-void LLFloaterDebugMaterials::requestGetMaterials()
-{
- LLViewerRegion *region = gAgent.getRegion();
-
- if (region == NULL)
- {
- LL_WARNS("debugMaterials") << "Region is NULL" << LL_ENDL;
- setState(kNoRegion);
- }
- else if (!region->capabilitiesReceived())
- {
- setState(kCapabilitiesLoading);
- region->setCapabilitiesReceivedCallback(boost::bind(&LLFloaterDebugMaterials::onDeferredRequestGetMaterials, this, region->getRegionID()));
- }
- else
- {
- std::string capURL = region->getCapability(MATERIALS_CAPABILITY_NAME);
-
- if (capURL.empty())
- {
- LL_WARNS("debugMaterials") << "Capability '" << MATERIALS_CAPABILITY_NAME
- << "' is not defined on the current region '" << region->getName() << "'" << LL_ENDL;
- setState(kNotEnabled);
- }
- else
- {
- setState(kReady);
- LLMaterialMgr::instance().getAll(region->getRegionID(), boost::bind(&LLFloaterDebugMaterials::onGetMaterials, _1, _2));
- }
- }
-}
-
-void LLFloaterDebugMaterials::requestGetMaterials(const LLUUID& regionId)
-{
- const LLViewerRegion *region = gAgent.getRegion();
-
- if ((region != NULL) && (region->getRegionID() == regionId))
- {
- requestGetMaterials();
- }
-}
-
-void LLFloaterDebugMaterials::requestPutMaterials(bool pIsDoSet)
-{
- LLViewerRegion *region = gAgent.getRegion();
-
- if (region == NULL)
- {
- LL_WARNS("debugMaterials") << "Region is NULL" << LL_ENDL;
- setState(kNoRegion);
- }
- else if (!region->capabilitiesReceived())
- {
- setState(kCapabilitiesLoading);
- region->setCapabilitiesReceivedCallback(boost::bind(&LLFloaterDebugMaterials::onDeferredRequestPutMaterials, this, region->getRegionID(), pIsDoSet));
- }
- else
- {
- std::string capURL = region->getCapability(MATERIALS_CAPABILITY_NAME);
-
- if (capURL.empty())
- {
- LL_WARNS("debugMaterials") << "Capability '" << MATERIALS_CAPABILITY_NAME
- << "' is not defined on the current region '" << region->getName() << "'" << LL_ENDL;
- setState(kNotEnabled);
- }
- else
- {
- setState(kReady);
-
- LLMaterial material = (pIsDoSet) ? getMaterial() : LLMaterial::null;
-
- LLObjectSelectionHandle selectionHandle = LLSelectMgr::getInstance()->getEditSelection();
- for (LLObjectSelection::valid_iterator objectIter = selectionHandle->valid_begin();
- objectIter != selectionHandle->valid_end(); ++objectIter)
- {
- LLSelectNode* objectNode = *objectIter;
- LLViewerObject* viewerObject = objectNode->getObject();
-
- if (viewerObject != NULL)
- {
- const LLViewerRegion* viewerRegion = viewerObject->getRegion();
- if (region != viewerRegion)
- {
- LL_ERRS("debugMaterials") << "cannot currently edit an object on a different region through the debug materials floater" << llendl;
- }
- S32 numTEs = llmin(static_cast<S32>(viewerObject->getNumTEs()), viewerObject->getNumFaces());
- for (S32 curTEIndex = 0; curTEIndex < numTEs; ++curTEIndex)
- {
- if (objectNode->isTESelected(curTEIndex))
- {
- LLMaterialMgr::instance().put(viewerObject->getID(), curTEIndex, material);
- }
- }
- }
- }
- }
- }
-}
-
-void LLFloaterDebugMaterials::requestPutMaterials(const LLUUID& regionId, bool pIsDoSet)
-{
- const LLViewerRegion *region = gAgent.getRegion();
-
- if ((region != NULL) && (region->getRegionID() == regionId))
- {
- requestPutMaterials(pIsDoSet);
- }
-}
-
-void LLFloaterDebugMaterials::parseQueryViewableObjects()
-{
- llassert(mNextUnparsedQueryDataIndex >= 0);
-
- if (mNextUnparsedQueryDataIndex >= 0)
- {
- LLScrollListCell::Params cellParams;
- LLScrollListItem::Params rowParams;
-
- S32 numViewerObjects = gObjectList.getNumObjects();
- S32 viewerObjectIndex = mNextUnparsedQueryDataIndex;
- for (S32 currentParseCount = 0;
- (currentParseCount < 10) && (viewerObjectIndex < numViewerObjects);
- ++currentParseCount, ++viewerObjectIndex)
- {
- const LLViewerObject *viewerObject = gObjectList.getObject(viewerObjectIndex);
- if ((viewerObject != NULL) && !viewerObject->isDead())
- {
- U8 objectNumTEs = viewerObject->getNumTEs();
-
- if (objectNumTEs > 0U)
- {
- const LLUUID& objectId = viewerObject->getID();
- U32 objectLocalId = viewerObject->getLocalID();
- const LLViewerRegion* objectRegion = viewerObject->getRegion();
-
- for (U8 curTEIndex = 0U; curTEIndex < objectNumTEs; ++curTEIndex)
- {
- const LLTextureEntry* objectTE = viewerObject->getTE(curTEIndex);
- llassert(objectTE != NULL);
- const LLMaterialID& objectMaterialID = objectTE->getMaterialID();
- if (!objectMaterialID.isNull())
- {
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "object_id";
- cellParams.value = objectId.asString();
- rowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontSansSerif();
-
- cellParams.column = "region";
- cellParams.value = ((objectRegion == NULL) ? "<null>" : objectRegion->getName());
- rowParams.columns.add(cellParams);
-
- cellParams.column = "local_id";
- cellParams.value = llformat("%d", objectLocalId);
- rowParams.columns.add(cellParams);
-
- cellParams.column = "face_index";
- cellParams.value = llformat("%u", static_cast<unsigned int>(curTEIndex));
- rowParams.columns.add(cellParams);
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "material_id";
- cellParams.value = objectMaterialID.asString();
- rowParams.columns.add(cellParams);
-
- LLSD rowValue = LLSD::emptyMap();
- rowValue[VIEWABLE_OBJECTS_REGION_ID_FIELD] = objectRegion->getRegionID();
- rowValue[VIEWABLE_OBJECTS_OBJECT_ID_FIELD] = objectId;
- rowValue[VIEWABLE_OBJECTS_MATERIAL_ID_FIELD] = objectMaterialID.asLLSD();
-
- rowParams.value = rowValue;
-
- mViewableObjectsScrollList->addRow(rowParams);
- }
- }
- }
- }
- }
-
- if (viewerObjectIndex < numViewerObjects)
- {
- mNextUnparsedQueryDataIndex = viewerObjectIndex;
- updateQueryParsingStatus();
- }
- else
- {
- clearUnparsedQueryData();
- }
- }
-}
-
-void LLFloaterDebugMaterials::onGetMaterials(const LLUUID& region_id, const LLMaterialMgr::material_map_t& materials)
-{
- LLFloaterDebugMaterials* instancep = LLFloaterReg::findTypedInstance<LLFloaterDebugMaterials>("floater_debug_materials");
- if (!instancep)
- {
- return;
- }
-
- LLViewerRegion* regionp = gAgent.getRegion();
- if ( (!regionp) || (regionp->getRegionID() != region_id) )
- {
- return;
- }
-
- LLScrollListCell::Params cellParams;
- LLScrollListItem::Params normalMapRowParams;
- LLScrollListItem::Params specularMapRowParams;
- LLScrollListItem::Params otherDataRowParams;
-
- instancep->clearGetResults();
- for (LLMaterialMgr::material_map_t::const_iterator itMaterial = materials.begin(); itMaterial != materials.end(); ++itMaterial)
- {
- const LLMaterialID& material_id = itMaterial->first;
- const LLMaterialPtr material = itMaterial->second;
-
- F32 x, y;
-
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "id";
- cellParams.value = material_id.asString();
- normalMapRowParams.columns.add(cellParams);
- specularMapRowParams.columns.add(cellParams);
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "normal_map_list_map";
- cellParams.value = material->getNormalID().asString();
- normalMapRowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontSansSerif();
-
- material->getNormalOffset(x, y);
- cellParams.column = "normal_map_list_offset_x";
- cellParams.value = llformat("%f", x);
- normalMapRowParams.columns.add(cellParams);
- cellParams.column = "normal_map_list_offset_y";
- cellParams.value = llformat("%f", y);
- normalMapRowParams.columns.add(cellParams);
-
- material->getNormalRepeat(x, y);
- cellParams.column = "normal_map_list_repeat_x";
- cellParams.value = llformat("%f", x);
- normalMapRowParams.columns.add(cellParams);
- cellParams.column = "normal_map_list_repeat_y";
- cellParams.value = llformat("%f", y);
- normalMapRowParams.columns.add(cellParams);
-
- cellParams.column = "normal_map_list_rotation";
- cellParams.value = llformat("%f", material->getNormalRotation());
- normalMapRowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "specular_map_list_map";
- cellParams.value = material->getSpecularID().asString();
- specularMapRowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontSansSerif();
-
- material->getSpecularOffset(x, y);
- cellParams.column = "specular_map_list_offset_x";
- cellParams.value = llformat("%f", x);
- specularMapRowParams.columns.add(cellParams);
- cellParams.column = "specular_map_list_offset_y";
- cellParams.value = llformat("%f", y);
- specularMapRowParams.columns.add(cellParams);
-
- material->getSpecularRepeat(x, y);
- cellParams.column = "specular_map_list_repeat_x";
- cellParams.value = llformat("%f", x);
- specularMapRowParams.columns.add(cellParams);
-
- cellParams.column = "specular_map_list_repeat_y";
- cellParams.value = llformat("%f", y);
- specularMapRowParams.columns.add(cellParams);
-
- cellParams.column = "specular_map_list_rotation";
- cellParams.value = llformat("%f", material->getSpecularRotation());
- specularMapRowParams.columns.add(cellParams);
-
- const LLColor4U& specularColor = material->getSpecularLightColor();
- cellParams.column = "specular_color";
- cellParams.value = llformat("(%d, %d, %d, %d)", specularColor.mV[0],
- specularColor.mV[1], specularColor.mV[2], specularColor.mV[3]);
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "specular_exponent";
- cellParams.value = llformat("%d", material->getSpecularLightExponent());
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "env_intensity";
- cellParams.value = llformat("%d", material->getEnvironmentIntensity());
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "alpha_mask_cutoff";
- cellParams.value = llformat("%d", material->getAlphaMaskCutoff());
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "diffuse_alpha_mode";
- cellParams.value = llformat("%d", material->getDiffuseAlphaMode());
- otherDataRowParams.columns.add(cellParams);
-
- normalMapRowParams.value = cellParams.value;
- specularMapRowParams.value = cellParams.value;
- otherDataRowParams.value = cellParams.value;
-
- instancep->mGetNormalMapScrollList->addRow(normalMapRowParams);
- instancep->mGetSpecularMapScrollList->addRow(specularMapRowParams);
- instancep->mGetOtherDataScrollList->addRow(otherDataRowParams);
- }
-}
-
-void LLFloaterDebugMaterials::onPostMaterial(const LLMaterialID& material_id, const LLMaterialPtr materialp)
-{
- LLFloaterDebugMaterials* instancep = LLFloaterReg::findTypedInstance<LLFloaterDebugMaterials>("floater_debug_materials");
- if ( (!instancep) || (!materialp.get()) )
- {
- return;
- }
-
- LLScrollListCell::Params cellParams;
- LLScrollListItem::Params normalMapRowParams;
- LLScrollListItem::Params specularMapRowParams;
- LLScrollListItem::Params otherDataRowParams;
-
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "id";
- cellParams.value = material_id.asString();
- normalMapRowParams.columns.add(cellParams);
- specularMapRowParams.columns.add(cellParams);
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "normal_map_list_map";
- cellParams.value = materialp->getNormalID().asString();
- normalMapRowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontSansSerif();
-
- F32 x, y;
- materialp->getNormalOffset(x, y);
- cellParams.column = "normal_map_list_offset_x";
- cellParams.value = llformat("%f", x);
- normalMapRowParams.columns.add(cellParams);
- cellParams.column = "normal_map_list_offset_y";
- cellParams.value = llformat("%f", y);
- normalMapRowParams.columns.add(cellParams);
-
- materialp->getNormalRepeat(x, y);
- cellParams.column = "normal_map_list_repeat_x";
- cellParams.value = llformat("%f", x);
- normalMapRowParams.columns.add(cellParams);
- cellParams.column = "normal_map_list_repeat_y";
- cellParams.value = llformat("%f", y);
- normalMapRowParams.columns.add(cellParams);
-
- cellParams.column = "normal_map_list_rotation";
- cellParams.value = llformat("%f", materialp->getNormalRotation());
- normalMapRowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "specular_map_list_map";
- cellParams.value = materialp->getSpecularID().asString();
- specularMapRowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontSansSerif();
-
- materialp->getSpecularOffset(x, y);
- cellParams.column = "specular_map_list_offset_x";
- cellParams.value = llformat("%f", x);
- specularMapRowParams.columns.add(cellParams);
- cellParams.column = "specular_map_list_offset_y";
- cellParams.value = llformat("%f", y);
- specularMapRowParams.columns.add(cellParams);
-
- materialp->getSpecularRepeat(x, y);
- cellParams.column = "specular_map_list_repeat_x";
- cellParams.value = llformat("%f", x);
- specularMapRowParams.columns.add(cellParams);
- cellParams.column = "specular_map_list_repeat_y";
- cellParams.value = llformat("%f", y);
- specularMapRowParams.columns.add(cellParams);
-
- cellParams.column = "specular_map_list_rotation";
- cellParams.value = llformat("%d", materialp->getSpecularRotation());
- specularMapRowParams.columns.add(cellParams);
-
- const LLColor4U& specularColor =materialp->getSpecularLightColor();
- cellParams.column = "specular_color";
- cellParams.value = llformat("(%d, %d, %d, %d)", specularColor.mV[0],
- specularColor.mV[1], specularColor.mV[2], specularColor.mV[3]);
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "specular_exponent";
- cellParams.value = llformat("%d", materialp->getSpecularLightExponent());
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "env_intensity";
- cellParams.value = llformat("%d", materialp->getEnvironmentIntensity());
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "alpha_mask_cutoff";
- cellParams.value = llformat("%d", materialp->getAlphaMaskCutoff());
- otherDataRowParams.columns.add(cellParams);
-
- cellParams.column = "diffuse_alpha_mode";
- cellParams.value = llformat("%d", materialp->getDiffuseAlphaMode());
- otherDataRowParams.columns.add(cellParams);
-
- normalMapRowParams.value = cellParams.value;
- specularMapRowParams.value = cellParams.value;
- otherDataRowParams.value = cellParams.value;
-
- instancep->mPostNormalMapScrollList->addRow(normalMapRowParams);
- instancep->mPostSpecularMapScrollList->addRow(specularMapRowParams);
- instancep->mPostOtherDataScrollList->addRow(otherDataRowParams);
-}
-
-void LLFloaterDebugMaterials::setState(EState pState)
-{
- mState = pState;
- updateStatusMessage();
- updateControls();
-}
-
-void LLFloaterDebugMaterials::refreshObjectEdit()
-{
- mPutScrollList->deleteAllItems();
-
- LLScrollListCell::Params cellParams;
- LLScrollListItem::Params rowParams;
-
- LLObjectSelectionHandle selectionHandle = LLSelectMgr::getInstance()->getEditSelection();
- for (LLObjectSelection::valid_iterator objectIter = selectionHandle->valid_begin();
- objectIter != selectionHandle->valid_end(); ++objectIter)
- {
- LLSelectNode* nodep = *objectIter;
-
- LLViewerObject* objectp = nodep->getObject();
- if (objectp != NULL)
- {
- S32 numTEs = llmin(static_cast<S32>(objectp->getNumTEs()), objectp->getNumFaces());
- for (S32 curTEIndex = 0; curTEIndex < numTEs; ++curTEIndex)
- {
- if (nodep->isTESelected(curTEIndex))
- {
- const LLTextureEntry* tep = objectp->getTE(curTEIndex);
-
- cellParams.font = LLFontGL::getFontMonospace();
-
- cellParams.column = "material_id";
- cellParams.value = tep->getMaterialID().asString();
- rowParams.columns.add(cellParams);
-
- cellParams.font = LLFontGL::getFontSansSerif();
-
- cellParams.column = "object_id";
- cellParams.value = objectp->getID().asString();
- rowParams.columns.add(cellParams);
-
- cellParams.column = "face_index";
- cellParams.value = llformat("%d", curTEIndex);
- rowParams.columns.add(cellParams);
-
- mPutScrollList->addRow(rowParams);
- }
- }
- }
- }
-}
-
-void LLFloaterDebugMaterials::resetObjectEditInputs()
-{
- const LLSD zeroValue = static_cast<LLSD::Integer>(0);
- const LLSD maxAlphaValue = static_cast<LLSD::Integer>(255);
-
- mNormalMap->clear();
- mNormalMapOffsetX->setValue(zeroValue);
- mNormalMapOffsetY->setValue(zeroValue);
- mNormalMapRepeatX->setValue(zeroValue);
- mNormalMapRepeatY->setValue(zeroValue);
- mNormalMapRotation->setValue(zeroValue);
-
- mSpecularMap->clear();
- mSpecularMapOffsetX->setValue(zeroValue);
- mSpecularMapOffsetY->setValue(zeroValue);
- mSpecularMapRepeatX->setValue(zeroValue);
- mSpecularMapRepeatY->setValue(zeroValue);
- mSpecularMapRotation->setValue(zeroValue);
-
- mSpecularColor->set(mDefaultSpecularColor);
- mSpecularColorAlpha->setValue(maxAlphaValue);
- mSpecularExponent->setValue(zeroValue);
- mEnvironmentExponent->setValue(zeroValue);
- mAlphaMaskCutoff->setValue(zeroValue);
- mDiffuseAlphaMode->setValue(zeroValue);
-}
-
-void LLFloaterDebugMaterials::clearGetResults()
-{
- mGetNormalMapScrollList->deleteAllItems();
- mGetSpecularMapScrollList->deleteAllItems();
- mGetOtherDataScrollList->deleteAllItems();
-}
-
-void LLFloaterDebugMaterials::clearPostResults()
-{
- mPostNormalMapScrollList->deleteAllItems();
- mPostSpecularMapScrollList->deleteAllItems();
- mPostOtherDataScrollList->deleteAllItems();
-}
-
-void LLFloaterDebugMaterials::clearViewableObjectsResults()
-{
- mViewableObjectsScrollList->deleteAllItems();
- clearUnparsedQueryData();
-}
-
-void LLFloaterDebugMaterials::setUnparsedQueryData()
-{
- mNextUnparsedQueryDataIndex = 0;
-
- updateQueryParsingStatus();
-}
-
-void LLFloaterDebugMaterials::clearUnparsedQueryData()
-{
- mNextUnparsedQueryDataIndex = -1;
-
- updateQueryParsingStatus();
-}
-
-void LLFloaterDebugMaterials::updateQueryParsingStatus()
-{
- std::string queryStatus;
-
- if (mNextUnparsedQueryDataIndex >= 0)
- {
- LLLocale locale(LLStringUtil::getLocale());
- std::string numProcessedString;
- LLResMgr::getInstance()->getIntegerString(numProcessedString, mNextUnparsedQueryDataIndex);
-
- std::string numTotalString;
- LLResMgr::getInstance()->getIntegerString(numTotalString, gObjectList.getNumObjects());
-
- LLStringUtil::format_map_t stringArgs;
- stringArgs["[NUM_PROCESSED]"] = numProcessedString;
- stringArgs["[NUM_TOTAL]"] = numTotalString;
-
- queryStatus = getString("querying_status_in_progress", stringArgs);
- }
- else
- {
- queryStatus = getString("querying_status_done");
- }
-
- mQueryStatusText->setText(static_cast<const LLStringExplicit>(queryStatus));
-}
-
-void LLFloaterDebugMaterials::updateStatusMessage()
-{
- std::string statusText;
- LLStyle::Params styleParams;
-
- switch (getState())
- {
- case kNoRegion :
- statusText = getString("status_no_region");
- styleParams.color = mErrorColor;
- break;
- case kCapabilitiesLoading :
- statusText = getString("status_capabilities_loading");
- styleParams.color = mWarningColor;
- break;
- case kReady :
- statusText = getString("status_ready");
- break;
- case kRequestStarted :
- statusText = getString("status_request_started");
- styleParams.color = mWarningColor;
- break;
- case kRequestCompleted :
- statusText = getString("status_request_completed");
- break;
- case kNotEnabled :
- statusText = getString("status_not_enabled");
- styleParams.color = mErrorColor;
- break;
- case kError :
- statusText = getString("status_error");
- styleParams.color = mErrorColor;
- break;
- default :
- statusText = getString("status_ready");
- llassert(0);
- break;
- }
-
- mStatusText->setText((LLStringExplicit)statusText, styleParams);
-}
-
-void LLFloaterDebugMaterials::updateControls()
-{
- LLObjectSelectionHandle selectionHandle = LLSelectMgr::getInstance()->getEditSelection();
- bool isPutEnabled = (selectionHandle->valid_begin() != selectionHandle->valid_end());
- bool isPostEnabled = (mViewableObjectsScrollList->getNumSelected() > 0);
-
- switch (getState())
- {
- case kNoRegion :
- case kCapabilitiesLoading :
- case kRequestStarted :
- case kNotEnabled :
- mGetButton->setEnabled(FALSE);
- mPutSetButton->setEnabled(FALSE);
- mPutClearButton->setEnabled(FALSE);
- mPostButton->setEnabled(FALSE);
- break;
- case kReady :
- case kRequestCompleted :
- case kError :
- mGetButton->setEnabled(TRUE);
- mPutSetButton->setEnabled(isPutEnabled);
- mPutClearButton->setEnabled(isPutEnabled);
- mPostButton->setEnabled(isPostEnabled);
- break;
- default :
- mGetButton->setEnabled(TRUE);
- mPutSetButton->setEnabled(isPutEnabled);
- mPutClearButton->setEnabled(isPutEnabled);
- mPostButton->setEnabled(isPostEnabled);
- llassert(0);
- break;
- }
-}
-
-template<typename T> T getLineEditorValue(const LLLineEditor *pLineEditor);
-
-template<> U8 getLineEditorValue(const LLLineEditor *pLineEditor)
-{
- U8 value = 0;
-
- LLStringUtil::convertToU8(pLineEditor->getText(), value);
-
- return value;
-}
-
-LLMaterial LLFloaterDebugMaterials::getMaterial() const
-{
- LLMaterial material;
-
- material.setNormalID(mNormalMap->getImageAssetID());
- material.setNormalOffset(mNormalMapOffsetX->get(), mNormalMapOffsetY->get());
- material.setNormalRepeat(mNormalMapRepeatX->get(), mNormalMapRepeatY->get());
- material.setNormalRotation(mNormalMapRotation->get());
-
- material.setSpecularID(mSpecularMap->getImageAssetID());
- material.setSpecularOffset(mSpecularMapOffsetX->get(), mSpecularMapOffsetY->get());
- material.setSpecularRepeat(mSpecularMapRepeatX->get(), mSpecularMapRepeatY->get());
- material.setSpecularRotation(mSpecularMapRotation->get());
-
- const LLColor4& specularColor = mSpecularColor->get();
- LLColor4U specularColor4U = specularColor;
- specularColor4U.setAlpha(static_cast<U8>(llclamp(llround(mSpecularColorAlpha->get()), 0, 255)));
- material.setSpecularLightColor(specularColor4U);
-
- material.setSpecularLightExponent(getLineEditorValue<U8>(mSpecularExponent));
- material.setEnvironmentIntensity(getLineEditorValue<U8>(mEnvironmentExponent));
- material.setDiffuseAlphaMode(getLineEditorValue<U8>(mDiffuseAlphaMode));
- material.setAlphaMaskCutoff(getLineEditorValue<U8>(mAlphaMaskCutoff));
-
- return material;
-}
diff --git a/indra/newview/llfloaterdebugmaterials.h b/indra/newview/llfloaterdebugmaterials.h
deleted file mode 100644
index 0bd33d7cd0..0000000000
--- a/indra/newview/llfloaterdebugmaterials.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
-* @file llfloaterdebugmaterials.h
-* @brief Header file for llfloaterdebugmaterials
-* @author Stinson@lindenlab.com
-*
-* $LicenseInfo:firstyear=2012&license=viewerlgpl$
-* Second Life Viewer Source Code
-* Copyright (C) 2012, 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$
-*/
-#ifndef LL_LLFLOATERDEBUGMATERIALS_H
-#define LL_LLFLOATERDEBUGMATERIALS_H
-
-#include <string>
-
-#include <boost/shared_ptr.hpp>
-#include <boost/signals2.hpp>
-
-#include "llfloater.h"
-#include "llmaterial.h"
-#include "llmaterialmgr.h"
-#include "lluuid.h"
-#include "v4color.h"
-
-class LLButton;
-class LLColorSwatchCtrl;
-class LLColor4U;
-class LLLineEditor;
-class LLMaterialID;
-class LLScrollListCtrl;
-class LLSD;
-class LLSpinCtrl;
-class LLTextBase;
-class LLTextureCtrl;
-class LLUICtrl;
-class MultiMaterialsResponder;
-
-typedef boost::shared_ptr<MultiMaterialsResponder> MultiMaterialsResponderPtr;
-
-class LLFloaterDebugMaterials : public LLFloater
-{
-public:
- virtual BOOL postBuild();
-
- virtual void onOpen(const LLSD& pKey);
- virtual void onClose(bool pIsAppQuitting);
-
- virtual void draw();
-
-protected:
-
-private:
- friend class LLFloaterReg;
-
- typedef enum {
- kNoRegion,
- kCapabilitiesLoading,
- kReady,
- kRequestStarted,
- kRequestCompleted,
- kNotEnabled,
- kError
- } EState;
-
- LLFloaterDebugMaterials(const LLSD& pParams);
- virtual ~LLFloaterDebugMaterials();
-
- void onGetClicked();
- void onValueEntered(LLUICtrl* pUICtrl);
- void onPutSetClicked();
- void onPutClearClicked();
- void onResetPutValuesClicked();
- void onQueryVisibleObjectsClicked();
- void onPostClicked();
- void onRegionCross();
- void onInWorldSelectionChange();
- void onGetScrollListSelectionChange(LLUICtrl* pUICtrl);
- void onPostScrollListSelectionChange(LLUICtrl* pUICtrl);
- void onViewableObjectsScrollListSelectionChange();
- void onDeferredCheckRegionMaterialStatus(LLUUID regionId);
- void onDeferredRequestGetMaterials(LLUUID regionId);
- void onDeferredRequestPutMaterials(LLUUID regionId, bool pIsDoSet);
-
- void checkRegionMaterialStatus();
- void checkRegionMaterialStatus(const LLUUID& regionId);
-
- void requestGetMaterials();
- void requestGetMaterials(const LLUUID& regionId);
-
- void requestPutMaterials(bool pIsDoSet);
- void requestPutMaterials(const LLUUID& regionId, bool pIsDoSet);
-
- static void onGetMaterials(const LLUUID& region_id, const LLMaterialMgr::material_map_t& materials);
- static void onPostMaterial(const LLMaterialID& material_id, const LLMaterialPtr materialp);
-
- void parseQueryViewableObjects();
-
- void setState(EState pState);
- inline EState getState() const;
-
- void refreshObjectEdit();
- void resetObjectEditInputs();
- void clearGetResults();
- void clearPostResults();
- void clearViewableObjectsResults();
-
- void setUnparsedQueryData();
- void clearUnparsedQueryData();
- void updateQueryParsingStatus();
-
- void updateStatusMessage();
- void updateControls();
-
- LLMaterial getMaterial() const;
-
- LLTextBase* mStatusText;
- LLButton* mGetButton;
- LLTextBase* mParsingStatusText;
- LLScrollListCtrl* mGetNormalMapScrollList;
- LLScrollListCtrl* mGetSpecularMapScrollList;
- LLScrollListCtrl* mGetOtherDataScrollList;
- LLTextureCtrl* mNormalMap;
- LLSpinCtrl* mNormalMapOffsetX;
- LLSpinCtrl* mNormalMapOffsetY;
- LLSpinCtrl* mNormalMapRepeatX;
- LLSpinCtrl* mNormalMapRepeatY;
- LLSpinCtrl* mNormalMapRotation;
- LLTextureCtrl* mSpecularMap;
- LLSpinCtrl* mSpecularMapOffsetX;
- LLSpinCtrl* mSpecularMapOffsetY;
- LLSpinCtrl* mSpecularMapRepeatX;
- LLSpinCtrl* mSpecularMapRepeatY;
- LLSpinCtrl* mSpecularMapRotation;
- LLColorSwatchCtrl* mSpecularColor;
- LLSpinCtrl* mSpecularColorAlpha;
- LLLineEditor* mSpecularExponent;
- LLLineEditor* mEnvironmentExponent;
- LLLineEditor* mAlphaMaskCutoff;
- LLLineEditor* mDiffuseAlphaMode;
- LLButton* mPutSetButton;
- LLButton* mPutClearButton;
- LLScrollListCtrl* mPutScrollList;
- LLButton* mQueryViewableObjectsButton;
- LLTextBase* mQueryStatusText;
- LLScrollListCtrl* mViewableObjectsScrollList;
- LLButton* mPostButton;
- LLScrollListCtrl* mPostNormalMapScrollList;
- LLScrollListCtrl* mPostSpecularMapScrollList;
- LLScrollListCtrl* mPostOtherDataScrollList;
-
- LLColor4 mDefaultSpecularColor;
-
- EState mState;
- LLColor4 mWarningColor;
- LLColor4 mErrorColor;
-
- boost::signals2::connection mRegionCrossConnection;
- boost::signals2::connection mTeleportFailedConnection;
- boost::signals2::connection mSelectionUpdateConnection;
-
- S32 mNextUnparsedQueryDataIndex;
-};
-
-
-LLFloaterDebugMaterials::EState LLFloaterDebugMaterials::getState() const
-{
- return mState;
-}
-
-#endif // LL_LLFLOATERDEBUGMATERIALS_H
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index b630b5bbe6..05fc3fe7d1 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -50,7 +50,6 @@
#include "llfloaterbump.h"
#include "llfloaterbvhpreview.h"
#include "llfloatercamera.h"
-#include "llfloaterdebugmaterials.h"
#include "llfloaterdeleteenvpreset.h"
#include "llfloaterdisplayname.h"
#include "llfloatereditdaycycle.h"
@@ -256,7 +255,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("pathfinding_characters", "floater_pathfinding_characters.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPathfindingCharacters>);
LLFloaterReg::add("pathfinding_linksets", "floater_pathfinding_linksets.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPathfindingLinksets>);
LLFloaterReg::add("pathfinding_console", "floater_pathfinding_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPathfindingConsole>);
- LLFloaterReg::add("floater_debug_materials", "floater_debug_materials.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDebugMaterials>);
+
LLFloaterReg::add("people", "floater_people.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
LLFloaterReg::add("places", "floater_places.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
diff --git a/indra/newview/skins/default/xui/en/floater_debug_materials.xml b/indra/newview/skins/default/xui/en/floater_debug_materials.xml
deleted file mode 100644
index 3a450fdeff..0000000000
--- a/indra/newview/skins/default/xui/en/floater_debug_materials.xml
+++ /dev/null
@@ -1,995 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- positioning="cascading"
- can_tear_off="false"
- can_resize="true"
- height="770"
- width="1040"
- min_height="795"
- min_width="1040"
- layout="topleft"
- name="floater_debug_materials"
- reuse_instance="true"
- save_rect="false"
- single_instance="true"
- title="Debug materials">
- <floater.string name="status_no_region">No current region available.</floater.string>
- <floater.string name="status_capabilities_loading">Region capabilities are loading.</floater.string>
- <floater.string name="status_ready">Materials are enabled for this region.</floater.string>
- <floater.string name="status_request_started">Request sent.</floater.string>
- <floater.string name="status_request_completed">Request received.</floater.string>
- <floater.string name="status_not_enabled">Materials are not enabled for this region.</floater.string>
- <floater.string name="status_error">An error occurred during the request.</floater.string>
- <floater.string name="loading_status_in_progress">Processing [NUM_PROCESSED] out of [NUM_TOTAL]</floater.string>
- <floater.string name="loading_status_done">Complete</floater.string>
- <floater.string name="querying_status_in_progress">Processing [NUM_PROCESSED] out of [NUM_TOTAL]</floater.string>
- <floater.string name="querying_status_done">Complete</floater.string>
- <panel
- border="false"
- bevel_style="none"
- follows="left|top"
- layout="topleft"
- left="12"
- top_pad="10"
- height="61"
- width="214">
- <text
- height="13"
- word_wrap="true"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- layout="topleft"
- left="0"
- top_pad="0"
- width="214">
- Status
- </text>
- <text
- height="40"
- word_wrap="true"
- use_ellipses="false"
- type="string"
- text_color="MaterialGoodColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="0"
- name="material_status"
- top_pad="8"
- width="214">
- </text>
- </panel>
- <tab_container
- follows="left|top|right"
- layout="topleft"
- tab_position="top"
- left="10"
- top_pad="10"
- height="670"
- width="1020">
- <panel
- border="true"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- label="Current region"
- height="641"
- top_pad="10"
- width="1020">
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="479"
- top_pad="10"
- width="1020">
- <button
- follows="left|top"
- height="22"
- label="Get"
- layout="topleft"
- name="get_button"
- top_pad="0"
- width="214"/>
- <text
- height="13"
- word_wrap="true"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="2"
- top_pad="8"
- width="150">
- Loading Status
- </text>
- <text
- height="13"
- word_wrap="true"
- use_ellipses="false"
- type="string"
- text_color="MaterialGoodColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left_pad="0"
- name="loading_status"
- top_pad="-13"
- width="400">
- </text>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="135"
- layout="topleft"
- left="0"
- top_pad="10"
- tab_stop="false"
- multi_select="false"
- name="get_other_data_scroll_list"
- width="775">
- <scroll_list.columns
- label="Material ID"
- name="id"
- dynamic_width="true" />
- <scroll_list.columns
- label="Specular Color"
- name="specular_color"
- width="120" />
- <scroll_list.columns
- label="Specular Exponent"
- name="specular_exponent"
- width="112" />
- <scroll_list.columns
- label="Env Intensity"
- name="env_intensity"
- width="80" />
- <scroll_list.columns
- label="Alpha Mask Cutoff"
- name="alpha_mask_cutoff"
- width="110" />
- <scroll_list.columns
- label="Diffuse Alpha Mode"
- name="diffuse_alpha_mode"
- width="118" />
- </scroll_list>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="135"
- layout="topleft"
- top_pad="10"
- tab_stop="false"
- multi_select="false"
- name="get_specular_map_scroll_list"
- width="1020">
- <scroll_list.columns
- label="Material ID"
- name="id"
- dynamic_width="true" />
- <scroll_list.columns
- label="Specular Map"
- name="specular_map_list_map"
- width="225" />
- <scroll_list.columns
- label="Offset X"
- name="specular_map_list_offset_x"
- width="112" />
- <scroll_list.columns
- label="Offset Y"
- name="specular_map_list_offset_y"
- width="112" />
- <scroll_list.columns
- label="Repeat X"
- name="specular_map_list_repeat_x"
- width="112" />
- <scroll_list.columns
- label="Repeat Y"
- name="specular_map_list_repeat_y"
- width="112" />
- <scroll_list.columns
- label="Rotation"
- name="specular_map_list_rotation"
- width="112" />
- </scroll_list>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="135"
- layout="topleft"
- top_pad="10"
- tab_stop="false"
- multi_select="false"
- name="get_normal_map_scroll_list"
- width="1020">
- <scroll_list.columns
- label="Material ID"
- name="id"
- dynamic_width="true" />
- <scroll_list.columns
- label="Normal Map"
- name="normal_map_list_map"
- width="225" />
- <scroll_list.columns
- label="Offset X"
- name="normal_map_list_offset_x"
- width="112" />
- <scroll_list.columns
- label="Offset Y"
- name="normal_map_list_offset_y"
- width="112" />
- <scroll_list.columns
- label="Repeat X"
- name="normal_map_list_repeat_x"
- width="112" />
- <scroll_list.columns
- label="Repeat Y"
- name="normal_map_list_repeat_y"
- width="112" />
- <scroll_list.columns
- label="Rotation"
- name="normal_map_list_rotation"
- width="112" />
- </scroll_list>
- </panel>
- </panel>
- <panel
- border="true"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- label="Object editing"
- height="641"
- top_pad="10"
- width="1010">
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- left="2"
- top_pad="10"
- height="420"
- width="810">
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="265"
- top_pad="0"
- width="810">
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="226"
- top_pad="0"
- width="263">
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="0"
- top_pad="38"
- width="160">
- Normal Map
- </text>
- <texture_picker
- allow_no_texture="true"
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- left_pad="0"
- top_pad="-50"
- label_width="0"
- height="100"
- width="100"
- mouse_opaque="true"
- name="normal_map"
- tool_tip="Click to open texture picker" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-260"
- label="Normal Map Offset X"
- max_val="1.0"
- min_val="-1.0"
- name="normal_map_offset_x"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Normal Map Offset Y"
- max_val="1.0"
- min_val="-1.0"
- name="normal_map_offset_y"
- top_pad="10"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Normal Map Repeat X"
- max_val="64"
- min_val="0.0"
- name="normal_map_repeat_x"
- top_pad="10"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- max_val="64"
- min_val="0.0"
- label="Normal Map Repeat Y"
- name="normal_map_repeat_y"
- top_pad="10"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Normal Map Rotation"
- max_val="9999"
- min_val="-9999"
- name="normal_map_rotation"
- top_pad="10"
- width="240" />
- </panel>
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="226"
- top_pad="-226"
- left_pad="20"
- width="263">
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="0"
- top_pad="38"
- width="160">
- Specular Map
- </text>
- <texture_picker
- allow_no_texture="true"
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- left_pad="0"
- top_pad="-50"
- label_width="0"
- height="100"
- width="100"
- mouse_opaque="true"
- name="specular_map"
- tool_tip="Click to open texture picker" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-260"
- label="Specular Map Offset X"
- max_val="1.0"
- min_val="-1.0"
- name="specular_map_offset_x"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Specular Map Offset Y"
- max_val="1.0"
- min_val="-1.0"
- name="specular_map_offset_y"
- top_pad="10"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Specular Map Repeat X"
- max_val="64"
- min_val="0.0"
- name="specular_map_repeat_x"
- top_pad="10"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="0.1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Specular Map Repeat Y"
- max_val="64"
- min_val="0.0"
- name="specular_map_repeat_y"
- top_pad="10"
- width="240" />
- <spinner
- allow_text_entry="true"
- follows="left|top"
- height="20"
- initial_value="0"
- increment="1"
- decimal_digits="4"
- label_width="160"
- layout="topleft"
- left_pad="-240"
- label="Specular Map Rotation"
- max_val="9999"
- min_val="-9999"
- name="specular_map_rotation"
- top_pad="10"
- width="240" />
- </panel>
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="162"
- top_pad="-226"
- left_pad="20"
- width="243">
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="0"
- top_pad="10"
- width="160">
- Specular Color
- </text>
- <color_swatch
- can_apply_immediately="true"
- color="1 1 1 1"
- follows="left|top"
- height="30"
- layout="topleft"
- label_height="0"
- label_width="0"
- left_pad="0"
- top_pad="-22"
- name="specular_color"
- tool_tip="Click to open color picker"
- width="40" />
- <spinner
- follows="left|top"
- height="20"
- initial_value="255"
- max_val="255"
- min_val="0"
- increment="1"
- decimal_digits="0"
- allow_text_entry="true"
- layout="topleft"
- label_width="160"
- left="0"
- top_pad="10"
- label="Specular Color Alpha"
- name="specular_color_alpha"
- width="240" />
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left_pad="-240"
- top_pad="13"
- width="160">
- Specular Exponent
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- default_text="0"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="0"
- top_pad="-18"
- max_length_chars="255"
- name="specular_exponent"
- width="80" />
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left_pad="-240"
- top_pad="10"
- width="160">
- Environment Exponent
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- default_text="0"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="0"
- top_pad="-18"
- max_length_chars="255"
- name="environment_exponent"
- width="80" />
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left_pad="-240"
- top_pad="10"
- width="160">
- Alpha Mask Cuttoff
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- default_text="0"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="0"
- top_pad="-18"
- max_length_chars="255"
- name="alpha_mask_cutoff"
- width="80" />
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left_pad="-240"
- top_pad="10"
- width="160">
- Diffuse Alpha Mode
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- default_text="0"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="0"
- top_pad="-18"
- max_length_chars="255"
- name="diffuse_alpha_mode"
- width="80" />
- </panel>
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="22"
- left="0"
- top_pad="80"
- width="810">
- <button
- follows="left|top"
- height="22"
- label="Set Face Data"
- layout="topleft"
- name="put_set_button"
- left="0"
- top="0"
- width="214"/>
- <button
- follows="left|top"
- height="22"
- label="Clear Face Data"
- layout="topleft"
- name="put_clear_button"
- left_pad="20"
- width="214"/>
- <button
- follows="left|top"
- height="22"
- label="Reset Input Values"
- layout="topleft"
- name="reset_put_values_button"
- left_pad="146"
- width="214"/>
- </panel>
- </panel>
- <view_border
- bevel_style="none"
- follows="left|top"
- height="0"
- layout="topleft"
- name="horiz_separator"
- top_pad="10"
- left="0"
- width="810"/>
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="125"
- top_pad="20"
- width="400">
- <text
- height="13"
- word_wrap="false"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="0"
- top_pad="0"
- width="160">
- Active selection
- </text>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="300"
- layout="topleft"
- left="0"
- top_pad="10"
- tab_stop="false"
- multi_select="true"
- name="put_scroll_list"
- width="600">
- <scroll_list.columns
- label="Object ID"
- name="object_id"
- width="225" />
- <scroll_list.columns
- label="Face Index"
- name="face_index"
- width="70" />
- <scroll_list.columns
- label="MaterialID"
- name="material_id"
- dynamic_width="true" />
- </scroll_list>
- </panel>
- </panel>
- </panel>
- <panel
- border="true"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- label="Viewable objects"
- height="641"
- top_pad="10"
- width="1020">
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="641"
- top_pad="0"
- width="1020">
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- left="0"
- top_pad="10"
- height="153"
- width="835">
- <button
- follows="left|top"
- height="22"
- label="Query Viewable Objects"
- layout="topleft"
- name="query_viewable_objects_button"
- top_pad="0"
- width="214"/>
- <text
- height="13"
- word_wrap="true"
- use_ellipses="false"
- type="string"
- text_color="LabelTextColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left="2"
- top_pad="8"
- width="150">
- Loading Status
- </text>
- <text
- height="13"
- word_wrap="true"
- use_ellipses="false"
- type="string"
- text_color="MaterialGoodColor"
- length="1"
- follows="left|top"
- layout="topleft"
- left_pad="0"
- name="query_status"
- top_pad="-13"
- width="400">
- </text>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="100"
- layout="topleft"
- top_pad="10"
- left="0"
- tab_stop="false"
- multi_select="true"
- name="viewable_objects_scroll_list"
- width="835">
- <scroll_list.columns
- label="Object ID"
- name="object_id"
- width="225" />
- <scroll_list.columns
- label="Region"
- name="region"
- width="225" />
- <scroll_list.columns
- label="Local ID"
- name="local_id"
- width="70" />
- <scroll_list.columns
- label="Face"
- name="face_index"
- width="70" />
- <scroll_list.columns
- label="Material ID"
- name="material_id"
- dynamic_width="true" />
- </scroll_list>
- </panel>
- <view_border
- bevel_style="none"
- follows="left|right|top"
- height="0"
- layout="topleft"
- name="horiz_separator"
- top_pad="10"
- left="0"
- width="1020"/>
- <panel
- border="false"
- bevel_style="none"
- follows="left|top|right"
- layout="topleft"
- height="457"
- top_pad="10"
- width="1020">
- <button
- follows="left|top"
- height="22"
- label="Post Material ID"
- layout="topleft"
- name="post_button"
- top_pad="0"
- width="214"/>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="135"
- layout="topleft"
- top_pad="10"
- left="0"
- tab_stop="false"
- multi_select="false"
- name="post_other_data_scroll_list"
- width="775">
- <scroll_list.columns
- label="Material ID"
- name="id"
- dynamic_width="true" />
- <scroll_list.columns
- label="Specular Color"
- name="specular_color"
- width="120" />
- <scroll_list.columns
- label="Specular Exponent"
- name="specular_exponent"
- width="112" />
- <scroll_list.columns
- label="Env Intensity"
- name="env_intensity"
- width="80" />
- <scroll_list.columns
- label="Alpha Mask Cutoff"
- name="alpha_mask_cutoff"
- width="110" />
- <scroll_list.columns
- label="Diffuse Alpha Mode"
- name="diffuse_alpha_mode"
- width="118" />
- </scroll_list>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="135"
- layout="topleft"
- top_pad="10"
- tab_stop="false"
- multi_select="false"
- name="post_specular_map_scroll_list"
- width="1020">
- <scroll_list.columns
- label="Material ID"
- name="id"
- dynamic_width="true" />
- <scroll_list.columns
- label="Specular Map"
- name="specular_map_list_map"
- width="225" />
- <scroll_list.columns
- label="Offset X"
- name="specular_map_list_offset_x"
- width="112" />
- <scroll_list.columns
- label="Offset Y"
- name="specular_map_list_offset_y"
- width="112" />
- <scroll_list.columns
- label="Repeat X"
- name="specular_map_list_repeat_x"
- width="112" />
- <scroll_list.columns
- label="Repeat Y"
- name="specular_map_list_repeat_y"
- width="112" />
- <scroll_list.columns
- label="Rotation"
- name="specular_map_list_rotation"
- width="112" />
- </scroll_list>
- <scroll_list
- column_padding="0"
- draw_heading="true"
- follows="left|top|right"
- height="135"
- layout="topleft"
- top_pad="10"
- tab_stop="false"
- multi_select="false"
- name="post_normal_map_scroll_list"
- width="1020">
- <scroll_list.columns
- label="Material ID"
- name="id"
- dynamic_width="true" />
- <scroll_list.columns
- label="Normal Map"
- name="normal_map_list_map"
- width="225" />
- <scroll_list.columns
- label="Offset X"
- name="normal_map_list_offset_x"
- width="112" />
- <scroll_list.columns
- label="Offset Y"
- name="normal_map_list_offset_y"
- width="112" />
- <scroll_list.columns
- label="Repeat X"
- name="normal_map_list_repeat_x"
- width="112" />
- <scroll_list.columns
- label="Repeat Y"
- name="normal_map_list_repeat_y"
- width="112" />
- <scroll_list.columns
- label="Rotation"
- name="normal_map_list_rotation"
- width="112" />
- </scroll_list>
- </panel>
- </panel>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 721a1818dd..bbcf7bc3ef 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -2622,16 +2622,6 @@
<menu_item_separator/>
- <menu_item_call
- label="Debug materials ..."
- name="DebugMaterialsMenu">
- <menu_item_call.on_click
- function="Floater.ToggleOrBringToFront"
- parameter="floater_debug_materials" />
- </menu_item_call>
-
- <menu_item_separator />
-
<menu_item_check
label="Debug GL"
name="Debug GL">