63 int UI_draw_roundbox_corner_get(
void)
70 const float inner1[4],
71 const float inner2[4],
73 const float outline[4],
81 .recti.ymin = rect->
ymin + outline_width,
82 .recti.xmax = rect->
xmax - outline_width,
83 .recti.ymax = rect->
ymax - outline_width,
91 .color_inner1[0] = inner1 ? inner1[0] : 0.0f,
92 .color_inner1[1] = inner1 ? inner1[1] : 0.0f,
93 .color_inner1[2] = inner1 ? inner1[2] : 0.0f,
94 .color_inner1[3] = inner1 ? inner1[3] : 0.0f,
95 .color_inner2[0] = inner2 ? inner2[0] :
98 .color_inner2[1] = inner2 ? inner2[1] :
101 .color_inner2[2] = inner2 ? inner2[2] :
104 .color_inner2[3] = inner2 ? inner2[3] :
107 .color_outline[0] = outline ? outline[0] :
110 .color_outline[1] = outline ? outline[1] :
113 .color_outline[2] = outline ? outline[2] :
116 .color_outline[3] = outline ? outline[3] :
119 .shade_dir = shade_dir,
120 .alpha_discard = 1.0f,
133 const float colv[4] = {
137 ((
float)alpha) / 255,
143 const rctf *rect,
bool filled,
float rad,
const float col[3],
float alpha)
145 const float colv[4] = {
col[0],
col[1],
col[2], alpha};
169 const int ofs_y = 4 *
U.pixelsize;
186 uchar highlight_fade[3])
193 const int minx = rect->
xmin +
U.pixelsize, maxx = rect->
xmax -
U.pixelsize;
194 const int miny = rect->
ymin +
U.pixelsize, maxy = rect->
ymax -
U.pixelsize;
204 for (
a = 0;
a < 4;
a++) {
216 for (
a = 0;
a < 4;
a++) {
228 for (
a = 0;
a < 4;
a++) {
242 for (
a = 0;
a < 4;
a++) {
254 for (
a = 0;
a < 4;
a++) {
301 if (
w != ibuf->
x || h != ibuf->
y) {
306 float col[4] = {1.0f, 1.0f, 1.0f, 1.0f};
307 if (but->
col[3] != 0) {
329 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
337 const float title_aspect[2],
338 const float action_aspect[2])
340 const float size_x_half = (rect->
xmax - rect->
xmin) * 0.5f;
341 const float size_y_half = (rect->
ymax - rect->
ymin) * 0.5f;
343 const float *safe_areas[] = {title_aspect, action_aspect};
346 for (
int i = 0; i < safe_len; i++) {
347 if (safe_areas[i][0] || safe_areas[i][1]) {
348 const float margin_x = safe_areas[i][0] * size_x_half;
349 const float margin_y = safe_areas[i][1] * size_y_half;
351 const float minx = rect->
xmin + margin_x;
352 const float miny = rect->
ymin + margin_y;
353 const float maxx = rect->
xmax - margin_x;
354 const float maxy = rect->
ymax - margin_y;
367 const float color[4] = {0.0f, 0.0f, 0.0f, 0.5f};
370 .xmin = rect->
xmin - 1,
371 .xmax = rect->
xmax + 1,
373 .ymax = rect->
ymax + 1,
393 const float color[4] = {
r,
g,
b, alpha};
410 for (
int i = 0; i < res; i++) {
411 const float x2 =
x + i * (
w / (
float)res);
423 for (
int i = 1; i < res; i++) {
424 const float x2 =
x + i * (
w / (
float)res);
435 for (
int i = 0; i < res; i++) {
436 const float x2 =
x + i * (
w / (
float)res);
445 #define HISTOGRAM_TOT_GRID_LINES 4
458 .xmax = (
float)recti->
xmax - 1,
460 .ymax = (
float)recti->
ymax - 1,
473 .xmin = rect.
xmin - 1,
474 .xmax = rect.
xmax + 1,
475 .ymin = rect.
ymin - 1,
476 .ymax = rect.
ymax + 1,
518 1.0, 1.0, 1.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_luma, res, is_line,
pos);
522 1.0, 1.0, 1.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_a, res, is_line,
pos);
527 1.0, 0.0, 0.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_r, res, is_line,
pos);
531 0.0, 1.0, 0.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_g, res, is_line,
pos);
535 0.0, 0.0, 1.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_b, res, is_line,
pos);
548 #undef HISTOGRAM_TOT_GRID_LINES
577 const float colorsycc[3][3] = {{1, 0, 1}, {1, 1, 0}, {0, 1, 1}};
579 float colors_alpha[3][3], colorsycc_alpha[3][3];
582 if (scopes ==
NULL) {
588 .xmax = (
float)recti->xmax - 1,
589 .ymin = (
float)recti->ymin + 1,
590 .ymax = (
float)recti->ymax - 1,
593 if (scopes->wavefrm_yfac < 0.5f) {
594 scopes->wavefrm_yfac = 0.98f;
599 const float w3 =
w / 3.0f;
602 const float alpha = scopes->wavefrm_alpha * scopes->wavefrm_alpha;
606 for (
int c = 0;
c < 3;
c++) {
607 for (
int i = 0; i < 3; i++) {
608 colors_alpha[
c][i] = colors[
c][i] * alpha;
609 colorsycc_alpha[
c][i] = colorsycc[
c][i] * alpha;
623 .xmin = rect.
xmin - 1,
624 .xmax = rect.
xmax + 1,
625 .ymin = rect.
ymin - 1,
626 .ymax = rect.
ymax + 1,
640 for (
int i = 0; i < 6; i++) {
663 for (
int i = 0; i < 6; i++) {
674 for (
int i = 1; i < 3; i++) {
715 if (scopes->ok && scopes->waveform_1 !=
NULL) {
721 const float col[3] = {alpha, alpha, alpha};
733 min = yofs + scopes->minmax[0][0] * h;
734 max = yofs + scopes->minmax[0][1] * h;
756 else if (
ELEM(scopes->wavefrm_mode,
768 scopes->waveform_1, scopes->waveform_tot, (
rgb) ? colors_alpha[0] : colorsycc_alpha[0]);
772 scopes->waveform_2, scopes->waveform_tot, (
rgb) ? colors_alpha[1] : colorsycc_alpha[1]);
776 scopes->waveform_3, scopes->waveform_tot, (
rgb) ? colors_alpha[2] : colorsycc_alpha[2]);
783 for (
int c = 0;
c < 3;
c++) {
789 colorsycc[
c][0] * 0.75f, colorsycc[
c][1] * 0.75f, colorsycc[
c][2] * 0.75f);
791 min = yofs + scopes->minmax[
c][0] * h;
792 max = yofs + scopes->minmax[
c][1] * h;
826 uint pos,
float centerx,
float centery,
float diam,
const float colf[3])
829 float tangle = 0.0f, tampli;
830 float dangle, dampli, dangle2, dampli2;
834 if (u > 0 &&
v >= 0) {
837 else if (u > 0 &&
v < 0) {
843 else if (u == 0 &&
v > 0.0f) {
846 else if (u == 0 &&
v < 0.0f) {
854 dampli = 2.5f / 200.0f;
857 polar_to_x(centerx, diam, tampli + dampli, tangle + dangle),
858 polar_to_y(centery, diam, tampli + dampli, tangle + dangle));
860 polar_to_x(centerx, diam, tampli - dampli, tangle + dangle),
861 polar_to_y(centery, diam, tampli - dampli, tangle + dangle));
863 polar_to_x(centerx, diam, tampli - dampli, tangle - dangle),
864 polar_to_y(centery, diam, tampli - dampli, tangle - dangle));
866 polar_to_x(centerx, diam, tampli + dampli, tangle - dangle),
867 polar_to_y(centery, diam, tampli + dampli, tangle - dangle));
872 dampli = 0.2f * tampli;
874 dampli2 = 0.5f * dampli;
877 polar_to_x(centerx, diam, tampli + dampli - dampli2, tangle + dangle),
878 polar_to_y(centery, diam, tampli + dampli - dampli2, tangle + dangle));
880 polar_to_x(centerx, diam, tampli + dampli, tangle + dangle),
881 polar_to_y(centery, diam, tampli + dampli, tangle + dangle));
883 polar_to_x(centerx, diam, tampli + dampli, tangle + dangle - dangle2),
884 polar_to_y(centery, diam, tampli + dampli, tangle + dangle - dangle2));
888 polar_to_x(centerx, diam, tampli - dampli + dampli2, tangle + dangle),
889 polar_to_y(centery, diam, tampli - dampli + dampli2, tangle + dangle));
891 polar_to_x(centerx, diam, tampli - dampli, tangle + dangle),
892 polar_to_y(centery, diam, tampli - dampli, tangle + dangle));
894 polar_to_x(centerx, diam, tampli - dampli, tangle + dangle - dangle2),
895 polar_to_y(centery, diam, tampli - dampli, tangle + dangle - dangle2));
899 polar_to_x(centerx, diam, tampli - dampli + dampli2, tangle - dangle),
900 polar_to_y(centery, diam, tampli - dampli + dampli2, tangle - dangle));
902 polar_to_x(centerx, diam, tampli - dampli, tangle - dangle),
903 polar_to_y(centery, diam, tampli - dampli, tangle - dangle));
905 polar_to_x(centerx, diam, tampli - dampli, tangle - dangle + dangle2),
906 polar_to_y(centery, diam, tampli - dampli, tangle - dangle + dangle2));
910 polar_to_x(centerx, diam, tampli + dampli - dampli2, tangle - dangle),
911 polar_to_y(centery, diam, tampli + dampli - dampli2, tangle - dangle));
913 polar_to_x(centerx, diam, tampli + dampli, tangle - dangle),
914 polar_to_y(centery, diam, tampli + dampli, tangle - dangle));
916 polar_to_x(centerx, diam, tampli + dampli, tangle - dangle + dangle2),
917 polar_to_y(centery, diam, tampli + dampli, tangle - dangle + dangle2));
926 const float skin_rad =
DEG2RADF(123.0f);
929 const float colors[6][3] = {
940 .xmax = (
float)recti->xmax - 1,
941 .ymin = (
float)recti->ymin + 1,
942 .ymax = (
float)recti->ymax - 1,
947 const float centerx = rect.
xmin +
w * 0.5f;
948 const float centery = rect.
ymin + h * 0.5f;
949 const float diam = (
w < h) ?
w : h;
951 const float alpha = scopes->vecscope_alpha * scopes->vecscope_alpha * scopes->vecscope_alpha;
960 .xmin = rect.
xmin - 1,
961 .xmax = rect.
xmax + 1,
962 .ymin = rect.
ymin - 1,
963 .ymax = rect.
ymax + 1,
996 for (
int j = 0; j < 5; j++) {
997 const int increment = 15;
999 for (
int i = 0; i <= 360 - increment; i += increment) {
1001 const float r = (j + 1) * 0.1f;
1017 for (
int i = 0; i < 6; i++) {
1021 if (scopes->ok && scopes->vecscope !=
NULL) {
1023 const float col[3] = {alpha, alpha, alpha};
1062 uint pos,
float x1,
float y1,
float halfwidth,
float height,
bool fill)
1086 uint pos,
float x1,
float y1,
float x2,
float y2,
bool fill)
1115 const float min_width = 3.0f;
1118 const float half_width =
floorf(sizey / 3.5f);
1119 const float height = half_width * 1.4f;
1121 float y1 = rect->
ymin + (sizey * 0.16f);
1122 const float y2 = rect->
ymax;
1128 if (
active || half_width < min_width) {
1133 float viewport_size[4];
1153 if (half_width < min_width) {
1163 shdr_pos,
x - half_width,
y1 - 1,
x + half_width,
y1 +
height,
false);
1185 shdr_pos,
x,
y1 +
height - 1, (half_width - 1), (half_width - 1));
1194 shdr_pos,
x - (half_width - 1),
y1,
x + (half_width - 1),
y1 +
height,
true);
1202 shdr_pos,
x - (half_width - 2),
y1 + 1,
x + (half_width - 2),
y1 +
height - 2,
true);
1208 uint pos_id, col_id;
1217 const float x1 = rect->
xmin;
1218 const float sizex = rect->
xmax - x1;
1220 const float sizey_solid = sizey * 0.25f;
1221 const float y1 = rect->
ymin;
1235 immUniform4f(
"color1", checker_dark, checker_dark, checker_dark, 1.0f);
1236 immUniform4f(
"color2", checker_light, checker_light, checker_light, 1.0f);
1253 float colf[4] = {0, 0, 0, 0};
1255 v1[1] =
y1 + sizey_solid;
1259 for (
int a = 0;
a <= sizex;
a++) {
1266 v1[0] =
v2[0] = x1 +
a;
1276 v2[1] =
y1 + sizey_solid;
1279 for (
int a = 0;
a <= sizex;
a++) {
1286 v1[0] =
v2[0] = x1 +
a;
1288 immAttr4f(col_id, colf[0], colf[1], colf[2], 1.0f);
1326 for (
int a = 0;
a < coba->
tot;
a++, cbd++) {
1327 if (
a != coba->
cur) {
1328 const float pos = x1 + cbd->
pos * (sizex - 1) + 1;
1334 if (coba->
tot != 0) {
1336 const float pos = x1 + cbd->
pos * (sizex - 1) + 1;
1349 const float diffuse[3] = {1.0f, 1.0f, 1.0f};
1376 if (use_project_matrix) {
1387 copy_v4_fl4(simple_lighting_data.
color, diffuse[0], diffuse[1], diffuse[2], 1.0f);
1412 if (use_project_matrix) {
1426 const float offset_x,
1427 const float offset_y,
1430 const float start_x = (
ceilf(offset_x / step) * step - offset_x) * zoom_x + rect->
xmin;
1431 const float start_y = (
ceilf(offset_y / step) * step - offset_y) * zoom_y + rect->
ymin;
1433 const int line_count_x =
ceilf((rect->
xmax - start_x) / (step * zoom_x));
1434 const int line_count_y =
ceilf((rect->
ymax - start_y) / (step * zoom_y));
1436 if (line_count_x + line_count_y == 0) {
1441 for (
int i = 0; i < line_count_x; i++) {
1442 const float x = start_x + i * step * zoom_x;
1446 for (
int i = 0; i < line_count_y; i++) {
1447 const float y = start_y + i * step * zoom_y;
1456 r_color[0] =
color[0] - shade > 0 ?
color[0] - shade : 0;
1457 r_color[1] =
color[1] - shade > 0 ?
color[1] - shade : 0;
1458 r_color[2] =
color[2] - shade > 0 ?
color[2] - shade : 0;
1463 uchar color_shaded[3];
1470 uchar color_shaded[3];
1485 if (clip_size_x == 0.0f || clip_size_y == 0.0f) {
1492 const float offsx = cumap->
curr.
xmin - (1.0f / zoomx);
1493 const float offsy = cumap->
curr.
ymin - (1.0f / zoomy);
1496 if (zoomx == 0.0f) {
1505 rcti scissor_new = {
1511 const rcti scissor_region = {0, region->
winx, 0, region->
winy};
1521 const float col[3] = {0.0f, 0.0f, 0.0f};
1524 .
xmin = rect->
xmin + zoomx * (-offsx),
1525 .xmax = grid.
xmin + zoomx,
1526 .ymin = rect->
ymin + zoomy * (-offsy),
1527 .ymax = grid.
ymin + zoomy,
1540 float color_backdrop[4] = {0, 0, 0, 1};
1609 else if (cumap->
cur == 3) {
1617 if (cumap->
cur == 0) {
1620 else if (cumap->
cur == 1) {
1644 line_range.
ymin = rect->
ymin + zoomy * (cmp[0].
y - offsy);
1647 line_range.
xmin = rect->
xmin + zoomx * (cmp[0].
x - offsx + cuma->
ext_in[0]);
1648 line_range.
ymin = rect->
ymin + zoomy * (cmp[0].
y - offsy + cuma->
ext_in[1]);
1669 const float fx = rect->
xmin + zoomx * (cmp[
a].
x - offsx);
1670 const float fy = rect->
ymin + zoomy * (cmp[
a].
y - offsy);
1685 const float fx = rect->
xmin + zoomx * (cmp[
a].
x - offsx);
1686 const float fy = rect->
ymin + zoomy * (cmp[
a].
y - offsy);
1704 float color_vert[4], color_vert_select[4];
1708 interp_v3_v3v3(color_vert, color_vert_select, color_backdrop, 0.75f);
1719 const float fx = rect->
xmin + zoomx * (cmp[
a].
x - offsx);
1720 const float fy = rect->
ymin + zoomy * (cmp[
a].
y - offsy);
1728 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
1765 const float offsx = profile->
view_rect.
xmin - (1.0f / zoomx);
1766 const float offsy = profile->
view_rect.
ymin - (1.0f / zoomy);
1769 if (zoomx == 0.0f) {
1776 rcti scissor_new = {
1782 const rcti scissor_region = {0, region->
winx, 0, region->
winy};
1796 float color_backdrop[4] = {0, 0, 0, 1};
1830 const uint tot_triangles = tot_points - 2;
1833 float(*table_coords)[2] =
MEM_mallocN(
sizeof(*table_coords) * tot_points,
"table x coords");
1836 table_coords[i][0] = pts[i].
x;
1837 table_coords[i][1] = pts[i].
y;
1842 if (add_left_tri && add_bottom_tri) {
1844 table_coords[tot_points - 3][0] = profile->
view_rect.
xmin - 1.0f;
1845 table_coords[tot_points - 3][1] = 1.0f;
1846 table_coords[tot_points - 2][0] = profile->
view_rect.
xmin - 1.0f;
1847 table_coords[tot_points - 2][1] = profile->
view_rect.
ymin - 1.0f;
1848 table_coords[tot_points - 1][0] = 1.0f;
1849 table_coords[tot_points - 1][1] = profile->
view_rect.
ymin - 1.0f;
1851 else if (add_left_tri) {
1853 table_coords[tot_points - 2][0] = profile->
view_rect.
xmin - 1.0f;
1854 table_coords[tot_points - 2][1] = 1.0f;
1855 table_coords[tot_points - 1][0] = profile->
view_rect.
xmin - 1.0f;
1856 table_coords[tot_points - 1][1] = -1.0f;
1858 else if (add_bottom_tri) {
1860 table_coords[tot_points - 2][0] = -1.0f;
1861 table_coords[tot_points - 2][1] = profile->
view_rect.
ymin - 1.0f;
1862 table_coords[tot_points - 1][0] = 1.0f;
1863 table_coords[tot_points - 1][1] = profile->
view_rect.
ymin - 1.0f;
1867 table_coords[tot_points - 1][0] = -1.0f;
1868 table_coords[tot_points - 1][1] = -1.0f;
1872 if (tot_triangles > 0) {
1873 uint(*tri_indices)[3] =
MEM_mallocN(
sizeof(*tri_indices) * tot_triangles, __func__);
1881 for (
uint i = 0; i < tot_triangles; i++) {
1882 for (
uint j = 0; j < 3; j++) {
1883 uint *tri = tri_indices[i];
1884 fx = rect->
xmin + zoomx * (table_coords[tri[j]][0] - offsx);
1885 fy = rect->
ymin + zoomy * (table_coords[tri[j]][1] - offsy);
1894 tot_points -= (add_left_tri + add_left_tri);
1895 const int edges_len = tot_points - 1;
1896 if (edges_len > 0) {
1901 for (
int i = 0; i < tot_points; i++) {
1902 fx = rect->
xmin + zoomx * (table_coords[i][0] - offsx);
1903 fy = rect->
ymin + zoomy * (table_coords[i][1] - offsy);
1912 pts = profile->
path;
1913 const int path_len = tot_points = (
uint)profile->
path_len;
1914 int selected_free_points = 0;
1915 for (
int i = 0; i < path_len; i++) {
1917 selected_free_points++;
1921 if (selected_free_points > 0) {
1927 for (
int i = 0; i < path_len; i++) {
1929 ptx = rect->
xmin + zoomx * (pts[i].
x - offsx);
1930 pty = rect->
ymin + zoomy * (pts[i].
y - offsy);
1932 fx = rect->
xmin + zoomx * (pts[i].
h1_loc[0] - offsx);
1933 fy = rect->
ymin + zoomy * (pts[i].
h1_loc[1] - offsy);
1937 fx = rect->
xmin + zoomx * (pts[i].
h2_loc[0] - offsx);
1938 fy = rect->
ymin + zoomy * (pts[i].
h2_loc[1] - offsy);
1954 float color_vert[4], color_vert_select[4], color_sample[4];
1957 color_sample[0] = (
float)wcol->
item[0] / 255.0f;
1958 color_sample[1] = (
float)wcol->
item[1] / 255.0f;
1959 color_sample[2] = (
float)wcol->
item[2] / 255.0f;
1960 color_sample[3] = (
float)wcol->
item[3] / 255.0f;
1962 interp_v3_v3v3(color_vert, color_vert_select, color_backdrop, 0.75f);
1975 for (
int i = 0; i < path_len; i++) {
1976 fx = rect->
xmin + zoomx * (pts[i].
x - offsx);
1977 fy = rect->
ymin + zoomy * (pts[i].
y - offsy);
1985 if (selected_free_points > 0) {
1990 for (
int i = 0; i < path_len; i++) {
1992 fx = rect->
xmin + zoomx * (pts[i].
h1_loc[0] - offsx);
1993 fy = rect->
ymin + zoomy * (pts[i].
h1_loc[1] - offsy);
1997 fx = rect->
xmin + zoomx * (pts[i].
h2_loc[0] - offsx);
1998 fy = rect->
ymin + zoomy * (pts[i].
h2_loc[1] - offsy);
2009 if (segments_len > 0 && pts) {
2012 for (
int i = 0; i < segments_len; i++) {
2013 fx = rect->
xmin + zoomx * (pts[i].
x - offsx);
2014 fy = rect->
ymin + zoomy * (pts[i].
y - offsy);
2023 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
2046 .ymin = (
float)recti->
ymin + 1,
2061 (rect.
ymax + 1) - (rect.
ymin - 1));
2063 if (scopes->track_disabled) {
2064 const float color[4] = {0.7f, 0.3f, 0.3f, 0.3f};
2068 .xmin = rect.
xmin - 1,
2069 .xmax = rect.
xmax + 1,
2071 .ymax = rect.
ymax + 1,
2079 else if ((scopes->track_search) &&
2080 ((!scopes->track_preview) ||
2081 (scopes->track_preview->x !=
width || scopes->track_preview->y !=
height))) {
2082 if (scopes->track_preview) {
2087 scopes->frame_height,
2088 scopes->track_search,
2090 &scopes->undist_marker,
2092 scopes->use_track_mask,
2101 if (tmpibuf->
rect) {
2102 scopes->track_preview = tmpibuf;
2110 if (!ok && scopes->track_preview) {
2117 ImBuf *drawibuf = scopes->track_preview;
2118 float col_sel[4], col_outline[4];
2120 if (scopes->use_track_mask) {
2121 const float color[4] = {0.0f, 0.0f, 0.0f, 0.3f};
2125 .xmin = rect.
xmin - 1,
2126 .xmax = rect.
xmax + 1,
2128 .ymax = rect.
ymax + 1,
2162 const float pos_sel[8] = {-10.0f, -7.0f, -4.0f, -1.0f, 2.0f, 5.0f, 8.0f, 11.0f};
2163 for (
int axe = 0; axe < 2; axe++) {
2164 for (
int i = 0; i < 7; i++) {
2165 const float x1 = pos_sel[i] * (1 - axe);
2166 const float y1 = pos_sel[i] * axe;
2167 const float x2 = pos_sel[i + 1] * (1 - axe);
2168 const float y2 = pos_sel[i + 1] * axe;
2192 const float color[4] = {0.0f, 0.0f, 0.0f, 0.3f};
2196 .xmin = rect.
xmin - 1,
2197 .xmax = rect.
xmax + 1,
2199 .ymax = rect.
ymax + 1,
2234 const float v1[2] = {rect->
xmax, rect->
ymax - 0.3f * shadsize};
2235 const float v2[2] = {rect->
xmax + shadsize, rect->
ymax - 0.75f * shadsize};
2236 const float v3[2] = {rect->
xmax, rect->
ymin};
2237 const float v4[2] = {rect->
xmax + shadsize, rect->
ymin};
2239 const float v5[2] = {rect->
xmax + 0.7f * shadsize, rect->
ymin - 0.7f * shadsize};
2241 const float v6[2] = {rect->
xmax, rect->
ymin - shadsize};
2242 const float v7[2] = {rect->
xmin + 0.3f * shadsize, rect->
ymin};
2243 const float v8[2] = {rect->
xmin + 0.5f * shadsize, rect->
ymin - shadsize};
2308 const rctf *rct,
float radius,
float aspect,
float alpha,
int UNUSED(
select))
2311 const float rad =
min_ff(radius, max_radius);
2314 const float clamped_aspect =
smoothminf(aspect, 1.0f, 0.5f);
2316 const float shadow_softness = 0.6f *
U.widget_unit * clamped_aspect;
2317 const float shadow_offset = 0.5f *
U.widget_unit * clamped_aspect;
2318 const float shadow_alpha = 0.5f * alpha;
2324 .recti.ymin = rct->
ymin,
2325 .recti.xmax = rct->
xmax,
2326 .recti.ymax = rct->
ymax - shadow_offset,
2327 .rect.xmin = rct->
xmin - shadow_softness,
2328 .rect.ymin = rct->
ymin - shadow_softness,
2329 .rect.xmax = rct->
xmax + shadow_softness,
2330 .rect.ymax = rct->
ymax - shadow_offset + shadow_softness,
2332 .rad = rad + shadow_softness,
2337 .alpha_discard = 1.0f,
2347 const float color[4] = {0.0f, 0.0f, 0.0f, 0.4f};
2350 .xmin = rct->
xmin - 0.5f,
2351 .xmax = rct->
xmax + 0.5f,
2352 .ymin = rct->
ymin - 0.5f,
2353 .ymax = rct->
ymax + 0.5f,
typedef float(TangentPoint)[2]
void immDrawPixelsTexTiled(IMMDrawPixelsTexState *state, float x, float y, int img_w, int img_h, eGPUTextureFormat gpu_format, bool use_filter, void *rect, float xzoom, float yzoom, const float color[4])
IMMDrawPixelsTexState immDrawPixelsTexSetup(int builtin)
bool BKE_colorband_evaluate(const struct ColorBand *coba, float in, float out[4])
void BKE_curveprofile_update(struct CurveProfile *profile, int update_flags)
int BKE_curveprofile_table_size(const struct CurveProfile *profile)
struct ImBuf * BKE_tracking_sample_pattern(int frame_width, int frame_height, struct ImBuf *search_ib, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool from_anchor, bool use_mask, int num_samples_x, int num_samples_y, float pos[2])
void BLF_batch_draw_flush(void)
void BLF_color4f(int fontid, float r, float g, float b, float a)
void BLF_draw_default(float x, float y, float z, const char *str, size_t str_len) ATTR_NONNULL()
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
void rgb_to_hsv_v(const float rgb[3], float r_hsv[3])
#define BLI_YUV_ITU_BT709
void rgb_to_yuv(float r, float g, float b, float *r_y, float *r_u, float *r_v, int colorspace)
void rgba_uchar_to_float(float r_col[4], const unsigned char col_ub[4])
MINLINE void linearrgb_to_srgb_v3_v3(float srgb[3], const float linear[3])
void rgb_uchar_to_float(float r_col[3], const unsigned char col_ub[3])
void unit_m3(float m[3][3])
MINLINE float len_squared_v3(const float v[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v4_fl4(float v[4], float x, float y, float z, float w)
MINLINE float len_squared_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], float t)
MINLINE void swap_v3_v3(float a[3], float b[3])
void BLI_polyfill_calc(const float(*coords)[2], unsigned int coords_num, int coords_sign, unsigned int(*r_tris)[3])
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
bool BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
#define ARRAY_SET_ITEMS(...)
@ CUMA_EXTEND_EXTRAPOLATE
@ SCOPES_WAVEFRM_YCC_JPEG
@ SCOPES_WAVEFRM_RGB_PARADE
NSNotificationCenter * center
#define GPU_batch_uniform_1f(batch, name, x)
void GPU_batch_discard(GPUBatch *)
#define GPU_batch_uniformbuf_bind(batch, name, ubo)
#define GPU_batch_uniform_4fv_array(batch, name, len, val)
void GPU_batch_program_set_builtin(GPUBatch *batch, eGPUBuiltinShader shader_id)
GPUBatch * GPU_batch_create_ex(GPUPrimType prim, GPUVertBuf *vert, GPUIndexBuf *elem, eGPUBatchFlag owns_flag)
void GPU_batch_draw(GPUBatch *batch)
#define GPU_batch_uniform_4f(batch, name, x, y, z, w)
struct GPUBatch * GPU_batch_preset_sphere(int lod) ATTR_WARN_UNUSED_RESULT
_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 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 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 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 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 GPU_matrix_pop(void)
void GPU_matrix_scale_2f(float x, float y)
void GPU_matrix_pop_projection(void)
void GPU_matrix_ortho_set_z(float near, float far)
void GPU_matrix_push(void)
void GPU_matrix_scale_1f(float factor)
#define GPU_MATRIX_ORTHO_CLIP_NEAR_DEFAULT
void GPU_matrix_translate_2f(float x, float y)
void GPU_matrix_push_projection(void)
@ GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR
@ GPU_SHADER_2D_SMOOTH_COLOR
@ GPU_SHADER_2D_UNIFORM_COLOR
@ GPU_SHADER_SIMPLE_LIGHTING
@ GPU_SHADER_2D_IMAGE_COLOR
@ GPU_SHADER_2D_WIDGET_SHADOW
@ GPU_SHADER_2D_FLAT_COLOR
@ GPU_SHADER_2D_WIDGET_BASE
void GPU_face_culling(eGPUFaceCullTest culling)
@ GPU_BLEND_ALPHA_PREMULT
void GPU_blend(eGPUBlend blend)
void GPU_line_width(float width)
void GPU_line_smooth(bool enable)
void GPU_scissor(int x, int y, int width, int height)
void GPU_point_size(float size)
void GPU_viewport_size_get_f(float coords[4])
void GPU_scissor_get(int coords[4])
void GPU_polygon_smooth(bool enable)
#define GPU_vertbuf_create_with_format(format)
struct GPUVertBuf GPUVertBuf
void GPU_vertbuf_data_alloc(GPUVertBuf *, uint v_len)
void GPU_vertbuf_attr_fill(GPUVertBuf *, uint a_idx, const void *data)
BLI_INLINE float IMB_colormanagement_get_luminance(const float rgb[3])
void IMB_colormanagement_scene_linear_to_display_v3(float pixel[3], struct ColorManagedDisplay *display)
bool IMB_scaleImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
void IMB_rect_from_float(struct ImBuf *ibuf)
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
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 color
#define UI_ALPHA_CHECKER_LIGHT
#define UI_ALPHA_CHECKER_DARK
void UI_GetThemeColor4fv(int colorid, float col[4])
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
SyclQueue void void size_t num_bytes void
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
void ui_but_v3_get(uiBut *but, float vec[3])
struct ColorManagedDisplay * ui_block_cm_display_get(uiBlock *block)
#define HISTOGRAM_TOT_GRID_LINES
void UI_draw_roundbox_4fv(const rctf *rect, bool filled, float rad, const float col[4])
void ui_draw_but_WAVEFORM(ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
void UI_draw_safe_areas(uint pos, const rctf *rect, const float title_aspect[2], const float action_aspect[2])
static void gl_shaded_color_get_fl(const uchar *color, int shade, float r_color[3])
static float polar_to_x(float center, float diam, float ampli, float angle)
static void histogram_draw_one(float r, float g, float b, float alpha, float x, float y, float w, float h, const float *data, int res, const bool is_line, uint pos_attr)
void UI_draw_text_underline(int pos_x, int pos_y, int len, int height, const float color[4])
void UI_draw_roundbox_4fv_ex(const rctf *rect, const float inner1[4], const float inner2[4], float shade_dir, const float outline[4], float outline_width, float rad)
static void gl_shaded_color_get(const uchar color[3], int shade, uchar r_color[3])
static void ui_draw_colorband_handle_tri_hlight(uint pos, float x1, float y1, float halfwidth, float height)
static void draw_scope_end(const rctf *rect)
static void gl_shaded_color(const uchar *color, int shade)
static void ui_draw_colorband_handle_tri(uint pos, float x1, float y1, float halfwidth, float height, bool fill)
static float polar_to_y(float center, float diam, float ampli, float angle)
void UI_draw_roundbox_corner_set(int type)
static void ui_shadowbox(const rctf *rect, uint pos, uint color, float shadsize, uchar alpha)
static void ui_draw_colorband_handle(uint shdr_pos, const rcti *rect, float x, const float rgb[3], struct ColorManagedDisplay *display, bool active)
void UI_draw_roundbox_3fv_alpha(const rctf *rect, bool filled, float rad, const float col[3], float alpha)
void ui_draw_but_CURVE(ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
void ui_draw_but_IMAGE(ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *rect)
void UI_draw_box_shadow(const rctf *rect, uchar alpha)
static bool point_draw_handles(CurveProfilePoint *point)
void ui_draw_but_TRACKPREVIEW(ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
static void ui_draw_but_curve_grid(const uint pos, const rcti *rect, const float zoom_x, const float zoom_y, const float offset_x, const float offset_y, const float step)
void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int UNUSED(select))
void ui_draw_but_COLORBAND(uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *rect)
static void vectorscope_draw_target(uint pos, float centerx, float centery, float diam, const float colf[3])
static void ui_draw_colorband_handle_box(uint pos, float x1, float y1, float x2, float y2, bool fill)
void ui_draw_but_UNITVEC(uiBut *but, const uiWidgetColors *wcol, const rcti *rect, const float radius)
void ui_draw_but_CURVEPROFILE(ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
void ui_draw_but_HISTOGRAM(ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
void UI_draw_roundbox_3ub_alpha(const rctf *rect, bool filled, float rad, const uchar col[3], uchar alpha)
static void waveform_draw_one(float *waveform, int waveform_num, const float col[3])
void UI_draw_roundbox_aa(const rctf *rect, bool filled, float rad, const float color[4])
void ui_draw_but_TAB_outline(const rcti *rect, float rad, uchar highlight[3], uchar highlight_fade[3])
void ui_draw_but_VECTORSCOPE(ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
void ui_draw_gradient(const rcti *rect, const float hsv[3], eButGradientType type, float alpha)
struct GPUBatch * ui_batch_roundbox_widget_get(void)
struct GPUBatch * ui_batch_roundbox_shadow_get(void)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
MINLINE float smoothminf(float a, float b, float c)
bool active
all scheduled work for the GPU.
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken g("g", pxr::TfToken::Immortal)
static const pxr::TfToken rgb("rgb", pxr::TfToken::Immortal)
CurveProfilePoint * table
CurveProfilePoint * segments
struct ColorBand * edit_coba
struct CurveMapping * edit_cumap
eButGradientType gradient_type
struct CurveProfile * edit_profile