43 #define PXL_LOOKUP_1D 0x3F
44 #define PXL_SEPARATE_CHANNELS 0x10
45 #define PXL_SINGLE_CHANNEL 0x20
46 #define PXL_ILLEGAL_MATCH 0x30
47 #define PXL_LOG_SAMPLE 0x100
59 static struct BuildGammaTag {} BuildGamma;
60 static struct BuildSRGBTag {} BuildSRGB;
61 static struct BuildRec709Tag {} BuildRec709;
62 static struct BuildOCIOTag {} BuildOCIO;
84 const char *src_color_space,
85 const char *dest_color_space,
91 int64 getMemoryUsage(
bool inclusive)
const;
98 void evalLUT(
float color[3])
const;
104 void set3DLUT(
int size,
float *lut);
110 float black=0.0
f,
float white=1.0
f,
111 int comp = -1)
const;
116 fpreal indexToValue(
int i)
const;
121 bool isValid()
const;
125 bool getLogSampling()
const;
126 float getLogBias()
const;
127 int getNumChannels()
const;
128 int getTableSize()
const;
129 float getBlackPoint()
const;
130 float getWhitePoint()
const;
131 void getDomain(
float &
s,
float &e)
const;
132 void getRange(
float &
s,
float &e)
const;
139 void setLogSampling(
bool log);
140 void setLogBias(
float bias);
142 void setNumChannels(
int num);
143 void setTableSize(
int size);
144 void setBlackWhitePoints(
float b,
float w);
145 void setDomain(
float s,
float e);
146 void setRange(
float s,
float e);
147 void invert(
int newsize = 0);
152 bool is3DLUT()
const {
return myCubeSize != 0; }
164 unsigned w = 0)
const;
169 float black,
float white,
170 float from = 0.0
f,
float to = 1.0
f)
const;
173 void eval1DLUT(
float color[3])
const;
174 void get1DLUT(
float *lut[4],
int size,
float b,
float w,
175 float sc,
float sh,
float gamma)
const;
181 int comp = -1)
const;
184 void eval3DLUT(
float color[3])
const;
190 void copy3DLUT(
float *lut,
191 float *prelut =
nullptr,
192 bool pad4 =
false)
const;
195 bool pad4 =
false)
const;
201 float black = 0.0
f,
float white = 1.0
f,
202 int component = -1)
const;
206 bool load(
const char *
filename,
bool header_only =
false);
207 bool save(
const char *
filename,
bool half_prec=
false)
const;
210 bool load(FILE *fp,
bool header_only);
211 bool loadBinary(FILE *fp,
bool header_only);
212 bool save(FILE *fp)
const;
213 bool saveBinary(FILE *fp,
bool half_prec =
false)
const;
216 bool buildGamma(
fpreal gamma,
231 bool buildOpenColorIOView(
const char *src_color_space,
232 const char *display_name,
233 const char *view_name,
234 const char *baked_display=
nullptr,
235 const char *baked_view =
nullptr,
236 bool inverse =
false,
241 bool buildOpenColorIO(
const char *src_color_space,
242 const char *dest_color_space,
243 const char *looks =
nullptr,
250 getCineonLUT(
bool forward,
260 void *getTextureID()
const;
261 void clearTextureID();
264 void *getPreLutID()
const;
273 inline void lerpPreLUT(
float &
color,
float prelut_scale,
274 const fpreal *prelut,
int prelut_last)
const;
276 void save1D(FILE *fp,
bool bin,
bool half =
false)
const;
277 void save3D(FILE *fp,
bool bin,
bool half =
false)
const;
285 void prep1DLUT(
float *
data,
int size,
309 exint myDirtySerial = 0;
GT_API const UT_StringHolder filename
imath_half_bits_t half
if we're in a C-only context, alias the half bits type to half
float getPreShift() const
void setPreLutID(void *id)
exint getDirtySerial() const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
GLint GLint GLsizei GLint GLenum format
HUSD_API const char * raster()
GLboolean GLboolean GLboolean b
void setTextureID(void *id)
LeafData & operator=(const LeafData &)=delete
GLubyte GLubyte GLubyte GLubyte w
class OCIOEXPORT ColorSpace
OIIO_FORCEINLINE T log(const T &v)
IMATH_INTERNAL_NAMESPACE_HEADER_ENTER IMATH_HOSTDEVICE IMATH_CONSTEXPR14 T clip(const T &p, const Box< T > &box) IMATH_NOEXCEPT