Blender  V3.3
IMB_colormanagement.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2012 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
10 #include "BLI_compiler_compat.h"
11 #include "BLI_sys_types.h"
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #define BCM_CONFIG_FILE "config.ocio"
18 
22 struct ColorManagedOutputSettings;
24 struct EnumPropertyItem;
25 struct ImBuf;
26 struct ImageFormatData;
27 struct Main;
28 struct bContext;
29 
30 struct ColorManagedDisplay;
31 struct ColorSpace;
32 
33 /* -------------------------------------------------------------------- */
38 
40  const struct ColorManagedDisplaySettings *display_settings,
41  struct ColorManagedViewSettings *view_settings);
42 
44 void IMB_colormanagement_check_is_data(struct ImBuf *ibuf, const char *name);
45 void IMB_colormanagegent_copy_settings(struct ImBuf *ibuf_src, struct ImBuf *ibuf_dst);
46 void IMB_colormanagement_assign_float_colorspace(struct ImBuf *ibuf, const char *name);
47 void IMB_colormanagement_assign_rect_colorspace(struct ImBuf *ibuf, const char *name);
48 
49 const char *IMB_colormanagement_get_float_colorspace(struct ImBuf *ibuf);
50 const char *IMB_colormanagement_get_rect_colorspace(struct ImBuf *ibuf);
51 
52 bool IMB_colormanagement_space_is_data(struct ColorSpace *colorspace);
54 bool IMB_colormanagement_space_is_srgb(struct ColorSpace *colorspace);
58 
74 BLI_INLINE unsigned char IMB_colormanagement_get_luminance_byte(const unsigned char[3]);
75 
79 BLI_INLINE void IMB_colormanagement_xyz_to_scene_linear(float scene_linear[3], const float xyz[3]);
80 BLI_INLINE void IMB_colormanagement_scene_linear_to_xyz(float xyz[3], const float scene_linear[3]);
82  const float rec709[3]);
84  const float scene_linear[3]);
85 BLI_INLINE void IMB_colormanagement_aces_to_scene_linear(float scene_linear[3],
86  const float aces[3]);
88  const float scene_linear[3]);
90 
93 /* -------------------------------------------------------------------- */
101  int width,
102  int height,
103  int channels,
104  const char *from_colorspace,
105  const char *to_colorspace,
106  bool predivide);
112  int width,
113  int height,
114  int channels,
115  const char *from_colorspace,
116  const char *to_colorspace,
117  bool predivide);
121 void IMB_colormanagement_transform_byte(unsigned char *buffer,
122  int width,
123  int height,
124  int channels,
125  const char *from_colorspace,
126  const char *to_colorspace);
128  int width,
129  int height,
130  int channels,
131  const char *from_colorspace,
132  const char *to_colorspace);
136 void IMB_colormanagement_transform_from_byte(float *float_buffer,
137  unsigned char *byte_buffer,
138  int width,
139  int height,
140  int channels,
141  const char *from_colorspace,
142  const char *to_colorspace);
143 void IMB_colormanagement_transform_from_byte_threaded(float *float_buffer,
144  unsigned char *byte_buffer,
145  int width,
146  int height,
147  int channels,
148  const char *from_colorspace,
149  const char *to_colorspace);
150 void IMB_colormanagement_transform_v4(float pixel[4],
151  const char *from_colorspace,
152  const char *to_colorspace);
153 
159  struct ColorSpace *colorspace);
161  bool predivide,
162  struct ColorSpace *colorspace);
163 
169  struct ColorSpace *colorspace);
170 
172  int width,
173  int height,
174  int channels,
175  struct ColorSpace *colorspace,
176  bool predivide);
177 
178 void IMB_colormanagement_imbuf_to_byte_texture(unsigned char *out_buffer,
179  int x,
180  int y,
181  int width,
182  int height,
183  const struct ImBuf *ibuf,
184  bool store_premultiplied);
185 void IMB_colormanagement_imbuf_to_float_texture(float *out_buffer,
186  int offset_x,
187  int offset_y,
188  int width,
189  int height,
190  const struct ImBuf *ibuf,
191  bool store_premultiplied);
192 
202 void IMB_colormanagement_scene_linear_to_color_picking_v3(float color_picking[3],
203  const float scene_linear[3]);
205  const float color_picking[3]);
206 
212  const float scene_linear[3]);
214  const float srgb[3]);
215 
222  struct ColorManagedDisplay *display);
228  struct ColorManagedDisplay *display);
229 
231  float result[4],
232  const float pixel[4],
233  const struct ColorManagedViewSettings *view_settings,
234  const struct ColorManagedDisplaySettings *display_settings);
235 
237  float result[3],
238  const float pixel[3],
239  const struct ColorManagedViewSettings *view_settings,
240  const struct ColorManagedDisplaySettings *display_settings);
241 
243  struct ImBuf *ibuf,
244  const struct ColorManagedViewSettings *view_settings,
245  const struct ColorManagedDisplaySettings *display_settings);
246 
260  bool save_as_render,
261  bool allocate_result,
262  const struct ImageFormatData *image_format);
263 
266 /* -------------------------------------------------------------------- */
271  const struct bContext *C,
272  struct ColorManagedViewSettings **r_view_settings,
273  struct ColorManagedDisplaySettings **r_display_settings);
274 
279  struct ImBuf *ibuf,
280  const struct ColorManagedViewSettings *view_settings,
281  const struct ColorManagedDisplaySettings *display_settings,
282  void **cache_handle);
286 unsigned char *IMB_display_buffer_acquire_ctx(const struct bContext *C,
287  struct ImBuf *ibuf,
288  void **cache_handle);
289 
290 void IMB_display_buffer_transform_apply(unsigned char *display_buffer,
291  float *linear_buffer,
292  int width,
293  int height,
294  int channels,
295  const struct ColorManagedViewSettings *view_settings,
296  const struct ColorManagedDisplaySettings *display_settings,
297  bool predivide);
298 
299 void IMB_display_buffer_release(void *cache_handle);
300 
303 /* -------------------------------------------------------------------- */
316  struct ColorManagedDisplay *display);
317 
320 /* -------------------------------------------------------------------- */
326 
329 /* -------------------------------------------------------------------- */
335 
338 /* -------------------------------------------------------------------- */
344 const char *IMB_colormanagement_colorspace_get_name(const struct ColorSpace *colorspace);
345 const char *IMB_colormanagement_view_get_default_name(const char *display_name);
346 
348  struct ColorManagedColorspaceSettings *colorspace_settings, struct ImBuf *ibuf);
349 
352 /* -------------------------------------------------------------------- */
356 void IMB_colormanagement_display_items_add(struct EnumPropertyItem **items, int *totitem);
358  int *totitem,
359  const char *display_name);
361  int *totitem,
362  const char *view_name);
363 void IMB_colormanagement_colorspace_items_add(struct EnumPropertyItem **items, int *totitem);
364 
367 /* -------------------------------------------------------------------- */
372  const float *linear_buffer,
373  const unsigned char *byte_buffer,
374  int stride,
375  int offset_x,
376  int offset_y,
377  const struct ColorManagedViewSettings *view_settings,
378  const struct ColorManagedDisplaySettings *display_settings,
379  int xmin,
380  int ymin,
381  int xmax,
382  int ymax);
383 
385  struct ImBuf *ibuf,
386  const float *linear_buffer,
387  const unsigned char *byte_buffer,
388  int stride,
389  int offset_x,
390  int offset_y,
391  const struct ColorManagedViewSettings *view_settings,
392  const struct ColorManagedDisplaySettings *display_settings,
393  int xmin,
394  int ymin,
395  int xmax,
396  int ymax);
397 
399  struct ImBuf *ibuf, int xmin, int ymin, int xmax, int ymax);
400 
403 /* -------------------------------------------------------------------- */
408  const struct ColorManagedViewSettings *view_settings,
409  const struct ColorManagedDisplaySettings *display_settings);
411  const char *from_colorspace, const char *to_colorspace);
413  float pixel[4]);
415  float pixel[4]);
417  float pixel[3]);
419  float *pixel,
420  int channels);
422  float *buffer,
423  int width,
424  int height,
425  int channels,
426  bool predivide);
428  unsigned char *buffer,
429  int width,
430  int height,
431  int channels);
433 
436 /* -------------------------------------------------------------------- */
448  const struct ColorManagedViewSettings *view_settings,
449  const struct ColorManagedDisplaySettings *display_settings,
450  float dither,
451  bool predivide);
469  const struct ColorManagedViewSettings *view_settings,
470  const struct ColorManagedDisplaySettings *display_settings,
471  struct ColorSpace *colorspace,
472  float dither,
473  bool predivide,
474  bool do_overlay_merge);
479  float dither,
480  bool predivide);
486  struct ColorSpace *colorspace,
487  float dither,
488  bool predivide);
493 
496 /* -------------------------------------------------------------------- */
501  struct ColorManagedViewSettings *view_settings,
502  const struct ColorManagedDisplaySettings *display_settings);
503 
504 /* Roles */
505 enum {
513 };
514 
517 /* -------------------------------------------------------------------- */
522  int width,
523  float min,
524  float max);
525 void IMB_colormanagement_wavelength_to_rgb_table(float *r_table, int width);
526 
529 #ifdef __cplusplus
530 }
531 #endif
532 
#define BLI_INLINE
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei stride
const char * IMB_colormanagement_colorspace_get_indexed_name(int index)
bool IMB_colormanagement_space_is_srgb(struct ColorSpace *colorspace)
void IMB_colormanagement_processor_apply(struct ColormanageProcessor *cm_processor, float *buffer, int width, int height, int channels, bool predivide)
void IMB_partial_display_buffer_update_delayed(struct ImBuf *ibuf, int xmin, int ymin, int xmax, int ymax)
void IMB_partial_display_buffer_update_threaded(struct ImBuf *ibuf, const float *linear_buffer, const unsigned char *byte_buffer, int stride, int offset_x, int offset_y, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, int xmin, int ymin, int xmax, int ymax)
void IMB_colormanagement_pixel_to_display_space_v4(float result[4], const float pixel[4], const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
bool IMB_colormanagement_space_is_scene_linear(struct ColorSpace *colorspace)
void IMB_colormanagement_processor_apply_pixel(struct ColormanageProcessor *cm_processor, float *pixel, int channels)
void IMB_colormanagement_display_to_scene_linear_v3(float pixel[3], struct ColorManagedDisplay *display)
void IMB_colormanagement_colorspace_to_scene_linear(float *buffer, int width, int height, int channels, struct ColorSpace *colorspace, bool predivide)
void IMB_colormanagement_colorspace_from_ibuf_ftype(struct ColorManagedColorspaceSettings *colorspace_settings, struct ImBuf *ibuf)
BLI_INLINE void IMB_colormanagement_srgb_to_scene_linear_v3(float scene_linear[3], const float srgb[3])
void IMB_display_buffer_transform_apply(unsigned char *display_buffer, float *linear_buffer, int width, int height, int channels, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, bool predivide)
const char * IMB_colormanagement_get_rect_colorspace(struct ImBuf *ibuf)
struct ImBuf * IMB_colormanagement_imbuf_for_write(struct ImBuf *ibuf, bool save_as_render, bool allocate_result, const struct ImageFormatData *image_format)
void IMB_colormanagement_color_picking_to_scene_linear_v3(float scene_linear[3], const float color_picking[3])
unsigned char * IMB_display_buffer_acquire_ctx(const struct bContext *C, struct ImBuf *ibuf, void **cache_handle)
void IMB_colormanagement_processor_apply_v3(struct ColormanageProcessor *cm_processor, float pixel[3])
bool IMB_colormanagement_space_name_is_srgb(const char *name)
void IMB_colormanagement_look_items_add(struct EnumPropertyItem **items, int *totitem, const char *view_name)
const char * IMB_colormanagement_view_get_default_name(const char *display_name)
bool IMB_colormanagement_space_name_is_scene_linear(const char *name)
void IMB_colormanagement_processor_apply_byte(struct ColormanageProcessor *cm_processor, unsigned char *buffer, int width, int height, int channels)
struct ColormanageProcessor * IMB_colormanagement_colorspace_processor_new(const char *from_colorspace, const char *to_colorspace)
void IMB_colormanagegent_copy_settings(struct ImBuf *ibuf_src, struct ImBuf *ibuf_dst)
@ COLOR_ROLE_DEFAULT_FLOAT
@ COLOR_ROLE_DATA
@ COLOR_ROLE_DEFAULT_BYTE
@ COLOR_ROLE_SCENE_LINEAR
@ COLOR_ROLE_COLOR_PICKING
@ COLOR_ROLE_DEFAULT_SEQUENCER
@ COLOR_ROLE_TEXTURE_PAINTING
void IMB_colormanagement_display_settings_from_ctx(const struct bContext *C, struct ColorManagedViewSettings **r_view_settings, struct ColorManagedDisplaySettings **r_display_settings)
void IMB_colormanagement_imbuf_make_display_space(struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
bool IMB_colormanagement_setup_glsl_draw_from_space_ctx(const struct bContext *C, struct ColorSpace *colorspace, float dither, bool predivide)
void IMB_colormanagement_pixel_to_display_space_v3(float result[3], const float pixel[3], const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
int IMB_colormanagement_view_get_named_index(const char *name)
BLI_INLINE void IMB_colormanagement_scene_linear_to_rec709(float rec709[3], const float scene_linear[3])
BLI_INLINE unsigned char IMB_colormanagement_get_luminance_byte(const unsigned char[3])
void IMB_colormanagement_blackbody_temperature_to_rgb_table(float *r_table, int width, float min, float max)
void IMB_colormanagement_transform_from_byte_threaded(float *float_buffer, unsigned char *byte_buffer, int width, int height, int channels, const char *from_colorspace, const char *to_colorspace)
bool IMB_colormanagement_space_name_is_data(const char *name)
void IMB_colormanagement_processor_free(struct ColormanageProcessor *cm_processor)
void IMB_colormanagement_transform_from_byte(float *float_buffer, unsigned char *byte_buffer, int width, int height, int channels, const char *from_colorspace, const char *to_colorspace)
void IMB_colormanagement_assign_float_colorspace(struct ImBuf *ibuf, const char *name)
void IMB_colormanagement_transform_threaded(float *buffer, int width, int height, int channels, const char *from_colorspace, const char *to_colorspace, bool predivide)
BLI_INLINE void IMB_colormanagement_aces_to_scene_linear(float scene_linear[3], const float aces[3])
void IMB_colormanagement_validate_settings(const struct ColorManagedDisplaySettings *display_settings, struct ColorManagedViewSettings *view_settings)
const float * IMB_colormanagement_get_xyz_to_scene_linear(void)
void IMB_colormanagement_transform_byte_threaded(unsigned char *buffer, int width, int height, int channels, const char *from_colorspace, const char *to_colorspace)
void IMB_colormanagement_processor_apply_v4(struct ColormanageProcessor *cm_processor, float pixel[4])
const char * IMB_colormanagement_colorspace_get_name(const struct ColorSpace *colorspace)
void IMB_display_buffer_release(void *cache_handle)
void IMB_colormanagement_imbuf_to_float_texture(float *out_buffer, int offset_x, int offset_y, int width, int height, const struct ImBuf *ibuf, bool store_premultiplied)
void IMB_colormanagement_colorspace_to_scene_linear_v4(float pixel[4], bool predivide, struct ColorSpace *colorspace)
struct ColormanageProcessor * IMB_colormanagement_display_processor_new(const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
BLI_INLINE float IMB_colormanagement_get_luminance(const float rgb[3])
void IMB_colormanagement_check_file_config(struct Main *bmain)
void IMB_colormanagement_assign_rect_colorspace(struct ImBuf *ibuf, const char *name)
void IMB_colormanagement_scene_linear_to_colorspace_v3(float pixel[3], struct ColorSpace *colorspace)
BLI_INLINE void IMB_colormanagement_xyz_to_scene_linear(float scene_linear[3], const float xyz[3])
bool IMB_colormanagement_setup_glsl_draw(const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, float dither, bool predivide)
void IMB_colormanagement_init_default_view_settings(struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
unsigned char * IMB_display_buffer_acquire(struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, void **cache_handle)
const char * IMB_colormanagement_display_get_default_name(void)
void IMB_colormanagement_imbuf_to_byte_texture(unsigned char *out_buffer, int x, int y, int width, int height, const struct ImBuf *ibuf, bool store_premultiplied)
bool IMB_colormanagement_setup_glsl_draw_ctx(const struct bContext *C, float dither, bool predivide)
BLI_INLINE void IMB_colormanagement_rec709_to_scene_linear(float scene_linear[3], const float rec709[3])
void IMB_colormanagement_scene_linear_to_display_v3(float pixel[3], struct ColorManagedDisplay *display)
const char * IMB_colormanagement_display_get_none_name(void)
const char * IMB_colormanagement_view_get_indexed_name(int index)
int IMB_colormanagement_look_get_named_index(const char *name)
const char * IMB_colormanagement_role_colorspace_name_get(int role)
BLI_INLINE void IMB_colormanagement_scene_linear_to_xyz(float xyz[3], const float scene_linear[3])
bool IMB_colormanagement_space_is_data(struct ColorSpace *colorspace)
void IMB_colormanagement_check_is_data(struct ImBuf *ibuf, const char *name)
void IMB_colormanagement_transform_byte(unsigned char *buffer, int width, int height, int channels, const char *from_colorspace, const char *to_colorspace)
void IMB_colormanagement_colorspace_to_scene_linear_v3(float pixel[3], struct ColorSpace *colorspace)
BLI_INLINE void IMB_colormanagement_scene_linear_to_aces(float aces[3], const float scene_linear[3])
struct ColorManagedDisplay * IMB_colormanagement_display_get_named(const char *name)
void IMB_colormanagement_finish_glsl_draw(void)
void IMB_colormanagement_processor_apply_v4_predivide(struct ColormanageProcessor *cm_processor, float pixel[4])
void IMB_colormanagement_scene_linear_to_color_picking_v3(float color_picking[3], const float scene_linear[3])
int IMB_colormanagement_colorspace_get_named_index(const char *name)
const char * IMB_colormanagement_look_get_indexed_name(int index)
bool IMB_colormanagement_setup_glsl_draw_from_space(const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, struct ColorSpace *colorspace, float dither, bool predivide, bool do_overlay_merge)
const char * IMB_colormanagement_display_get_default_view_transform_name(struct ColorManagedDisplay *display)
void IMB_colormanagement_transform_v4(float pixel[4], const char *from_colorspace, const char *to_colorspace)
bool IMB_colormanagement_support_glsl_draw(const struct ColorManagedViewSettings *view_settings)
const char * IMB_colormanagement_display_get_indexed_name(int index)
void IMB_colormanagement_display_items_add(struct EnumPropertyItem **items, int *totitem)
void IMB_colormanagement_transform(float *buffer, int width, int height, int channels, const char *from_colorspace, const char *to_colorspace, bool predivide)
int IMB_colormanagement_display_get_named_index(const char *name)
void IMB_partial_display_buffer_update(struct ImBuf *ibuf, const float *linear_buffer, const unsigned char *byte_buffer, int stride, int offset_x, int offset_y, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, int xmin, int ymin, int xmax, int ymax)
void IMB_colormanagement_view_items_add(struct EnumPropertyItem **items, int *totitem, const char *display_name)
void IMB_colormanagement_colorspace_items_add(struct EnumPropertyItem **items, int *totitem)
const char * IMB_colormanagement_get_float_colorspace(struct ImBuf *ibuf)
BLI_INLINE void IMB_colormanagement_scene_linear_to_srgb_v3(float srgb[3], const float scene_linear[3])
void IMB_colormanagement_wavelength_to_rgb_table(float *r_table, int width)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
#define C
Definition: RandGen.cpp:25
ccl_global float * buffer
static const pxr::TfToken rgb("rgb", pxr::TfToken::Immortal)
#define min(a, b)
Definition: sort.c:35
char name[MAX_COLORSPACE_NAME]
char name[MAX_COLORSPACE_NAME]
char name[IMB_FILENAME_SIZE]
Definition: BKE_main.h:121
float max