diff options
Diffstat (limited to 'indra/newview/llmeshrepository.h')
-rw-r--r-- | indra/newview/llmeshrepository.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h index 8687ac750b..8c9892b28f 100644 --- a/indra/newview/llmeshrepository.h +++ b/indra/newview/llmeshrepository.h @@ -65,7 +65,7 @@ public: class LLTextureUploadData { public: - LLPointer<LLViewerFetchedTexture> mTexture; + LLViewerFetchedTexture* mTexture; LLUUID mUUID; std::string mRSVP; std::string mLabel; @@ -157,6 +157,7 @@ public: { public: //input params + S32* mDecompID; std::string mStage; std::vector<LLVector3> mPositions; std::vector<U16> mIndices; @@ -167,8 +168,12 @@ public: std::vector<LLPointer<LLVertexBuffer> > mHullMesh; LLModel::convex_hull_decomposition mHull; + //status message callback, called from decomposition thread virtual S32 statusCallback(const char* status, S32 p1, S32 p2) = 0; + + //completed callback, called from the main thread virtual void completed() = 0; + virtual void setStatusMessage(const std::string& msg); }; @@ -193,6 +198,9 @@ public: void doDecompositionSingleHull(); virtual void run(); + + void completeCurrent(); + void notifyCompleted(); std::map<std::string, S32> mStageID; @@ -201,6 +209,8 @@ public: LLPointer<Request> mCurRequest; + std::queue<LLPointer<Request> > mCompletedQ; + }; class LLMeshRepoThread : public LLThread @@ -399,7 +409,7 @@ public: std::queue<LLTextureUploadData> mTextureQ; std::queue<LLTextureUploadData> mConfirmedTextureQ; - std::map<LLPointer<LLViewerFetchedTexture>, LLTextureUploadData> mTextureMap; + std::map<LLViewerFetchedTexture*, LLTextureUploadData> mTextureMap; LLMeshUploadThread(instance_list& data, LLVector3& scale, bool upload_textures, bool upload_skin, bool upload_joints); @@ -442,6 +452,7 @@ public: void init(); void shutdown(); + S32 update() ; //mesh management functions S32 loadMesh(LLVOVolume* volume, const LLVolumeParams& mesh_params, S32 detail = 0); @@ -505,6 +516,7 @@ public: LLMeshRepoThread* mThread; std::vector<LLMeshUploadThread*> mUploads; + std::vector<LLMeshUploadThread*> mUploadWaitList; LLPhysicsDecomp* mDecompThread; |