25 #define TIL_Lookup PXL_Lookup
26 #define TIL_Pixel PXL_Pixel
27 #define TIL_Convert PXL_Convert
37 #define TIL_MAX_THREADS 32
39 #define TIL_DEFAULT_TILE_SIZE 320
41 #define TIL_DEFAULT_INT8_SIZE (TIL_DEFAULT_TILE_SIZE*TIL_DEFAULT_TILE_SIZE)
42 #define TIL_DEFAULT_INT16_SIZE (TIL_DEFAULT_INT8_SIZE * 2)
43 #define TIL_DEFAULT_FLOAT32_SIZE (TIL_DEFAULT_INT8_SIZE * 4)
46 #define TILE_LOCK_WRITE 0
47 #define TILE_LOCK_READ_ONLY 1
64 #define TIL_DataFormat PXL_DataFormat
65 #define TILE_INT8 PXL_INT8
66 #define TILE_INT16 PXL_INT16
67 #define TILE_INT32 PXL_INT32
68 #define TILE_FLOAT32 PXL_FLOAT32
69 #define TILE_FLOAT16 PXL_FLOAT16
70 #define TILE_MAX_DATA_FORMAT PXL_MAX_DATA_FORMAT
72 #define TIL_Packing PXL_Packing
159 #define TILE_WHITE_8 UCHAR_MAX
160 #define TILE_WHITE_16 USHRT_MAX
161 #define TILE_WHITE_32 UINT_MAX
163 #define TILE_CACHE_MANAGER_MAX_LOCKS 4096
165 #define PLANE_MAX_ARRAY_SIZE 4096
166 #define PLANE_MAX_VECTOR_SIZE 4
168 #define PROXY_TABLE_SIZE 309
169 #define POOL_TABLE_SIZE 509
175 #define FOR_EACH_TILE(list,tile, i) \
176 for(i=0, tile=list->myItems[0]; i<PLANE_MAX_VECTOR_SIZE; \
177 i++, tile=list->myItems[SYSmin(i, PLANE_MAX_VECTOR_SIZE-1)])\
180 #define GET_TILE(list,tile,i) \
181 for(tile=0, i=0, tile=list->myItems[0]; i<PLANE_MAX_VECTOR_SIZE; \
182 i++, tile=list->myItems[SYSmin(i, PLANE_MAX_VECTOR_SIZE-1)]) \
185 #define GET_UNCOOKED_TILE(list,tile,i) \
186 for(tile=0, i=0, tile=list->myItems[0]; \
187 i<PLANE_MAX_VECTOR_SIZE; \
188 i++, tile=list->myItems[SYSmin(i, PLANE_MAX_VECTOR_SIZE-1)])\
189 if(tile && !tile->isCooked()) break;
191 #define FOR_EACH_UNCOOKED_TILE(list,tile,i) \
192 for(i=0, tile=list->myItems[0]; i<PLANE_MAX_VECTOR_SIZE; \
193 i++, tile=list->myItems[SYSmin(i, PLANE_MAX_VECTOR_SIZE-1)])\
194 if(tile && !tile->isCooked())
196 #define FOR_EACH_UNCOOKED_PAIR(outlist, inlist, out, in, i) \
197 for(i=0, out=outlist->myItems[0], in=inlist->myItems[0]; \
198 i<PLANE_MAX_VECTOR_SIZE; \
199 i++, out=outlist->myItems[SYSmin(i,PLANE_MAX_VECTOR_SIZE-1)],\
200 in=inlist->myItems[SYSmin(i, PLANE_MAX_VECTOR_SIZE-1)]) \
201 if(out && in && !out->isCooked())
204 #define TILE_INPUT1(list,a) { \
205 a = list->myItems[0]; }
207 #define TILE_INPUT2(list,a,b) { \
208 a = list->myItems[0]; \
209 b = list->myItems[1]; }
211 #define TILE_INPUT3(list,a,b,c) { \
212 a = list->myItems[0]; \
213 b = list->myItems[1]; \
214 c = list->myItems[2]; }
216 #define TILE_INPUT4(list,a,b,c,d) { \
217 a = list->myItems[0]; \
218 b = list->myItems[1]; \
219 c = list->myItems[2]; \
220 d = list->myItems[3]; }
224 #define TILE_SCALAR(list,a) { \
225 a = list->myItems[0]; \
226 if(a && a->isCooked()) a = 0; \
229 #define TILE_VECTOR2(list,a,b) { \
230 a = list->myItems[0]; \
231 b = list->myItems[1]; \
232 if(a && a->isCooked()) a = 0; \
233 if(b && b->isCooked()) b = 0; \
236 #define TILE_VECTOR3(list,a,b,c) { \
237 a = list->myItems[0]; \
238 b = list->myItems[1]; \
239 c = list->myItems[2]; \
240 if(a && a->isCooked()) a = 0; \
241 if(b && b->isCooked()) b = 0; \
242 if(c && c->isCooked()) c = 0; \
245 #define TILE_VECTOR4(list,a,b,c,d){ \
246 a = list->myItems[0]; \
247 b = list->myItems[1]; \
248 c = list->myItems[2]; \
249 d = list->myItems[3]; \
250 if(a && a->isCooked()) a = 0; \
251 if(b && b->isCooked()) b = 0; \
252 if(c && c->isCooked()) c = 0; \
253 if(d && d->isCooked()) d = 0; \
258 #ifdef TIL_DEBUG_LOCK_BLOCKING
259 #define TIL_LOCK(loc) TILlock(loc, __FILE__ ":", __LINE__)
260 #define TIL_UNLOCK(loc) loc.unlock()
261 #define TILwait(n) TILwaitF(n, __FILE__ ":", __LINE__)
263 #define TIL_LOCK(loc) loc.lock()
264 #define TIL_UNLOCK(loc) loc.unlock()
265 #define TILwait(n) TILwaitF(n)
286 unsigned &ib,
unsigned &iw,
bool &fast);
288 unsigned ib,
unsigned iw,
293 float &black,
float &white);
316 float sc,
float sh,
float gamma,
317 const char *lut,
float aspect,
319 bool use8bit,
bool hard_accel,
320 bool hardlut,
bool frag_shader);
338 operator void *() {
return myAligned; }
339 operator const void *() {
return myAligned; }
373 #endif // TIL_DEFINES_H
int PXLpackingComponents(PXL_Packing p)
TIL_API void TILgetBWPoints(TIL_DataFormat d, float b, float w, unsigned &ib, unsigned &iw, bool &fast)
int TILpackingComponents(PXL_Packing p)
unsigned int PXLwhitePoint(PXL_DataFormat dt)
TIL_API bool TILemulationNeeded(int comp, float b, float w, float sc, float sh, float gamma, const char *lut, float aspect, TIL_DataFormat type, bool use8bit, bool hard_accel, bool hardlut, bool frag_shader)
TIL_API bool TILcopyOrRefCompName(const char *&dname, const char *name)
TIL_API bool TILcopyOrRefPlaneName(const char *&dname, const char *name)
int TILpackingDepth(PXL_Packing p)
TIL_API bool TILcheckConstant(void *idata, TIL_DataFormat format, int xres, int yres)
#define SYS_DEPRECATED_REPLACE(__V__, __R__)
unsigned int TILwhitePoint(PXL_DataFormat dt)
GLint GLint GLsizei GLint GLenum GLenum type
TIL_API void TILinitNameRefs()
GLint GLint GLsizei GLint GLenum format
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
int PXLpackingDepth(PXL_Packing p)
TIL_API void TILclearTotalWait()
TIL_API void TILgetFloatBWPoints(TIL_DataFormat d, unsigned ib, unsigned iw, float &b, float &w)
GLuint const GLchar * name
int TILformatDepth(PXL_DataFormat d)
GLboolean GLboolean GLboolean b
TIL_API void TILwaitF(int n, const char *file=0, int line=0)
TIL_API double TILgetTotalWait()
int PXLformatDepth(PXL_DataFormat d)
TIL_API void TILprintLockBlockStats()
TIL_API void TILparsePlaneName(const char *name, UT_String &pname, int &arrayindex)
GLubyte GLubyte GLubyte GLubyte w
TIL_AlignedBlock * myNext
TIL_API TIL_DataFormat TILformatConvert(IMG_DataType)
TIL_API void TILgetBestFormat(TIL_DataFormat d1, float b1, float w1, TIL_DataFormat d2, float b2, float w2, TIL_DataFormat &best, float &black, float &white)
TIL_API void TILlock(UT_Lock &lock, const char *file=0, int line=0)