38 CurveMapping *cumap,
int tot,
float minx,
float miny,
float maxx,
float maxy)
41 float clipminx, clipminy, clipmaxx, clipmaxy;
48 clipminx =
min_ff(minx, maxx);
49 clipminy =
min_ff(miny, maxy);
50 clipmaxx =
max_ff(minx, maxx);
51 clipmaxy =
max_ff(miny, maxy);
59 for (
a = 0;
a < tot;
a++) {
141 const float white[3],
146 for (
a = 0;
a < 3;
a++) {
147 const float delta =
max_ff(white[
a] - black[
a], 1e-5f);
148 r_bwmul[
a] = 1.0f / delta;
153 const float black[3],
154 const float white[3])
173 int a,
b, removed = 0;
196 return (removed != 0);
202 int a,
b, removed = 0;
205 cmp[0] = cuma->
curve[0];
227 bool foundloc =
false;
232 if ((foundloc ==
false) && ((
a + 1 == cuma->
totpoint) || (x < cuma->
curve[
a].x))) {
332 for (
int i = 0; i < cuma->
totpoint; i++) {
360 cuma->
curve[0].
y = 0.025f;
362 cuma->
curve[1].
y = 0.135f;
363 cuma->
curve[2].
x = 0.298f;
372 cuma->
curve[5].
y = 0.135f;
374 cuma->
curve[6].
y = 0.025f;
378 cuma->
curve[0].
y = 0.025f;
384 cuma->
curve[2].
y = 0.025f;
394 for (i = 0; i < cuma->
totpoint; i++) {
395 newpoints[i].
y = cuma->
curve[last - i].
y;
399 cuma->
curve = newpoints;
402 const int num_points = cuma->
totpoint * 2 - 1;
404 "curve symmetric points");
405 for (
int i = 0; i < cuma->
totpoint; i++) {
406 const int src_last_point = cuma->
totpoint - i - 1;
407 const int dst_last_point = num_points - i - 1;
408 new_points[i] = cuma->
curve[src_last_point];
409 new_points[i].
x = (1.0f - cuma->
curve[src_last_point].
x) * 0.5f;
410 new_points[dst_last_point] = new_points[i];
411 new_points[dst_last_point].
x = 0.5f + cuma->
curve[src_last_point].
x * 0.5f;
415 cuma->
curve = new_points;
452 #define p2_h1 ((p2)-3)
453 #define p2_h2 ((p2) + 3)
455 const float *p1, *p3;
458 float len, len_a, len_b;
459 float dvec_a[2], dvec_b[2];
461 if (bezt->
h1 == 0 && bezt->
h2 == 0) {
469 pt[0] = 2.0f * p2[0] - p3[0];
470 pt[1] = 2.0f * p2[1] - p3[1];
479 pt[0] = 2.0f * p2[0] - p1[0];
480 pt[1] = 2.0f * p2[1] - p1[1];
502 tvec[0] = dvec_b[0] / len_b + dvec_a[0] / len_a;
503 tvec[1] = dvec_b[1] / len_b + dvec_a[1] / len_a;
513 const float ydiff1 =
prev->vec[1][1] - bezt->
vec[1][1];
514 const float ydiff2 =
next->vec[1][1] - bezt->
vec[1][1];
515 if ((ydiff1 <= 0.0f && ydiff2 <= 0.0f) || (ydiff1 >= 0.0f && ydiff2 >= 0.0f)) {
516 bezt->
vec[0][1] = bezt->
vec[1][1];
519 if (ydiff1 <= 0.0f) {
520 if (
prev->vec[1][1] > bezt->
vec[0][1]) {
521 bezt->
vec[0][1] =
prev->vec[1][1];
525 if (
prev->vec[1][1] < bezt->
vec[0][1]) {
526 bezt->
vec[0][1] =
prev->vec[1][1];
537 const float ydiff1 =
prev->vec[1][1] - bezt->
vec[1][1];
538 const float ydiff2 =
next->vec[1][1] - bezt->
vec[1][1];
539 if ((ydiff1 <= 0.0f && ydiff2 <= 0.0f) || (ydiff1 >= 0.0f && ydiff2 >= 0.0f)) {
540 bezt->
vec[2][1] = bezt->
vec[1][1];
543 if (ydiff1 <= 0.0f) {
544 if (
next->vec[1][1] < bezt->
vec[2][1]) {
545 bezt->
vec[2][1] =
next->vec[1][1];
549 if (
next->vec[1][1] > bezt->
vec[2][1]) {
550 bezt->
vec[2][1] =
next->vec[1][1];
575 const float first[2],
584 if (cuma->
ext_in[0] == 0.0f) {
585 return first[1] + cuma->
ext_in[1] * 10000.0f;
588 return first[1] + cuma->
ext_in[1] * (
x - first[0]) / cuma->
ext_in[0];
596 if (cuma->
ext_out[0] == 0.0f) {
597 return last[1] - cuma->
ext_out[1] * 10000.0f;
626 bezt[
a].
vec[1][0] = cmp[
a].
x;
627 bezt[
a].
vec[1][1] = cmp[
a].
y;
643 bezt_prev = &bezt[
a];
649 float hlen, nlen, vec[3];
653 hlen =
len_v3v3(bezt[0].vec[1], bezt[0].vec[2]);
656 if (vec[0] < bezt[0].vec[1][0]) {
657 vec[0] = bezt[0].
vec[1][0];
662 if (nlen > FLT_EPSILON) {
671 hlen =
len_v3v3(bezt[
a].vec[1], bezt[
a].vec[0]);
674 if (vec[0] > bezt[
a].vec[1][0]) {
675 vec[0] = bezt[
a].
vec[1][0];
680 if (nlen > FLT_EPSILON) {
693 float *allpoints =
MEM_callocN(totpoint * 2 *
sizeof(
float),
"table");
694 float *
point = allpoints;
698 bezt[
a].vec[1], bezt[
a].vec[2], bezt[
a + 1].vec[0], bezt[
a + 1].vec[1]);
701 bezt[
a + 1].vec[0][0],
702 bezt[
a + 1].vec[1][0],
708 bezt[
a + 1].vec[0][1],
709 bezt[
a + 1].vec[1][1],
716 cuma->
ext_in[0] = bezt[0].
vec[0][0] - bezt[0].
vec[1][0];
717 cuma->
ext_in[1] = bezt[0].
vec[0][1] - bezt[0].
vec[1][1];
720 cuma->
ext_in[0] /= ext_in_range;
721 cuma->
ext_in[1] /= ext_in_range;
724 cuma->
ext_out[0] = bezt[out_a].
vec[1][0] - bezt[out_a].
vec[2][0];
725 cuma->
ext_out[1] = bezt[out_a].
vec[1][1] - bezt[out_a].
vec[2][1];
728 cuma->
ext_out[0] /= ext_out_range;
729 cuma->
ext_out[1] /= ext_out_range;
735 cuma->
range = 1.0f / range;
738 float *firstpoint = allpoints;
739 float *lastpoint = allpoints + 2 * (totpoint - 1);
749 while (cur_x >=
point[0] &&
point != lastpoint) {
754 if (
point == firstpoint || (
point == lastpoint && cur_x >=
point[0])) {
767 float fac2 =
point[0] - cur_x;
768 if (fac1 > FLT_EPSILON) {
790 for (
a = 0;
a < 3;
a++) {
807 for (
a = 0;
a < 3;
a++) {
822 for (
a = 0;
a < 3;
a++) {
861 float dx = 0.0f, dy = 0.0f;
870 if (cmp[
a].x < clipr->xmin) {
873 else if (cmp[
a].
x > clipr->
xmax) {
876 if (cmp[
a].y < clipr->ymin) {
879 else if (cmp[
a].
y > clipr->
ymax) {
905 if (rem_doubles && cuma->
totpoint > 2) {
907 dx = cmp[
a].
x - cmp[
a + 1].
x;
908 dy = cmp[
a].
y - cmp[
a + 1].
y;
909 if (
sqrtf(dx * dx + dy * dy) < thresh) {
934 int a, cur = cumap->
cur;
970 return (1.0f - fi) * cuma->
table[i].
y + (fi)*cuma->
table[i + 1].
y;
980 if (val < cumap->clipr.ymin) {
1000 const float vecin[3])
1012 const float vecin[3],
1013 const int channel_offset[3])
1015 const float v0in = vecin[channel_offset[0]];
1016 const float v1in = vecin[channel_offset[1]];
1017 const float v2in = vecin[channel_offset[2]];
1021 const float v1 =
v2 + ((v0 -
v2) * (v1in - v2in) / (v0in - v2in));
1023 vecout[channel_offset[0]] = v0;
1024 vecout[channel_offset[1]] =
v1;
1025 vecout[channel_offset[2]] =
v2;
1030 const float vecin[3],
1031 const float black[3],
1032 const float bwmul[3])
1034 const float r = (vecin[0] - black[0]) * bwmul[0];
1035 const float g = (vecin[1] - black[1]) * bwmul[1];
1036 const float b = (vecin[2] - black[2]) * bwmul[2];
1038 switch (cumap->
tone) {
1050 const int shuffeled_channels[] = {0, 1, 2};
1055 const int shuffeled_channels[] = {2, 0, 1};
1060 const int shuffeled_channels[] = {0, 2, 1};
1068 vecout[2] = vecout[1];
1074 const int shuffeled_channels[] = {1, 0, 2};
1079 const int shuffeled_channels[] = {2, 1, 0};
1084 const int shuffeled_channels[] = {1, 2, 0};
1095 const float vecin[3])
1101 unsigned char vecout_byte[3],
1102 const unsigned char vecin_byte[3])
1104 float vecin[3], vecout[3];
1106 vecin[0] = (
float)vecin_byte[0] / 255.0f;
1107 vecin[1] = (
float)vecin_byte[1] / 255.0f;
1108 vecin[2] = (
float)vecin_byte[2] / 255.0f;
1119 if (cumap->
black[0] != 0.0f) {
1122 if (cumap->
black[1] != 0.0f) {
1125 if (cumap->
black[2] != 0.0f) {
1128 if (cumap->
white[0] != 1.0f) {
1131 if (cumap->
white[1] != 1.0f) {
1134 if (cumap->
white[2] != 1.0f) {
1163 for (
int i = 0; i <
CM_TOT; i++) {
1171 for (
int i = 0; i <
CM_TOT; i++) {
1172 const CurveMap *curve_map = &curve_mapping->
cm[i];
1178 float start_slopes[
CM_TOT],
1179 float end_slopes[
CM_TOT])
1181 float range_dividers[
CM_TOT];
1183 for (
int i = 0; i <
CM_TOT; i++) {
1184 const CurveMap *curve_map = &curve_mapping->
cm[i];
1187 start_slopes[i] = 0.0f;
1188 end_slopes[i] = 0.0f;
1192 if (curve_map->
ext_in[0] != 0.0f) {
1193 start_slopes[i] = curve_map->
ext_in[1] / (curve_map->
ext_in[0] * range_dividers[i]);
1196 start_slopes[i] = 1e8f;
1199 if (curve_map->
ext_out[0] != 0.0f) {
1200 end_slopes[i] = curve_map->
ext_out[1] / (curve_map->
ext_out[0] * range_dividers[i]);
1203 end_slopes[i] = 1e8f;
1213 const CurveMap *curve_map = &curve_mapping->
cm[index];
1226 if (curve_map->
curve[0].
x != 0 || curve_map->
curve[0].
y != 0) {
1229 if (curve_map->
curve[1].
x != 0 || curve_map->
curve[1].
y != 0) {
1239 if (cumap ==
NULL) {
1259 (*array)[
a * 4 + 0] = cumap->
cm[0].
table[
a].
y;
1273 (*array)[
a * 4 + 0] = cumap->
cm[0].
table[
a].
y;
1276 (*array)[
a * 4 + 1] = cumap->
cm[1].
table[
a].
y;
1279 (*array)[
a * 4 + 2] = cumap->
cm[2].
table[
a].
y;
1282 (*array)[
a * 4 + 3] = cumap->
cm[3].
table[
a].
y;
1314 #define INV_255 (1.0f / 255.0f)
1318 int bin = (int)((f * 255.0f) + 0.5f);
1327 Scopes *scopes,
const int idx,
const float fx,
const float rgb[3],
const float ycc[3])
1333 scopes->
vecscope[idx + 0] = yuv[1];
1334 scopes->
vecscope[idx + 1] = yuv[2];
1373 int x1 = roundf(hist->
co[0][0] * ibuf->
x);
1374 int x2 = roundf(hist->
co[1][0] * ibuf->
x);
1375 int y1 = roundf(hist->
co[0][1] * ibuf->
y);
1376 int y2 = roundf(hist->
co[1][1] * ibuf->
y);
1393 for (i = 0; i < 256; i++) {
1394 x = (int)(0.5f + x1 + (
float)i * (
x2 - x1) / 255.0f);
1395 y = (int)(0.5f +
y1 + (
float)i * (y2 -
y1) / 255.0f);
1397 if (
x < 0 || y < 0 || x >= ibuf->
x ||
y >= ibuf->
y) {
1434 else if (ibuf->
rect) {
1435 cp = (
unsigned char *)(ibuf->
rect +
y * ibuf->
x +
x);
1477 const unsigned char *display_buffer =
data->display_buffer;
1478 const int ycc_mode =
data->ycc_mode;
1481 unsigned int *bin_lum = data_chunk->
bin_lum;
1482 unsigned int *bin_r = data_chunk->
bin_r;
1483 unsigned int *bin_g = data_chunk->
bin_g;
1484 unsigned int *bin_b = data_chunk->
bin_b;
1485 unsigned int *bin_a = data_chunk->
bin_a;
1486 float *
min = data_chunk->
min;
1487 float *
max = data_chunk->
max;
1489 const float *rf =
NULL;
1490 const unsigned char *rc =
NULL;
1491 const int rows_per_sample_line = ibuf->
y / scopes->
sample_lines;
1492 const int savedlines =
y / rows_per_sample_line;
1493 const bool do_sample_line = (savedlines < scopes->
sample_lines) &&
1494 (
y % rows_per_sample_line) == 0;
1501 rc = display_buffer + ((size_t)
y) * ibuf->
x * ibuf->
channels;
1504 for (
int x = 0;
x < ibuf->
x;
x++) {
1505 float rgba[4], ycc[3], luma;
1531 for (
int c = 4;
c--;) {
1540 if (ycc_mode == -1) {
1556 if (do_sample_line) {
1557 const float fx = (
float)
x / (
float)ibuf->
x;
1558 const int idx = 2 * (ibuf->
x * savedlines +
x);
1568 void *__restrict chunk_join,
1569 void *__restrict chunk)
1574 unsigned int *bin_lum = join_chunk->
bin_lum;
1575 unsigned int *bin_r = join_chunk->
bin_r;
1576 unsigned int *bin_g = join_chunk->
bin_g;
1577 unsigned int *bin_b = join_chunk->
bin_b;
1578 unsigned int *bin_a = join_chunk->
bin_a;
1579 const unsigned int *bin_lum_c = data_chunk->
bin_lum;
1580 const unsigned int *bin_r_c = data_chunk->
bin_r;
1581 const unsigned int *bin_g_c = data_chunk->
bin_g;
1582 const unsigned int *bin_b_c = data_chunk->
bin_b;
1583 const unsigned int *bin_a_c = data_chunk->
bin_a;
1585 const float *
min = data_chunk->
min;
1586 const float *
max = data_chunk->
max;
1588 for (
int b = 256;
b--;) {
1589 bin_lum[
b] += bin_lum_c[
b];
1590 bin_r[
b] += bin_r_c[
b];
1591 bin_g[
b] += bin_g_c[
b];
1592 bin_b[
b] += bin_b_c[
b];
1593 bin_a[
b] += bin_a_c[
b];
1596 for (
int c = 3;
c--;) {
1612 unsigned int nl, na, nr, ng, nb;
1613 double divl, diva, divr, divg, divb;
1614 const unsigned char *display_buffer =
NULL;
1616 void *cache_handle =
NULL;
1623 if (scopes->
ok == 1) {
1666 for (
a = 0;
a < 3;
a++) {
1667 scopes->
minmax[
a][0] = 25500.0f;
1668 scopes->
minmax[
a][1] = -25500.0f;
1687 "waveform point channel 1");
1689 "waveform point channel 2");
1691 "waveform point channel 3");
1693 "vectorscope point channel");
1700 ibuf, view_settings, display_settings, &cache_handle);
1707 .cm_processor = cm_processor,
1708 .display_buffer = display_buffer,
1709 .ycc_mode = ycc_mode,
1723 nl = na = nr = nb = ng = 0;
1724 for (
a = 0;
a < 256;
a++) {
1728 if (data_chunk.
bin_r[
a] > nr) {
1729 nr = data_chunk.
bin_r[
a];
1731 if (data_chunk.
bin_g[
a] > ng) {
1732 ng = data_chunk.
bin_g[
a];
1734 if (data_chunk.
bin_b[
a] > nb) {
1735 nb = data_chunk.
bin_b[
a];
1737 if (data_chunk.
bin_a[
a] > na) {
1738 na = data_chunk.
bin_a[
a];
1741 divl = nl ? 1.0 / (
double)nl : 1.0;
1742 diva = na ? 1.0 / (
double)na : 1.0;
1743 divr = nr ? 1.0 / (
double)nr : 1.0;
1744 divg = ng ? 1.0 / (
double)ng : 1.0;
1745 divb = nb ? 1.0 / (
double)nb : 1.0;
1747 for (
a = 0;
a < 256;
a++) {
1807 const char *view_transform)
1812 if (!view_transform) {
1821 view_settings->
flag = 0;
1822 view_settings->
gamma = 1.0f;
1844 new_settings->
flag = settings->
flag;
typedef float(TangentPoint)[2]
void BKE_curve_correct_bezpart(const float v1[2], float v2[2], float v3[2], const float v4[2])
void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride)
#define BLI_assert_unreachable()
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
MINLINE int compare_ff(float a, float b, float max_diff)
#define BLI_YUV_ITU_BT709
#define BLI_YCC_JFIF_0_255
#define BLI_YCC_ITU_BT601
void rgb_to_ycc(float r, float g, float b, float *r_y, float *r_cb, float *r_cr, int colorspace)
void rgb_to_yuv(float r, float g, float b, float *r_y, float *r_u, float *r_v, int colorspace)
#define BLI_YCC_ITU_BT709
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE float len_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
MINLINE void copy_v2_fl2(float v[2], float x, float y)
MINLINE void madd_v2_v2v2fl(float r[2], const float a[2], const float b[2], float f)
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void mul_v2_v2(float r[2], const float a[2])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE void zero_v2(float r[2])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE float len_v2(const float a[2]) ATTR_WARN_UNUSED_RESULT
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
void BLI_rctf_init(struct rctf *rect, float xmin, float xmax, float ymin, float ymax)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
#define STRNCPY(dst, src)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
void BLI_task_parallel_range(int start, int stop, void *userdata, TaskParallelRangeFunc func, const TaskParallelSettings *settings)
BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings)
#define INIT_MINMAX(min, max)
#define BLO_read_data_address(reader, ptr_p)
#define BLO_write_struct(writer, struct_name, data_ptr)
#define BLO_write_struct_array(writer, struct_name, array_size, data_ptr)
typedef double(DMatrix)[4][4]
@ CUMA_EXTEND_EXTRAPOLATE
@ SCOPES_WAVEFRM_YCC_JPEG
@ SCOPES_WAVEFRM_RGB_PARADE
_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 const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble y1
_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 const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_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 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 const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble x2
_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 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 const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
void IMB_colormanagement_processor_apply_v3(struct ColormanageProcessor *cm_processor, float pixel[3])
BLI_INLINE unsigned char IMB_colormanagement_get_luminance_byte(const unsigned char[3])
void IMB_colormanagement_processor_free(struct ColormanageProcessor *cm_processor)
void IMB_colormanagement_validate_settings(const struct ColorManagedDisplaySettings *display_settings, struct ColorManagedViewSettings *view_settings)
void IMB_colormanagement_processor_apply_v4(struct ColormanageProcessor *cm_processor, float pixel[4])
void IMB_display_buffer_release(void *cache_handle)
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_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)
struct ColorManagedDisplay * IMB_colormanagement_display_get_named(const char *name)
const char * IMB_colormanagement_display_get_default_view_transform_name(struct ColorManagedDisplay *display)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
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
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
MINLINE unsigned char unit_float_to_uchar_clamp(float val)
SymEdge< T > * prev(const SymEdge< T > *se)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken rgba("rgba", pxr::TfToken::Immortal)
static const pxr::TfToken g("g", pxr::TfToken::Immortal)
static const pxr::TfToken rgb("rgb", pxr::TfToken::Immortal)
struct CurveMapping * curve_mapping
CurveMapPoint * premultable
unsigned int bin_lum[256]
struct ColormanageProcessor * cm_processor
const unsigned char * display_buffer
TaskParallelReduceFunc func_reduce
size_t userdata_chunk_size