diff options
author | Palmer <palmer@lindenlab.com> | 2009-12-07 16:03:56 -0800 |
---|---|---|
committer | Palmer <palmer@lindenlab.com> | 2009-12-07 16:03:56 -0800 |
commit | 85488f54148b2dba02eadcbd50ccbb552638c3c7 (patch) | |
tree | dbb248900527cac25c307970fb5c817b90b715e7 /indra/newview/pipeline.h | |
parent | ee159d8e742a7281f304fc45b692c111706d294e (diff) | |
parent | 9d3968bb837828568bf58113b8315c8ca2e8dae1 (diff) |
Merge of viewer 2 changes
Diffstat (limited to 'indra/newview/pipeline.h')
-rw-r--r-- | indra/newview/pipeline.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 67004a5f2d..f41f6173a9 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; } @@ -675,6 +679,37 @@ public: protected: std::vector<LLFace*> mSelectedFaces; + + typedef std::map<LLUUID, std::set<LLUUID> > mesh_load_map; + mesh_load_map mLoadingMeshes[4]; + + LLMutex* mMeshMutex; + + class LLMeshThread : public LLThread + { + public: + LLPointer<LLVolume> mVolume; + LLVolume* mTargetVolume; + LLUUID mMeshID; + F32 mDetail; + S32 mDetailIndex; + LLMeshThread(LLUUID mesh_id, LLVolume* target, S32 detail = -1); + ~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; |