diff options
Diffstat (limited to 'linden/indra/llimage/llimageworker.h')
-rw-r--r-- | linden/indra/llimage/llimageworker.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/linden/indra/llimage/llimageworker.h b/linden/indra/llimage/llimageworker.h new file mode 100644 index 0000000..a39d21a --- /dev/null +++ b/linden/indra/llimage/llimageworker.h | |||
@@ -0,0 +1,76 @@ | |||
1 | /** | ||
2 | * @file llimageworker.h | ||
3 | * @brief Object for managing images and their textures. | ||
4 | * | ||
5 | * Copyright (c) 2000-2007, Linden Research, Inc. | ||
6 | * | ||
7 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
8 | * to you under the terms of the GNU General Public License, version 2.0 | ||
9 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
10 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
11 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
12 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
13 | * | ||
14 | * There are special exceptions to the terms and conditions of the GPL as | ||
15 | * it is applied to this Source Code. View the full text of the exception | ||
16 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
17 | * online at http://secondlife.com/developers/opensource/flossexception | ||
18 | * | ||
19 | * By copying, modifying or distributing this software, you acknowledge | ||
20 | * that you have read and understood your obligations described above, | ||
21 | * and agree to abide by those obligations. | ||
22 | * | ||
23 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
24 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
25 | * COMPLETENESS OR PERFORMANCE. | ||
26 | */ | ||
27 | |||
28 | #ifndef LL_LLIMAGEWORKER_H | ||
29 | #define LL_LLIMAGEWORKER_H | ||
30 | |||
31 | #include "llimage.h" | ||
32 | #include "llworkerthread.h" | ||
33 | |||
34 | class LLImageWorker : public LLWorkerClass | ||
35 | { | ||
36 | public: | ||
37 | static void initClass(LLWorkerThread* workerthread); | ||
38 | static void cleanupClass(); | ||
39 | static LLWorkerThread* getWorkerThread() { return sWorkerThread; } | ||
40 | |||
41 | // LLWorkerThread | ||
42 | public: | ||
43 | LLImageWorker(LLImageFormatted* image, U32 priority, S32 discard, LLResponder* responder = NULL); | ||
44 | ~LLImageWorker(); | ||
45 | |||
46 | // called from WORKER THREAD, returns TRUE if done | ||
47 | /*virtual*/ bool doWork(S32 param); | ||
48 | |||
49 | BOOL requestDecodedData(LLPointer<LLImageRaw>& raw, S32 discard = -1); | ||
50 | BOOL requestDecodedAuxData(LLPointer<LLImageRaw>& raw, S32 channel, S32 discard = -1); | ||
51 | void releaseDecodedData(); | ||
52 | void cancelDecode(); | ||
53 | |||
54 | private: | ||
55 | // called from MAIN THREAD | ||
56 | /*virtual*/ void startWork(S32 param); // called from addWork() | ||
57 | /*virtual*/ void endWork(S32 param, bool aborted); // called from doWork() | ||
58 | |||
59 | protected: | ||
60 | LLPointer<LLImageFormatted> mFormattedImage; | ||
61 | LLPointer<LLImageRaw> mDecodedImage; | ||
62 | S32 mDecodedType; | ||
63 | S32 mDiscardLevel; | ||
64 | |||
65 | private: | ||
66 | U32 mPriority; | ||
67 | LLPointer<LLResponder> mResponder; | ||
68 | |||
69 | protected: | ||
70 | static LLWorkerThread* sWorkerThread; | ||
71 | |||
72 | public: | ||
73 | static S32 sCount; | ||
74 | }; | ||
75 | |||
76 | #endif | ||