diff options
author | Graham Madarasz <graham@lindenlab.com> | 2013-05-15 17:00:13 -0700 |
---|---|---|
committer | Graham Madarasz <graham@lindenlab.com> | 2013-05-15 17:00:13 -0700 |
commit | 666896ac4efa0575c82cd58c9fe041f354ccbbfc (patch) | |
tree | 62ea74c178c617a3efe77c09307f66c4b543c997 /indra/newview/llmaterialmgr.h | |
parent | c46b24fc9abb00528249b5a1482ace8d31d835c2 (diff) |
NORSPEC-119 put back TE-specific get registration in material manager stomped during 'reloading'.
Diffstat (limited to 'indra/newview/llmaterialmgr.h')
-rw-r--r-- | indra/newview/llmaterialmgr.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llmaterialmgr.h b/indra/newview/llmaterialmgr.h index a6a7a5d1d7..b5ba8ab680 100644 --- a/indra/newview/llmaterialmgr.h +++ b/indra/newview/llmaterialmgr.h @@ -44,9 +44,11 @@ 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); @@ -80,6 +82,26 @@ 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; |