summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorKitty Barnett <develop@catznip.com>2013-05-12 13:02:54 +0200
committerKitty Barnett <develop@catznip.com>2013-05-12 13:02:54 +0200
commitc2c9380fe135fd8b191ebe3c9a38129af4994ed8 (patch)
treede1071f7a07703295ca515b9248db9fd801ea82b /indra
parentc486d9498b8274e0fd9c7cba616df10f6a7d8977 (diff)
Avoid code duplication in LLMaterialMgr
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llmaterialmgr.cpp61
-rw-r--r--indra/newview/llmaterialmgr.h22
-rwxr-xr-xindra/newview/llvovolume.cpp2
3 files changed, 1 insertions, 84 deletions
diff --git a/indra/newview/llmaterialmgr.cpp b/indra/newview/llmaterialmgr.cpp
index e41a46038f..fb8cffa4ef 100644
--- a/indra/newview/llmaterialmgr.cpp
+++ b/indra/newview/llmaterialmgr.cpp
@@ -216,51 +216,6 @@ boost::signals2::connection LLMaterialMgr::get(const LLUUID& region_id, const LL
return connection;
}
-boost::signals2::connection LLMaterialMgr::getTE(const LLUUID& region_id, const LLMaterialID& material_id, U32 te, LLMaterialMgr::get_callback_te_t::slot_type cb)
-{
- boost::signals2::connection connection;
-
- material_map_t::const_iterator itMaterial = mMaterials.find(material_id);
- if (itMaterial != mMaterials.end())
- {
- LL_DEBUGS("Materials") << "region " << region_id << " found materialid " << material_id << LL_ENDL;
- get_callback_te_t signal;
- signal.connect(cb);
- signal(material_id, itMaterial->second, te);
- connection = boost::signals2::connection();
- }
- else
- {
- if (!isGetPending(region_id, material_id))
- {
- get_queue_t::iterator itQueue = mGetQueue.find(region_id);
- if (mGetQueue.end() == itQueue)
- {
- LL_DEBUGS("Materials") << "mGetQueue inserting region "<<region_id << LL_ENDL;
- std::pair<get_queue_t::iterator, bool> ret = mGetQueue.insert(std::pair<LLUUID, material_queue_t>(region_id, material_queue_t()));
- itQueue = ret.first;
- }
- LL_DEBUGS("Materials") << "adding material id " << material_id << LL_ENDL;
- itQueue->second.insert(material_id);
- markGetPending(region_id, material_id);
- }
-
- TEMaterialPair te_mat_pair;
- te_mat_pair.te = te;
- te_mat_pair.materialID = material_id;
-
- get_callback_te_map_t::iterator itCallback = mGetTECallbacks.find(te_mat_pair);
- if (itCallback == mGetTECallbacks.end())
- {
- std::pair<get_callback_te_map_t::iterator, bool> ret = mGetTECallbacks.insert(std::pair<TEMaterialPair, get_callback_te_t*>(te_mat_pair, new get_callback_te_t()));
- itCallback = ret.first;
- }
- connection = itCallback->second->connect(cb);
- }
-
- return connection;
-}
-
bool LLMaterialMgr::isGetAllPending(const LLUUID& region_id) const
{
getall_pending_map_t::const_iterator itPending = mGetAllPending.find(region_id);
@@ -345,22 +300,6 @@ const LLMaterialPtr LLMaterialMgr::setMaterial(const LLUUID& region_id, const LL
mGetCallbacks.erase(itCallback);
}
- TEMaterialPair te_mat_pair;
- te_mat_pair.materialID = material_id;
-
- U32 i = 0;
- while (i < LLTEContents::MAX_TES)
- {
- te_mat_pair.te = i++;
- get_callback_te_map_t::iterator itCallbackTE = mGetTECallbacks.find(te_mat_pair);
- if (itCallbackTE != mGetTECallbacks.end())
- {
- (*itCallbackTE->second)(material_id, itMaterial->second, te_mat_pair.te);
- delete itCallbackTE->second;
- mGetTECallbacks.erase(itCallbackTE);
- }
- }
-
return itMaterial->second;
}
diff --git a/indra/newview/llmaterialmgr.h b/indra/newview/llmaterialmgr.h
index 922b16f1cf..a6a7a5d1d7 100644
--- a/indra/newview/llmaterialmgr.h
+++ b/indra/newview/llmaterialmgr.h
@@ -44,11 +44,9 @@ public:
typedef std::map<LLMaterialID, LLMaterialPtr> material_map_t;
typedef boost::signals2::signal<void (const LLMaterialID&, const LLMaterialPtr)> get_callback_t;
- typedef boost::signals2::signal<void (const LLMaterialID&, const LLMaterialPtr, U32 te)> get_callback_te_t;
const LLMaterialPtr get(const LLUUID& region_id, const LLMaterialID& material_id);
boost::signals2::connection get(const LLUUID& region_id, const LLMaterialID& material_id, get_callback_t::slot_type cb);
- boost::signals2::connection getTE(const LLUUID& region_id, const LLMaterialID& material_id, U32 te, get_callback_te_t::slot_type cb);
typedef boost::signals2::signal<void (const LLUUID&, const material_map_t&)> getall_callback_t;
void getAll(const LLUUID& region_id);
@@ -82,26 +80,6 @@ protected:
typedef std::map<LLMaterialID, get_callback_t*> get_callback_map_t;
get_callback_map_t mGetCallbacks;
- // struct for TE-specific material ID query
- struct TEMaterialPair
- {
- U32 te;
- LLMaterialID materialID;
- };
-
- // needed for std::map compliance only
- //
- friend inline bool operator<(
- const struct LLMaterialMgr::TEMaterialPair& lhs,
- const struct LLMaterialMgr::TEMaterialPair& rhs)
- {
- return (lhs.materialID < rhs.materialID) ? TRUE :
- (lhs.te < rhs.te) ? TRUE : FALSE;
- }
-
- typedef std::map<TEMaterialPair, get_callback_te_t*> get_callback_te_map_t;
- get_callback_te_map_t mGetTECallbacks;
-
typedef std::set<LLUUID> getall_queue_t;
getall_queue_t mGetAllQueue;
getall_queue_t mGetAllRequested;
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index df014513ad..734ac2afc8 100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1992,7 +1992,7 @@ S32 LLVOVolume::setTEMaterialID(const U8 te, const LLMaterialID& pMaterialID)
LL_DEBUGS("MaterialTEs") << " " << pMaterialID.asString() << LL_ENDL;
// Use TE-specific version of boost CB hook-up to avoid cross-contaminatin'
- LLMaterialMgr::instance().getTE(getRegion()->getRegionID(), pMaterialID, te, boost::bind(&LLVOVolume::setTEMaterialParamsCallback, this, _1, _2, _3));
+ LLMaterialMgr::instance().get(getRegion()->getRegionID(), pMaterialID, boost::bind(&LLVOVolume::setTEMaterialParamsCallback, this, _1, _2, te));
setChanged(TEXTURE);
if (!mDrawable.isNull())
{