00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * 00008 * Mark Alexander 00009 * Side Effects 00010 * 477 Richmond Street West 00011 * Toronto, Ontario 00012 * Canada M5V 3E7 00013 * 416-504-9876 00014 * 00015 * NAME: RU_PixelEngine.h 00016 * 00017 * COMMENTS: 00018 * Performs a variety of pixel functions on each pixel. 00019 */ 00020 #ifndef RU_PIXELENGINE_H 00021 #define RU_PIXELENGINE_H 00022 00023 #include "RU_API.h" 00024 #include <UT/UT_PtrArray.h> 00025 #include <UT/UT_Lock.h> 00026 00027 #include "RU_Algorithm.h" 00028 00029 class ru_lut8; 00030 class ru_lut16; 00031 class ru_lut16fp; 00032 class RU_PixelFunction; 00033 00034 class RU_API RU_PixelEngine : public RU_Algorithm 00035 { 00036 public: 00037 RU_PixelEngine(); 00038 virtual ~RU_PixelEngine(); 00039 00040 DECLARE_PIXEL_OP(RU_PixelEngineOp) 00041 00042 // Parameters. 00043 RU_PixelFunction *myFunctionList; 00044 00045 // The remainder of this class should be treated as private. 00046 00047 // Lookup table optimizations. Called internally, do not call. 00048 ru_lut8 *buildLUT8(unsigned int b, unsigned w); 00049 ru_lut16 *buildLUT16(unsigned int b, unsigned w); 00050 ru_lut16fp *buildLUT16FP(); 00051 00052 UT_Lock myLUTLock8, myLUTLock16, myLUTLock16FP; 00053 00054 UT_PtrArray<ru_lut8 *> myLUT8; 00055 UT_PtrArray<ru_lut16 *> myLUT16; 00056 ru_lut16fp *myLUT16FP; 00057 }; 00058 00059 00060 #endif
1.5.9