Blender  V2.93
BKE_colortools.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2006 Blender Foundation.
17  * All rights reserved.
18  */
19 #pragma once
20 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 struct BlendDataReader;
30 struct BlendWriter;
34 struct CurveMap;
35 struct CurveMapPoint;
36 struct CurveMapping;
37 struct Histogram;
38 struct ImBuf;
39 struct Scopes;
40 struct rctf;
41 
43  struct CurveMapping *cumap, int tot, float minx, float miny, float maxx, float maxy);
44 struct CurveMapping *BKE_curvemapping_add(int tot, float minx, float miny, float maxx, float maxy);
45 void BKE_curvemapping_free_data(struct CurveMapping *cumap);
46 void BKE_curvemapping_free(struct CurveMapping *cumap);
47 void BKE_curvemapping_copy_data(struct CurveMapping *target, const struct CurveMapping *cumap);
48 struct CurveMapping *BKE_curvemapping_copy(const struct CurveMapping *cumap);
49 void BKE_curvemapping_set_black_white_ex(const float black[3],
50  const float white[3],
51  float r_bwmul[3]);
53  const float black[3],
54  const float white[3]);
55 
56 enum {
60 };
61 
62 void BKE_curvemapping_reset_view(struct CurveMapping *cumap);
63 void BKE_curvemap_reset(struct CurveMap *cuma, const struct rctf *clipr, int preset, int slope);
64 void BKE_curvemap_remove(struct CurveMap *cuma, const short flag);
65 bool BKE_curvemap_remove_point(struct CurveMap *cuma, struct CurveMapPoint *cmp);
66 struct CurveMapPoint *BKE_curvemap_insert(struct CurveMap *cuma, float x, float y);
67 void BKE_curvemap_handle_set(struct CurveMap *cuma, int type);
68 
69 void BKE_curvemapping_changed(struct CurveMapping *cumap, const bool rem_doubles);
70 void BKE_curvemapping_changed_all(struct CurveMapping *cumap);
71 
72 /* call before _all_ evaluation functions */
73 void BKE_curvemapping_init(struct CurveMapping *cumap);
74 
75 /* keep these (const CurveMap) - to help with thread safety */
76 /* single curve, no table check */
77 float BKE_curvemap_evaluateF(const struct CurveMapping *cumap,
78  const struct CurveMap *cuma,
79  float value);
80 /* single curve, with table check */
81 float BKE_curvemapping_evaluateF(const struct CurveMapping *cumap, int cur, float value);
82 void BKE_curvemapping_evaluate3F(const struct CurveMapping *cumap,
83  float vecout[3],
84  const float vecin[3]);
86  float vecout[3],
87  const float vecin[3]);
89  unsigned char vecout_byte[3],
90  const unsigned char vecin_byte[3]);
92  float vecout[3],
93  const float vecin[3],
94  const float black[3],
95  const float bwmul[3]);
97  float vecout[3],
98  const float vecin[3]);
100 void BKE_curvemapping_table_RGBA(const struct CurveMapping *cumap, float **array, int *size);
101 
102 /* non-const, these modify the curve */
103 void BKE_curvemapping_premultiply(struct CurveMapping *cumap, int restore);
104 
105 void BKE_curvemapping_blend_write(struct BlendWriter *writer, const struct CurveMapping *cumap);
107  const struct CurveMapping *cumap);
108 void BKE_curvemapping_blend_read(struct BlendDataReader *reader, struct CurveMapping *cumap);
109 
111  struct ImBuf *ibuf,
112  const struct ColorManagedViewSettings *view_settings,
113  const struct ColorManagedDisplaySettings *display_settings);
114 void BKE_scopes_update(struct Scopes *scopes,
115  struct ImBuf *ibuf,
116  const struct ColorManagedViewSettings *view_settings,
117  const struct ColorManagedDisplaySettings *display_settings);
118 void BKE_scopes_free(struct Scopes *scopes);
119 void BKE_scopes_new(struct Scopes *scopes);
120 
123  const struct ColorManagedDisplaySettings *settings);
124 
125 /* Initialize view settings to be best suitable for render type of viewing.
126  * This will use default view transform from the OCIO configuration if none
127  * is specified. */
129  struct ColorManagedViewSettings *settings,
130  const struct ColorManagedDisplaySettings *display_settings,
131  const char *view_transform);
132 
133 /* Initialize view settings which are best suitable for viewing non-render
134  * images. For example,s movie clips while tracking. */
136  struct ColorManagedViewSettings *settings,
137  const struct ColorManagedDisplaySettings *display_settings);
138 
140  const struct ColorManagedViewSettings *settings);
142 
144  struct ColorManagedViewSettings *settings);
146  struct ColorManagedViewSettings *settings);
147 
149  struct ColorManagedColorspaceSettings *colorspace_settings);
151  struct ColorManagedColorspaceSettings *colorspace_settings,
152  const struct ColorManagedColorspaceSettings *settings);
154  const struct ColorManagedColorspaceSettings *settings1,
155  const struct ColorManagedColorspaceSettings *settings2);
156 
157 #ifdef __cplusplus
158 }
159 #endif
void BKE_curvemapping_evaluate_premulRGBF_ex(const struct CurveMapping *cumap, float vecout[3], const float vecin[3], const float black[3], const float bwmul[3])
void BKE_curvemap_handle_set(struct CurveMap *cuma, int type)
Definition: colortools.c:445
void BKE_scopes_new(struct Scopes *scopes)
Definition: colortools.c:1737
void BKE_curvemapping_evaluate_premulRGB(const struct CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3])
void BKE_curvemapping_evaluate_premulRGBF(const struct CurveMapping *cumap, float vecout[3], const float vecin[3])
bool BKE_color_managed_colorspace_settings_equals(const struct ColorManagedColorspaceSettings *settings1, const struct ColorManagedColorspaceSettings *settings2)
void BKE_color_managed_display_settings_copy(struct ColorManagedDisplaySettings *new_settings, const struct ColorManagedDisplaySettings *settings)
void BKE_color_managed_view_settings_init_default(struct ColorManagedViewSettings *settings, const struct ColorManagedDisplaySettings *display_settings)
Definition: colortools.c:1793
void BKE_color_managed_colorspace_settings_copy(struct ColorManagedColorspaceSettings *colorspace_settings, const struct ColorManagedColorspaceSettings *settings)
void BKE_curvemapping_evaluate3F(const struct CurveMapping *cumap, float vecout[3], const float vecin[3])
void BKE_curvemapping_free_data(struct CurveMapping *cumap)
Definition: colortools.c:99
bool BKE_curvemapping_RGBA_does_something(const struct CurveMapping *cumap)
void BKE_curvemap_remove(struct CurveMap *cuma, const short flag)
Definition: colortools.c:217
void BKE_curvemapping_init(struct CurveMapping *cumap)
Definition: colortools.c:1200
void BKE_curvemapping_evaluateRGBF(const struct CurveMapping *cumap, float vecout[3], const float vecin[3])
void BKE_curvemapping_set_black_white(struct CurveMapping *cumap, const float black[3], const float white[3])
Definition: colortools.c:168
void BKE_curvemapping_set_defaults(struct CurveMapping *cumap, int tot, float minx, float miny, float maxx, float maxy)
Definition: colortools.c:53
void BKE_color_managed_colorspace_settings_init(struct ColorManagedColorspaceSettings *colorspace_settings)
Definition: colortools.c:1846
struct CurveMapPoint * BKE_curvemap_insert(struct CurveMap *cuma, float x, float y)
Definition: colortools.c:240
void BKE_curvemapping_set_black_white_ex(const float black[3], const float white[3], float r_bwmul[3])
Definition: colortools.c:156
struct CurveMapping * BKE_curvemapping_copy(const struct CurveMapping *cumap)
void BKE_color_managed_view_settings_blend_read_data(struct BlendDataReader *reader, struct ColorManagedViewSettings *settings)
Definition: colortools.c:1836
void BKE_histogram_update_sample_line(struct Histogram *hist, struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
void BKE_scopes_update(struct Scopes *scopes, struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
float BKE_curvemapping_evaluateF(const struct CurveMapping *cumap, int cur, float value)
void BKE_curvemapping_blend_read(struct BlendDataReader *reader, struct CurveMapping *cumap)
Definition: colortools.c:1252
void BKE_curvemapping_premultiply(struct CurveMapping *cumap, int restore)
Definition: colortools.c:805
void BKE_curvemapping_curves_blend_write(struct BlendWriter *writer, const struct CurveMapping *cumap)
void BKE_color_managed_view_settings_free(struct ColorManagedViewSettings *settings)
Definition: colortools.c:1820
void BKE_curvemap_reset(struct CurveMap *cuma, const struct rctf *clipr, int preset, int slope)
void BKE_curvemapping_changed(struct CurveMapping *cumap, const bool rem_doubles)
Definition: colortools.c:877
void BKE_color_managed_view_settings_blend_write(struct BlendWriter *writer, struct ColorManagedViewSettings *settings)
Definition: colortools.c:1828
bool BKE_curvemap_remove_point(struct CurveMap *cuma, struct CurveMapPoint *cmp)
Definition: colortools.c:187
float BKE_curvemap_evaluateF(const struct CurveMapping *cumap, const struct CurveMap *cuma, float value)
void BKE_color_managed_view_settings_copy(struct ColorManagedViewSettings *new_settings, const struct ColorManagedViewSettings *settings)
void BKE_curvemapping_blend_write(struct BlendWriter *writer, const struct CurveMapping *cumap)
void BKE_color_managed_view_settings_init_render(struct ColorManagedViewSettings *settings, const struct ColorManagedDisplaySettings *display_settings, const char *view_transform)
void BKE_scopes_free(struct Scopes *scopes)
Definition: colortools.c:1717
void BKE_curvemapping_table_RGBA(const struct CurveMapping *cumap, float **array, int *size)
void BKE_color_managed_display_settings_init(struct ColorManagedDisplaySettings *settings)
Definition: colortools.c:1753
void BKE_curvemapping_free(struct CurveMapping *cumap)
Definition: colortools.c:119
@ CURVEMAP_SLOPE_NEGATIVE
@ CURVEMAP_SLOPE_POS_NEG
@ CURVEMAP_SLOPE_POSITIVE
void BKE_curvemapping_reset_view(struct CurveMapping *cumap)
Definition: colortools.c:969
void BKE_curvemapping_copy_data(struct CurveMapping *target, const struct CurveMapping *cumap)
struct CurveMapping * BKE_curvemapping_add(int tot, float minx, float miny, float maxx, float maxy)
Definition: colortools.c:88
void BKE_curvemapping_changed_all(struct CurveMapping *cumap)
Definition: colortools.c:954
_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 type
_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
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
float white[3]
float black[3]