summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.h
diff options
context:
space:
mode:
authorPalmer <palmer@lindenlab.com>2009-11-17 13:40:11 -0800
committerPalmer <palmer@lindenlab.com>2009-11-17 13:40:11 -0800
commit53495d74ee380d492cfed0af91f7660f49619a9f (patch)
tree5992e4769c9acbecc900710048a8eeb4a7806ae4 /indra/newview/pipeline.h
parent2365dbcd459b37942ddacbcb7010232113a126c1 (diff)
parentc02702f3871979cb7745b49aa502ac3c71f77681 (diff)
Automated merge with ssh://palmer@hg.lindenlab.com/viewer/viewer-2-0
Diffstat (limited to 'indra/newview/pipeline.h')
-rw-r--r--indra/newview/pipeline.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 9193e19bb1..23e98aa0d6 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -278,6 +278,10 @@ public:
LLCullResult::sg_list_t::iterator beginAlphaGroups();
LLCullResult::sg_list_t::iterator endAlphaGroups();
+
+ //mesh management functions
+ void loadMesh(LLVOVolume* volume, LLUUID mesh_id, S32 detail = 0);
+
void addTrianglesDrawn(S32 count);
BOOL hasRenderType(const U32 type) const { return (type && (mRenderTypeMask & (1<<type))) ? TRUE : FALSE; }
BOOL hasRenderDebugFeatureMask(const U32 mask) const { return (mRenderDebugFeatureMask & mask) ? TRUE : FALSE; }
@@ -672,6 +676,35 @@ public:
protected:
std::vector<LLFace*> mSelectedFaces;
+ typedef std::map<LLUUID, std::set<LLUUID> > mesh_load_map;
+ mesh_load_map mLoadingMeshes;
+
+ LLMutex* mMeshMutex;
+
+ class LLMeshThread : public LLThread
+ {
+ public:
+ LLPointer<LLVolume> mVolume;
+ LLVolume* mTargetVolume;
+ LLUUID mMeshID;
+ F32 mDetail;
+ LLMeshThread(LLUUID mesh_id, LLVolume* target);
+ ~LLMeshThread();
+ void run();
+ };
+
+ static void getMeshAssetCallback(LLVFS *vfs,
+ const LLUUID& asset_uuid,
+ LLAssetType::EType type,
+ void* user_data, S32 status, LLExtStat ext_status);
+
+ std::list<LLMeshThread*> mLoadedMeshes;
+ std::list<LLMeshThread*> mPendingMeshes;
+ U32 mMeshThreadCount;
+
+ void meshLoaded(LLMeshThread* mesh_thread);
+ void notifyLoadedMeshes();
+
LLPointer<LLViewerFetchedTexture> mFaceSelectImagep;
LLPointer<LLViewerTexture> mBloomImagep;
LLPointer<LLViewerTexture> mBloomImage2p;