From 4dabd9c0472deb49573fdafef2fa413e59703f19 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Fri, 2 Mar 2007 21:25:50 +0000 Subject: merge release@58699 beta-1-14-0@58707 -> release --- indra/llimage/llimageworker.h | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 indra/llimage/llimageworker.h (limited to 'indra/llimage/llimageworker.h') diff --git a/indra/llimage/llimageworker.h b/indra/llimage/llimageworker.h new file mode 100644 index 0000000000..cdd30417ce --- /dev/null +++ b/indra/llimage/llimageworker.h @@ -0,0 +1,57 @@ +/** + * @file llimageworker.h + * @brief Object for managing images and their textures. + * + * Copyright (c) 2000-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLIMAGEWORKER_H +#define LL_LLIMAGEWORKER_H + +#include "llimage.h" +#include "llworkerthread.h" + +class LLImageWorker : public LLWorkerClass +{ +public: + static void initClass(LLWorkerThread* workerthread); + static void cleanupClass(); + static LLWorkerThread* getWorkerThread() { return sWorkerThread; } + + // LLWorkerThread +public: + LLImageWorker(LLImageFormatted* image, U32 priority, S32 discard, LLResponder* responder = NULL); + ~LLImageWorker(); + + // called from WORKER THREAD, returns TRUE if done + /*virtual*/ bool doWork(S32 param); + + BOOL requestDecodedData(LLPointer& raw, S32 discard = -1); + BOOL requestDecodedAuxData(LLPointer& raw, S32 channel, S32 discard = -1); + void releaseDecodedData(); + void cancelDecode(); + +private: + // called from MAIN THREAD + /*virtual*/ void startWork(S32 param); // called from addWork() + /*virtual*/ void endWork(S32 param, bool aborted); // called from doWork() + +protected: + LLPointer mFormattedImage; + LLPointer mDecodedImage; + S32 mDecodedType; + S32 mDiscardLevel; + +private: + U32 mPriority; + LLPointer mResponder; + +protected: + static LLWorkerThread* sWorkerThread; + +public: + static S32 sCount; +}; + +#endif -- cgit v1.2.3