summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llmeshrepository.h')
-rw-r--r--indra/newview/llmeshrepository.h16
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;