78 int UI_draw_roundbox_corner_get(
void)
85 const float inner1[4],
86 const float inner2[4],
88 const float outline[4],
96 .recti.ymin = rect->
ymin + outline_width,
97 .recti.xmax = rect->
xmax - outline_width,
98 .recti.ymax = rect->
ymax - outline_width,
106 .color_inner1[0] = inner1 ? inner1[0] : 0.0f,
107 .color_inner1[1] = inner1 ? inner1[1] : 0.0f,
108 .color_inner1[2] = inner1 ? inner1[2] : 0.0f,
109 .color_inner1[3] = inner1 ? inner1[3] : 0.0f,
110 .color_inner2[0] = inner2 ? inner2[0] : inner1 ? inner1[0] : 0.0f,
111 .color_inner2[1] = inner2 ? inner2[1] : inner1 ? inner1[1] : 0.0f,
112 .color_inner2[2] = inner2 ? inner2[2] : inner1 ? inner1[2] : 0.0f,
113 .color_inner2[3] = inner2 ? inner2[3] : inner1 ? inner1[3] : 0.0f,
114 .color_outline[0] = outline ? outline[0] : inner1 ? inner1[0] : 0.0f,
115 .color_outline[1] = outline ? outline[1] : inner1 ? inner1[1] : 0.0f,
116 .color_outline[2] = outline ? outline[2] : inner1 ? inner1[2] : 0.0f,
117 .color_outline[3] = outline ? outline[3] : inner1 ? inner1[3] : 0.0f,
118 .shade_dir = shade_dir,
119 .alpha_discard = 1.0f,
142 const rctf *rect,
bool filled,
float rad,
const float col[3],
float alpha)
152 float colv[4] = {color[0], color[1], color[2], color[3]};
169 const rctf *rect,
bool filled,
float rad,
float shadetop,
float shadedown,
const float col[4])
171 float inner1[4] = {0.0f, 0.0f, 0.0f, 0.0f};
172 float inner2[4] = {0.0f, 0.0f, 0.0f, 0.0f};
176 inner1[0] =
min_ff(1.0f,
col[0] + shadetop);
177 inner1[1] =
min_ff(1.0f,
col[1] + shadetop);
178 inner1[2] =
min_ff(1.0f,
col[2] + shadetop);
180 inner2[0] =
max_ff(0.0f,
col[0] + shadedown);
181 inner2[1] =
max_ff(0.0f,
col[1] + shadedown);
182 inner2[2] =
max_ff(0.0f,
col[2] + shadedown);
187 outline[0] =
clamp_f(
col[0] + shadetop + shadedown, 0.0f, 1.0f);
188 outline[1] =
clamp_f(
col[1] + shadetop + shadedown, 0.0f, 1.0f);
189 outline[2] =
clamp_f(
col[2] + shadetop + shadedown, 0.0f, 1.0f);
190 outline[3] =
clamp_f(
col[3] + shadetop + shadedown, 0.0f, 1.0f);
197 const int ofs_y = 4 *
U.pixelsize;
216 uchar highlight_fade[3])
223 const int minx = rect->
xmin +
U.pixelsize, maxx = rect->
xmax -
U.pixelsize;
224 const int miny = rect->
ymin +
U.pixelsize, maxy = rect->
ymax -
U.pixelsize;
234 for (
a = 0;
a < 4;
a++) {
246 for (
a = 0;
a < 4;
a++) {
258 for (
a = 0;
a < 4;
a++) {
272 for (
a = 0;
a < 4;
a++) {
284 for (
a = 0;
a < 4;
a++) {
331 if (
w != ibuf->
x || h != ibuf->
y) {
336 float col[4] = {1.0f, 1.0f, 1.0f, 1.0f};
337 if (but->
col[3] != 0) {
359 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
375 const float title_aspect[2],
376 const float action_aspect[2])
378 const float size_x_half = (rect->
xmax - rect->
xmin) * 0.5f;
379 const float size_y_half = (rect->
ymax - rect->
ymin) * 0.5f;
381 const float *safe_areas[] = {title_aspect, action_aspect};
384 for (
int i = 0; i < safe_len; i++) {
385 if (safe_areas[i][0] || safe_areas[i][1]) {
386 const float margin_x = safe_areas[i][0] * size_x_half;
387 const float margin_y = safe_areas[i][1] * size_y_half;
389 const float minx = rect->
xmin + margin_x;
390 const float miny = rect->
ymin + margin_y;
391 const float maxx = rect->
xmax - margin_x;
392 const float maxy = rect->
ymax - margin_y;
405 const float color[4] = {0.0f, 0.0f, 0.0f, 0.5f};
408 .xmin = rect->
xmin - 1,
409 .xmax = rect->
xmax + 1,
411 .ymax = rect->
ymax + 1,
431 const float color[4] = {
r, g, b,
alpha};
448 for (
int i = 0; i < res; i++) {
449 const float x2 =
x + i * (
w / (
float)res);
459 for (
int i = 1; i < res; i++) {
460 const float x2 =
x + i * (
w / (
float)res);
471 for (
int i = 0; i < res; i++) {
472 const float x2 =
x + i * (
w / (
float)res);
481 #define HISTOGRAM_TOT_GRID_LINES 4
494 .xmax = (
float)recti->
xmax - 1,
496 .ymax = (
float)recti->
ymax - 1,
509 .xmin = rect.
xmin - 1,
510 .xmax = rect.
xmax + 1,
511 .ymin = rect.
ymin - 1,
512 .ymax = rect.
ymax + 1,
554 1.0, 1.0, 1.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_luma, res, is_line,
pos);
558 1.0, 1.0, 1.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_a, res, is_line,
pos);
563 1.0, 0.0, 0.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_r, res, is_line,
pos);
567 0.0, 1.0, 0.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_g, res, is_line,
pos);
571 0.0, 0.0, 1.0, 0.75, rect.
xmin, rect.
ymin,
w, h, hist->
data_b, res, is_line,
pos);
584 #undef HISTOGRAM_TOT_GRID_LINES
613 const float colorsycc[3][3] = {{1, 0, 1}, {1, 1, 0}, {0, 1, 1}};
615 float colors_alpha[3][3], colorsycc_alpha[3][3];
618 if (scopes ==
NULL) {
624 .xmax = (
float)recti->xmax - 1,
625 .ymin = (
float)recti->ymin + 1,
626 .ymax = (
float)recti->ymax - 1,
629 if (scopes->wavefrm_yfac < 0.5f) {
630 scopes->wavefrm_yfac = 0.98f;
635 const float w3 =
w / 3.0f;
638 const float alpha = scopes->wavefrm_alpha * scopes->wavefrm_alpha;
642 for (
int c = 0;
c < 3;
c++) {
643 for (
int i = 0; i < 3; i++) {
644 colors_alpha[
c][i] = colors[
c][i] *
alpha;
645 colorsycc_alpha[
c][i] = colorsycc[
c][i] *
alpha;
659 .xmin = rect.
xmin - 1,
660 .xmax = rect.
xmax + 1,
661 .ymin = rect.
ymin - 1,
662 .ymax = rect.
ymax + 1,
676 for (
int i = 0; i < 6; i++) {
699 for (
int i = 0; i < 6; i++) {
710 for (
int i = 1; i < 3; i++) {
751 if (scopes->ok && scopes->waveform_1 !=
NULL) {
769 min = yofs + scopes->minmax[0][0] * h;
770 max = yofs + scopes->minmax[0][1] * h;
792 else if (
ELEM(scopes->wavefrm_mode,
804 scopes->waveform_1, scopes->waveform_tot, (rgb) ? colors_alpha[0] : colorsycc_alpha[0]);
808 scopes->waveform_2, scopes->waveform_tot, (rgb) ? colors_alpha[1] : colorsycc_alpha[1]);
812 scopes->waveform_3, scopes->waveform_tot, (rgb) ? colors_alpha[2] : colorsycc_alpha[2]);
819 for (
int c = 0;
c < 3;
c++) {
825 colorsycc[
c][0] * 0.75f, colorsycc[
c][1] * 0.75f, colorsycc[
c][2] * 0.75f);
827 min = yofs + scopes->minmax[
c][0] * h;
828 max = yofs + scopes->minmax[
c][1] * h;
862 uint pos,
float centerx,
float centery,
float diam,
const float colf[3])
865 float tangle = 0.0f, tampli;
866 float dangle, dampli, dangle2, dampli2;
870 if (u > 0 &&
v >= 0) {
873 else if (u > 0 &&
v < 0) {
879 else if (u == 0 &&
v > 0.0f) {
882 else if (u == 0 &&
v < 0.0f) {
890 dampli = 2.5f / 200.0f;
893 polar_to_x(centerx, diam, tampli + dampli, tangle + dangle),
894 polar_to_y(centery, diam, tampli + dampli, tangle + dangle));
896 polar_to_x(centerx, diam, tampli - dampli, tangle + dangle),
897 polar_to_y(centery, diam, tampli - dampli, tangle + dangle));
899 polar_to_x(centerx, diam, tampli - dampli, tangle - dangle),
900 polar_to_y(centery, diam, tampli - dampli, tangle - dangle));
902 polar_to_x(centerx, diam, tampli + dampli, tangle - dangle),
903 polar_to_y(centery, diam, tampli + dampli, tangle - dangle));
908 dampli = 0.2f * tampli;
910 dampli2 = 0.5f * dampli;
913 polar_to_x(centerx, diam, tampli + dampli - dampli2, tangle + dangle),
914 polar_to_y(centery, diam, tampli + dampli - dampli2, tangle + dangle));
916 polar_to_x(centerx, diam, tampli + dampli, tangle + dangle),
917 polar_to_y(centery, diam, tampli + dampli, tangle + dangle));
919 polar_to_x(centerx, diam, tampli + dampli, tangle + dangle - dangle2),
920 polar_to_y(centery, diam, tampli + dampli, tangle + dangle - dangle2));
924 polar_to_x(centerx, diam, tampli - dampli + dampli2, tangle + dangle),
925 polar_to_y(centery, diam, tampli - dampli + dampli2, tangle + dangle));
927 polar_to_x(centerx, diam, tampli - dampli, tangle + dangle),
928 polar_to_y(centery, diam, tampli - dampli, tangle + dangle));
930 polar_to_x(centerx, diam, tampli - dampli, tangle + dangle - dangle2),
931 polar_to_y(centery, diam, tampli - dampli, tangle + dangle - dangle2));
935 polar_to_x(centerx, diam, tampli - dampli + dampli2, tangle - dangle),
936 polar_to_y(centery, diam, tampli - dampli + dampli2, tangle - dangle));
938 polar_to_x(centerx, diam, tampli - dampli, tangle - dangle),
939 polar_to_y(centery, diam, tampli - dampli, tangle - dangle));
941 polar_to_x(centerx, diam, tampli - dampli, tangle - dangle + dangle2),
942 polar_to_y(centery, diam, tampli - dampli, tangle - dangle + dangle2));
946 polar_to_x(centerx, diam, tampli + dampli - dampli2, tangle - dangle),
947 polar_to_y(centery, diam, tampli + dampli - dampli2, tangle - dangle));
949 polar_to_x(centerx, diam, tampli + dampli, tangle - dangle),
950 polar_to_y(centery, diam, tampli + dampli, tangle - dangle));
952 polar_to_x(centerx, diam, tampli + dampli, tangle - dangle + dangle2),
953 polar_to_y(centery, diam, tampli + dampli, tangle - dangle + dangle2));
962 const float skin_rad =
DEG2RADF(123.0f);
965 const float colors[6][3] = {
976 .xmax = (
float)recti->xmax - 1,
977 .ymin = (
float)recti->ymin + 1,
978 .ymax = (
float)recti->ymax - 1,
983 const float centerx = rect.
xmin +
w * 0.5f;
984 const float centery = rect.
ymin + h * 0.5f;
985 const float diam = (
w < h) ?
w : h;
987 const float alpha = scopes->vecscope_alpha * scopes->vecscope_alpha * scopes->vecscope_alpha;
996 .xmin = rect.
xmin - 1,
997 .xmax = rect.
xmax + 1,
998 .ymin = rect.
ymin - 1,
999 .ymax = rect.
ymax + 1,
1011 (rect.
ymax + 1) - (rect.
ymin - 1));
1032 for (
int j = 0; j < 5; j++) {
1033 const int increment = 15;
1035 for (
int i = 0; i <= 360 - increment; i += increment) {
1037 const float r = (j + 1) * 0.1f;
1053 for (
int i = 0; i < 6; i++) {
1057 if (scopes->ok && scopes->vecscope !=
NULL) {
1098 uint pos,
float x1,
float y1,
float halfwidth,
float height,
bool fill)
1122 uint pos,
float x1,
float y1,
float x2,
float y2,
bool fill)
1140 const float min_width = 3.0f;
1141 float colf[3] = {
UNPACK3(rgb)};
1143 const float half_width =
floorf(sizey / 3.5f);
1144 const float height = half_width * 1.4f;
1146 float y1 = rect->
ymin + (sizey * 0.16f);
1147 const float y2 = rect->
ymax;
1153 if (
active || half_width < min_width) {
1158 float viewport_size[4];
1164 "colors", (
float *)(
float[][4]){{0.8f, 0.8f, 0.8f, 1.0f}, {0.0f, 0.0f, 0.0f, 1.0f}}, 2);
1178 if (half_width < min_width) {
1188 shdr_pos,
x - half_width,
y1 - 1,
x + half_width,
y1 +
height,
false);
1210 shdr_pos,
x,
y1 +
height - 1, (half_width - 1), (half_width - 1));
1219 shdr_pos,
x - (half_width - 1),
y1,
x + (half_width - 1),
y1 +
height,
true);
1227 shdr_pos,
x - (half_width - 2),
y1 + 1,
x + (half_width - 2),
y1 +
height - 2,
true);
1233 uint pos_id, col_id;
1242 const float x1 = rect->
xmin;
1243 const float sizex = rect->
xmax - x1;
1245 const float sizey_solid = sizey * 0.25f;
1246 const float y1 = rect->
ymin;
1260 immUniform4f(
"color1", checker_dark, checker_dark, checker_dark, 1.0f);
1261 immUniform4f(
"color2", checker_light, checker_light, checker_light, 1.0f);
1278 float colf[4] = {0, 0, 0, 0};
1280 v1[1] =
y1 + sizey_solid;
1284 for (
int a = 0;
a <= sizex;
a++) {
1291 v1[0] =
v2[0] = x1 +
a;
1301 v2[1] =
y1 + sizey_solid;
1304 for (
int a = 0;
a <= sizex;
a++) {
1311 v1[0] =
v2[0] = x1 +
a;
1313 immAttr4f(col_id, colf[0], colf[1], colf[2], 1.0f);
1351 for (
int a = 0;
a < coba->
tot;
a++, cbd++) {
1352 if (
a != coba->
cur) {
1353 const float pos = x1 + cbd->
pos * (sizex - 1) + 1;
1359 if (coba->
tot != 0) {
1361 const float pos = x1 + cbd->
pos * (sizex - 1) + 1;
1371 const float diffuse[3] = {1.0f, 1.0f, 1.0f};
1398 if (use_project_matrix) {
1428 if (use_project_matrix) {
1442 const float offset_x,
1443 const float offset_y,
1446 const float start_x = (
ceilf(offset_x / step) * step - offset_x) * zoom_x + rect->
xmin;
1447 const float start_y = (
ceilf(offset_y / step) * step - offset_y) * zoom_y + rect->
ymin;
1449 const int line_count_x =
ceilf((rect->
xmax - start_x) / (step * zoom_x));
1450 const int line_count_y =
ceilf((rect->
ymax - start_y) / (step * zoom_y));
1452 if (line_count_x + line_count_y == 0) {
1457 for (
int i = 0; i < line_count_x; i++) {
1458 const float x = start_x + i * step * zoom_x;
1462 for (
int i = 0; i < line_count_y; i++) {
1463 const float y = start_y + i * step * zoom_y;
1472 r_color[0] = color[0] - shade > 0 ? color[0] - shade : 0;
1473 r_color[1] = color[1] - shade > 0 ? color[1] - shade : 0;
1474 r_color[2] = color[2] - shade > 0 ? color[2] - shade : 0;
1479 uchar color_shaded[3];
1486 uchar color_shaded[3];
1501 if (clip_size_x == 0.0f || clip_size_y == 0.0f) {
1508 const float offsx = cumap->
curr.
xmin - (1.0f / zoomx);
1509 const float offsy = cumap->
curr.
ymin - (1.0f / zoomy);
1512 if (zoomx == 0.0f) {
1521 rcti scissor_new = {
1527 const rcti scissor_region = {0, region->
winx, 0, region->
winy};
1537 const float col[3] = {0.0f, 0.0f, 0.0f};
1540 .
xmin = rect->
xmin + zoomx * (-offsx),
1541 .xmax = grid.
xmin + zoomx,
1542 .ymin = rect->
ymin + zoomy * (-offsy),
1543 .ymax = grid.
ymin + zoomy,
1556 float color_backdrop[4] = {0, 0, 0, 1};
1625 else if (cumap->
cur == 3) {
1633 if (cumap->
cur == 0) {
1636 else if (cumap->
cur == 1) {
1660 line_range.
ymin = rect->
ymin + zoomy * (cmp[0].
y - offsy);
1663 line_range.
xmin = rect->
xmin + zoomx * (cmp[0].
x - offsx + cuma->
ext_in[0]);
1664 line_range.
ymin = rect->
ymin + zoomy * (cmp[0].
y - offsy + cuma->
ext_in[1]);
1685 const float fx = rect->
xmin + zoomx * (cmp[
a].
x - offsx);
1686 const float fy = rect->
ymin + zoomy * (cmp[
a].
y - offsy);
1701 const float fx = rect->
xmin + zoomx * (cmp[
a].
x - offsx);
1702 const float fy = rect->
ymin + zoomy * (cmp[
a].
y - offsy);
1720 float color_vert[4], color_vert_select[4];
1724 interp_v3_v3v3(color_vert, color_vert_select, color_backdrop, 0.75f);
1735 const float fx = rect->
xmin + zoomx * (cmp[
a].
x - offsx);
1736 const float fy = rect->
ymin + zoomy * (cmp[
a].
y - offsy);
1744 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
1784 const float offsx = profile->
view_rect.
xmin - (1.0f / zoomx);
1785 const float offsy = profile->
view_rect.
ymin - (1.0f / zoomy);
1788 if (zoomx == 0.0f) {
1795 rcti scissor_new = {
1801 const rcti scissor_region = {0, region->
winx, 0, region->
winy};
1815 float color_backdrop[4] = {0, 0, 0, 1};
1849 const uint tot_triangles = tot_points - 2;
1852 float(*table_coords)[2] =
MEM_mallocN(
sizeof(*table_coords) * tot_points,
"table x coords");
1855 table_coords[i][0] = pts[i].
x;
1856 table_coords[i][1] = pts[i].
y;
1861 if (add_left_tri && add_bottom_tri) {
1863 table_coords[tot_points - 3][0] = profile->
view_rect.
xmin - 1.0f;
1864 table_coords[tot_points - 3][1] = 1.0f;
1865 table_coords[tot_points - 2][0] = profile->
view_rect.
xmin - 1.0f;
1866 table_coords[tot_points - 2][1] = profile->
view_rect.
ymin - 1.0f;
1867 table_coords[tot_points - 1][0] = 1.0f;
1868 table_coords[tot_points - 1][1] = profile->
view_rect.
ymin - 1.0f;
1870 else if (add_left_tri) {
1872 table_coords[tot_points - 2][0] = profile->
view_rect.
xmin - 1.0f;
1873 table_coords[tot_points - 2][1] = 1.0f;
1874 table_coords[tot_points - 1][0] = profile->
view_rect.
xmin - 1.0f;
1875 table_coords[tot_points - 1][1] = -1.0f;
1877 else if (add_bottom_tri) {
1879 table_coords[tot_points - 2][0] = -1.0f;
1880 table_coords[tot_points - 2][1] = profile->
view_rect.
ymin - 1.0f;
1881 table_coords[tot_points - 1][0] = 1.0f;
1882 table_coords[tot_points - 1][1] = profile->
view_rect.
ymin - 1.0f;
1886 table_coords[tot_points - 1][0] = -1.0f;
1887 table_coords[tot_points - 1][1] = -1.0f;
1891 uint(*tri_indices)[3] =
MEM_mallocN(
sizeof(*tri_indices) * tot_triangles,
"return tri indices");
1899 for (
uint i = 0; i < tot_triangles; i++) {
1900 for (
uint j = 0; j < 3; j++) {
1901 uint *tri = tri_indices[i];
1902 fx = rect->
xmin + zoomx * (table_coords[tri[j]][0] - offsx);
1903 fy = rect->
ymin + zoomy * (table_coords[tri[j]][1] - offsy);
1911 tot_points -= (add_left_tri + add_left_tri);
1916 for (
uint i = 0; i < tot_points - 1; i++) {
1917 fx = rect->
xmin + zoomx * (table_coords[i][0] - offsx);
1918 fy = rect->
ymin + zoomy * (table_coords[i][1] - offsy);
1925 pts = profile->
path;
1927 int selected_free_points = 0;
1928 for (
uint i = 0; i < tot_points; i++) {
1930 selected_free_points++;
1934 if (selected_free_points > 0) {
1940 for (
uint i = 0; i < tot_points; i++) {
1942 ptx = rect->
xmin + zoomx * (pts[i].
x - offsx);
1943 pty = rect->
ymin + zoomy * (pts[i].
y - offsy);
1945 fx = rect->
xmin + zoomx * (pts[i].
h1_loc[0] - offsx);
1946 fy = rect->
ymin + zoomy * (pts[i].
h1_loc[1] - offsy);
1950 fx = rect->
xmin + zoomx * (pts[i].
h2_loc[0] - offsx);
1951 fy = rect->
ymin + zoomy * (pts[i].
h2_loc[1] - offsy);
1967 float color_vert[4], color_vert_select[4], color_sample[4];
1970 color_sample[0] = (
float)wcol->
item[0] / 255.0f;
1971 color_sample[1] = (
float)wcol->
item[1] / 255.0f;
1972 color_sample[2] = (
float)wcol->
item[2] / 255.0f;
1973 color_sample[3] = (
float)wcol->
item[3] / 255.0f;
1975 interp_v3_v3v3(color_vert, color_vert_select, color_backdrop, 0.75f);
1987 for (
uint i = 0; i < tot_points; i++) {
1988 fx = rect->
xmin + zoomx * (pts[i].
x - offsx);
1989 fy = rect->
ymin + zoomy * (pts[i].
y - offsy);
1996 if (selected_free_points > 0) {
2001 for (
uint i = 0; i < tot_points; i++) {
2003 fx = rect->
xmin + zoomx * (pts[i].
h1_loc[0] - offsx);
2004 fy = rect->
ymin + zoomy * (pts[i].
h1_loc[1] - offsy);
2008 fx = rect->
xmin + zoomx * (pts[i].
h2_loc[0] - offsx);
2009 fy = rect->
ymin + zoomy * (pts[i].
h2_loc[1] - offsy);
2020 if (tot_points > 0 && pts) {
2023 for (
uint i = 0; i < tot_points; i++) {
2024 fx = rect->
xmin + zoomx * (pts[i].
x - offsx);
2025 fy = rect->
ymin + zoomy * (pts[i].
y - offsy);
2034 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
2057 .ymin = (
float)recti->
ymin + 1,
2072 (rect.
ymax + 1) - (rect.
ymin - 1));
2074 if (scopes->track_disabled) {
2075 const float color[4] = {0.7f, 0.3f, 0.3f, 0.3f};
2079 .xmin = rect.
xmin - 1,
2080 .xmax = rect.
xmax + 1,
2082 .ymax = rect.
ymax + 1,
2090 else if ((scopes->track_search) &&
2091 ((!scopes->track_preview) ||
2092 (scopes->track_preview->x !=
width || scopes->track_preview->y !=
height))) {
2093 if (scopes->track_preview) {
2098 scopes->frame_height,
2099 scopes->track_search,
2101 &scopes->undist_marker,
2103 scopes->use_track_mask,
2112 if (tmpibuf->
rect) {
2113 scopes->track_preview = tmpibuf;
2121 if (!ok && scopes->track_preview) {
2128 ImBuf *drawibuf = scopes->track_preview;
2129 float col_sel[4], col_outline[4];
2131 if (scopes->use_track_mask) {
2132 const float color[4] = {0.0f, 0.0f, 0.0f, 0.3f};
2136 .xmin = rect.
xmin - 1,
2137 .xmax = rect.
xmax + 1,
2139 .ymax = rect.
ymax + 1,
2173 const float pos_sel[8] = {-10.0f, -7.0f, -4.0f, -1.0f, 2.0f, 5.0f, 8.0f, 11.0f};
2174 for (
int axe = 0; axe < 2; axe++) {
2175 for (
int i = 0; i < 7; i++) {
2176 const float x1 = pos_sel[i] * (1 - axe);
2177 const float y1 = pos_sel[i] * axe;
2178 const float x2 = pos_sel[i + 1] * (1 - axe);
2179 const float y2 = pos_sel[i + 1] * axe;
2203 const float color[4] = {0.0f, 0.0f, 0.0f, 0.3f};
2207 .xmin = rect.
xmin - 1,
2208 .xmax = rect.
xmax + 1,
2210 .ymax = rect.
ymax + 1,
2246 const float v1[2] = {rect->
xmax, rect->
ymax - 0.3f * shadsize};
2247 const float v2[2] = {rect->
xmax + shadsize, rect->
ymax - 0.75f * shadsize};
2248 const float v3[2] = {rect->
xmax, rect->
ymin};
2249 const float v4[2] = {rect->
xmax + shadsize, rect->
ymin};
2251 const float v5[2] = {rect->
xmax + 0.7f * shadsize, rect->
ymin - 0.7f * shadsize};
2253 const float v6[2] = {rect->
xmax, rect->
ymin - shadsize};
2254 const float v7[2] = {rect->
xmin + 0.3f * shadsize, rect->
ymin};
2255 const float v8[2] = {rect->
xmin + 0.5f * shadsize, rect->
ymin - shadsize};
2343 const float dalpha =
alpha * 2.0f / 255.0f;
2344 float calpha = dalpha;
2345 float visibility = 1.0f;
2349 float color[4] = {0.0f, 0.0f, 0.0f, calpha};
2355 visibility = visibility * (1.0f - calpha);
2361 .recti.ymin = rct->
ymin,
2362 .recti.xmax = rct->
xmax,
2363 .recti.ymax = rct->
ymax - 10.0f,
2364 .rect.xmin = rct->
xmin -
a,
2365 .rect.ymin = rct->
ymin -
a,
2366 .rect.xmax = rct->
xmax +
a,
2367 .rect.ymax = rct->
ymax - 10.0f +
a,
2374 .alpha_discard = 1.0f,
2384 const float color[4] = {0.0f, 0.0f, 0.0f, 0.4f};
2387 .xmin = rct->
xmin - 0.5f,
2388 .xmax = rct->
xmax + 0.5f,
2389 .ymin = rct->
ymin - 0.5f,
2390 .ymax = rct->
ymax + 0.5f,
typedef float(TangentPoint)[2]
void immDrawPixelsTex(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, const int update_flags)
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_draw_default(float x, float y, float z, const char *str, size_t len) ATTR_NONNULL()
void BLF_batch_draw_flush(void)
void BLF_color4f(int fontid, float r, float g, float b, float a)
MINLINE float max_ff(float a, float b)
MINLINE float clamp_f(float value, float min, float max)
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])
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], const float t)
MINLINE float len_squared_v3(const float v[3]) ATTR_WARN_UNUSED_RESULT
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 swap_v3_v3(float a[3], float b[3])
void BLI_polyfill_calc(const float(*coords)[2], const unsigned int coords_tot, const 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
#define SCOPES_WAVEFRM_RGB_PARADE
#define SCOPES_WAVEFRM_YCC_JPEG
#define SCOPES_WAVEFRM_RGB
#define SCOPES_WAVEFRM_YCC_601
#define SCOPES_WAVEFRM_YCC_709
#define SCOPES_WAVEFRM_LUMA
#define PROF_TABLE_LEN(n_pts)
NSNotificationCenter * center
#define GPU_batch_uniform_1f(batch, name, x)
void GPU_batch_discard(GPUBatch *)
#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_3fv(batch, name, val)
#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 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 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 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 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)
void IMB_freeImBuf(struct ImBuf *ibuf)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
Group RGB to Bright Vector Camera CLAMP
#define UI_ALPHA_CHECKER_LIGHT
#define UI_ALPHA_CHECKER_DARK
void UI_GetThemeColor4fv(int colorid, float col[4])
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.
static CCL_NAMESPACE_BEGIN const double alpha
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)
void ui_draw_but_UNITVEC(uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
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_roundbox_shade_x(const rctf *rect, bool filled, float rad, float shadetop, float shadedown, const float col[4])
void ui_draw_but_COLORBAND(uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *rect)
static void waveform_draw_one(float *waveform, int nbr, const float col[3])
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_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)
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], const eButGradientType type, const 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)
bool active
all scheduled work for the GPU.
CurveProfilePoint * table
CurveProfilePoint * segments
struct ColorBand * edit_coba
struct CurveMapping * edit_cumap
eButGradientType gradient_type
struct CurveProfile * edit_profile
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)