Blender V4.3
IMB_colormanagement_intern.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "BLI_sys_types.h"
12#include "DNA_listBase.h"
13
14struct ImBuf;
15struct OCIO_ConstCPUProcessorRc;
16typedef struct OCIO_ConstCPUProcessorRc *OCIO_ConstCPUProcessorRcPtr;
17
18extern float imbuf_luma_coefficients[3];
19extern float imbuf_scene_linear_to_xyz[3][3];
20extern float imbuf_xyz_to_scene_linear[3][3];
21extern float imbuf_scene_linear_to_aces[3][3];
22extern float imbuf_aces_to_scene_linear[3][3];
23extern float imbuf_scene_linear_to_rec709[3][3];
24extern float imbuf_rec709_to_scene_linear[3][3];
25
26#define MAX_COLORSPACE_NAME 64
27#define MAX_COLORSPACE_DESCRIPTION 512
28
29struct ColorSpace {
31 int index;
34
37
40
42 bool is_data;
43
44 /* Additional info computed only when needed since it's not cheap. */
45 struct {
46 bool cached;
47 bool is_srgb;
50};
51
61
67
77
78/* ** Initialization / De-initialization ** */
79
82
84
90
93ColorManagedView *colormanage_view_add(const char *name);
97 const char *name);
98
100 const char *description,
101 bool is_invertible,
102 bool is_data);
106
107ColorManagedLook *colormanage_look_add(const char *name, const char *process_space, bool is_noop);
110
111void colorspace_set_default_role(char *colorspace, int size, int role);
112
114void colormanage_imbuf_make_linear(ImBuf *ibuf, const char *from_colorspace);
These structs are the foundation for all linked lists in the library system.
ColorManagedView * colormanage_view_add(const char *name)
float imbuf_scene_linear_to_aces[3][3]
float imbuf_luma_coefficients[3]
ColorManagedLook * colormanage_look_add(const char *name, const char *process_space, bool is_noop)
const char * colormanage_view_get_default_name(const ColorManagedDisplay *display)
void colormanage_cache_free(ImBuf *ibuf)
#define MAX_COLORSPACE_NAME
ColorManagedView * colormanage_view_get_indexed(int index)
float imbuf_rec709_to_scene_linear[3][3]
void colormanagement_exit()
void colormanagement_init()
float imbuf_scene_linear_to_rec709[3][3]
struct OCIO_ConstCPUProcessorRc * OCIO_ConstCPUProcessorRcPtr
ColorManagedLook * colormanage_look_get_named(const char *name)
const char * colormanage_display_get_default_name()
float imbuf_scene_linear_to_xyz[3][3]
ColorManagedView * colormanage_view_get_named_for_display(const char *display_name, const char *name)
ColorManagedDisplay * colormanage_display_get_indexed(int index)
ColorManagedDisplay * colormanage_display_get_default()
ColorSpace * colormanage_colorspace_add(const char *name, const char *description, bool is_invertible, bool is_data)
ColorManagedDisplay * colormanage_display_get_named(const char *name)
ColorSpace * colormanage_colorspace_get_indexed(int index)
float imbuf_xyz_to_scene_linear[3][3]
ColorManagedDisplay * colormanage_display_add(const char *name)
ColorManagedView * colormanage_view_get_default(const ColorManagedDisplay *display)
float imbuf_aces_to_scene_linear[3][3]
void colormanage_imbuf_set_default_spaces(ImBuf *ibuf)
ColorManagedLook * colormanage_look_get_indexed(int index)
ColorManagedView * colormanage_view_get_named(const char *name)
void colorspace_set_default_role(char *colorspace, int size, int role)
void colormanage_imbuf_make_linear(ImBuf *ibuf, const char *from_colorspace)
ColorSpace * colormanage_colorspace_get_named(const char *name)
#define MAX_COLORSPACE_DESCRIPTION
ColorSpace * colormanage_colorspace_get_roled(int role)
OCIO_ConstCPUProcessorRcPtr * to_scene_linear
OCIO_ConstCPUProcessorRcPtr * from_scene_linear
char ui_name[MAX_COLORSPACE_NAME]
char process_space[MAX_COLORSPACE_NAME]
struct ColorSpace::@676 info
OCIO_ConstCPUProcessorRcPtr * from_scene_linear
char(* aliases)[MAX_COLORSPACE_NAME]
char description[MAX_COLORSPACE_DESCRIPTION]
OCIO_ConstCPUProcessorRcPtr * to_scene_linear