32 #ifndef __MATH_COLOR_BLEND_INLINE_C__
33 # define __MATH_COLOR_BLEND_INLINE_C__
36 # define EPS_SATURATION 0.0005f
37 # define EPS_ALPHA 0.0005f
55 const int t = src2[3];
56 const int mt = 255 -
t;
59 tmp[0] = (mt * src1[3] * src1[0]) + (
t * 255 * src2[0]);
60 tmp[1] = (mt * src1[3] * src1[1]) + (
t * 255 * src2[1]);
61 tmp[2] = (mt * src1[3] * src1[2]) + (
t * 255 * src2[2]);
62 tmp[3] = (mt * src1[3]) + (
t * 255);
79 const int t = src2[3];
82 tmp[0] = (src1[0] * 255) + (src2[0] *
t);
83 tmp[1] = (src1[1] * 255) + (src2[1] *
t);
84 tmp[2] = (src1[2] * 255) + (src2[2] *
t);
101 const int t = src2[3];
104 tmp[0] = (src1[0] * 255) - (src2[0] *
t);
105 tmp[1] = (src1[1] * 255) - (src2[1] *
t);
106 tmp[2] = (src1[2] * 255) - (src2[2] *
t);
123 const int t = src2[3];
124 const int mt = 255 -
t;
127 tmp[0] = (mt * src1[0] * 255) + (
t * src1[0] * src2[0]);
128 tmp[1] = (mt * src1[1] * 255) + (
t * src1[1] * src2[1]);
129 tmp[2] = (mt * src1[2] * 255) + (
t * src1[2] * src2[2]);
146 const int t = src2[3];
147 const int mt = 255 -
t;
150 tmp[0] = (mt * src1[0]) + (
t *
max_ii(src1[0], src2[0]));
151 tmp[1] = (mt * src1[1]) + (
t *
max_ii(src1[1], src2[1]));
152 tmp[2] = (mt * src1[2]) + (
t *
max_ii(src1[2], src2[2]));
169 const int t = src2[3];
170 const int mt = 255 -
t;
173 tmp[0] = (mt * src1[0]) + (
t *
min_ii(src1[0], src2[0]));
174 tmp[1] = (mt * src1[1]) + (
t *
min_ii(src1[1], src2[1]));
175 tmp[2] = (mt * src1[2]) + (
t *
min_ii(src1[2], src2[2]));
192 const int t = src2[3];
209 const int t = src2[3];
224 const int fac = (int)src2[3];
226 const int mfac = 255 - fac;
233 temp = 255 - ((255 - 2 * (src1[i] - 127)) * (255 - src2[i]) / 255);
236 temp = (2 * src1[i] * src2[i]) >> 8;
238 dst[i] = (
uchar)
min_ii((temp * fac + src1[i] * mfac) / 255, 255);
249 const int fac = (int)src2[3];
251 const int mfac = 255 - fac;
258 temp = 255 - ((255 - 2 * (src2[i] - 127)) * (255 - src1[i]) / 255);
261 temp = (2 * src2[i] * src1[i]) >> 8;
263 dst[i] = (
uchar)
min_ii((temp * fac + src1[i] * mfac) / 255, 255);
274 const int fac = src2[3];
276 const int mfac = 255 - fac;
280 const int temp = (src2[i] == 0) ? 0 :
max_ii(255 - ((255 - src1[i]) * 255) / src2[i], 0);
281 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
292 const int fac = src2[3];
294 const int mfac = 255 - fac;
298 const int temp =
max_ii(src1[i] + src2[i] - 255, 0);
299 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
310 const int fac = src2[3];
312 const int mfac = 255 - fac;
316 const int temp = (src2[i] == 255) ? 255 :
min_ii((src1[i] * 255) / (255 - src2[i]), 255);
317 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
328 const int fac = src2[3];
330 const int mfac = 255 - fac;
334 const int temp =
max_ii(255 - (((255 - src1[i]) * (255 - src2[i])) / 255), 0);
335 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
346 const int fac = src2[3];
348 const int mfac = 255 - fac;
355 temp = ((2 * ((src2[i] / 2) + 64)) * src1[i]) / 255;
358 temp = 255 - (2 * (255 - ((src2[i] / 2) + 64)) * (255 - src1[i]) / 255);
360 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
371 const int fac = src2[3];
373 const int mfac = 255 - fac;
380 temp =
max_ii(2 * (src2[i] - 127), src1[i]);
383 temp =
min_ii(2 * src2[i], src1[i]);
385 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
396 const int fac = src2[3];
398 const int mfac = 255 - fac;
405 temp =
min_ii(src1[i] + 2 * (src2[i] - 127), 255);
408 temp =
max_ii(src1[i] + 2 * src2[i] - 255, 0);
410 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
421 const int fac = src2[3];
423 const int mfac = 255 - fac;
429 if (src2[i] == 255) {
430 temp = (src1[i] == 0) ? 127 : 255;
432 else if (src2[i] == 0) {
433 temp = (src1[i] == 255) ? 127 : 0;
435 else if (src2[i] > 127) {
436 temp =
min_ii(((src1[i]) * 255) / (2 * (255 - src2[i])), 255);
439 temp =
max_ii(255 - ((255 - src1[i]) * 255 / (2 * src2[i])), 0);
441 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
452 const int fac = src2[3];
454 const int mfac = 255 - fac;
458 const int temp =
abs(src1[i] - src2[i]);
459 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
470 const int fac = src2[3];
472 const int mfac = 255 - fac;
476 const int temp = 127 - ((2 * (src1[i] - 127) * (src2[i] - 127)) / 255);
477 dst[i] = (
uchar)((temp * fac + src1[i] * mfac) / 255);
488 const int fac = src2[3];
490 const int mfac = 255 - fac;
494 rgb_to_hsv(src1[0] / 255.0f, src1[1] / 255.0f, src1[2] / 255.0f, &h1, &s1, &
v1);
495 rgb_to_hsv(src2[0] / 255.0f, src2[1] / 255.0f, src2[2] / 255.0f, &h2, &s2, &
v2);
502 dst[0] = (
uchar)(((
int)(
r * 255.0f) * fac + src1[0] * mfac) / 255);
503 dst[1] = (
uchar)(((
int)(g * 255.0f) * fac + src1[1] * mfac) / 255);
504 dst[2] = (
uchar)(((
int)(b * 255.0f) * fac + src1[2] * mfac) / 255);
514 const int fac = src2[3];
516 const int mfac = 255 - fac;
520 rgb_to_hsv(src1[0] / 255.0f, src1[1] / 255.0f, src1[2] / 255.0f, &h1, &s1, &
v1);
521 rgb_to_hsv(src2[0] / 255.0f, src2[1] / 255.0f, src2[2] / 255.0f, &h2, &s2, &
v2);
527 dst[0] = (
uchar)(((
int)(
r * 255.0f) * fac + src1[0] * mfac) / 255);
528 dst[1] = (
uchar)(((
int)(g * 255.0f) * fac + src1[1] * mfac) / 255);
529 dst[2] = (
uchar)(((
int)(b * 255.0f) * fac + src1[2] * mfac) / 255);
539 const int fac = src2[3];
541 const int mfac = 255 - fac;
545 rgb_to_hsv(src1[0] / 255.0f, src1[1] / 255.0f, src1[2] / 255.0f, &h1, &s1, &
v1);
546 rgb_to_hsv(src2[0] / 255.0f, src2[1] / 255.0f, src2[2] / 255.0f, &h2, &s2, &
v2);
554 dst[0] = (
uchar)(((
int)(
r * 255.0f) * fac + src1[0] * mfac) / 255);
555 dst[1] = (
uchar)(((
int)(g * 255.0f) * fac + src1[1] * mfac) / 255);
556 dst[2] = (
uchar)(((
int)(b * 255.0f) * fac + src1[2] * mfac) / 255);
566 const int fac = src2[3];
568 const int mfac = 255 - fac;
572 rgb_to_hsv(src1[0] / 255.0f, src1[1] / 255.0f, src1[2] / 255.0f, &h1, &s1, &
v1);
573 rgb_to_hsv(src2[0] / 255.0f, src2[1] / 255.0f, src2[2] / 255.0f, &h2, &s2, &
v2);
579 dst[0] = (
uchar)(((
int)(
r * 255.0f) * fac + src1[0] * mfac) / 255);
580 dst[1] = (
uchar)(((
int)(g * 255.0f) * fac + src1[1] * mfac) / 255);
581 dst[2] = (
uchar)(((
int)(b * 255.0f) * fac + src1[2] * mfac) / 255);
596 const int t = (int)(255 * ft);
597 const int mt = 255 -
t;
598 int tmp = (mt * src1[3] +
t * src2[3]);
616 if (src2[3] != 0.0f) {
618 const float t = src2[3];
619 const float mt = 1.0f -
t;
621 dst[0] = mt * src1[0] + src2[0];
622 dst[1] = mt * src1[1] + src2[1];
623 dst[2] = mt * src1[2] + src2[2];
624 dst[3] = mt * src1[3] +
t;
634 if (src2[3] != 0.0f) {
636 dst[0] = src1[0] + src2[0] * src1[3];
637 dst[1] = src1[1] + src2[1] * src1[3];
638 dst[2] = src1[2] + src2[2] * src1[3];
649 if (src2[3] != 0.0f) {
651 dst[0] =
max_ff(src1[0] - src2[0] * src1[3], 0.0f);
652 dst[1] =
max_ff(src1[1] - src2[1] * src1[3], 0.0f);
653 dst[2] =
max_ff(src1[2] - src2[2] * src1[3], 0.0f);
664 if (src2[3] != 0.0f) {
666 const float t = src2[3];
667 const float mt = 1.0f -
t;
669 dst[0] = mt * src1[0] + src1[0] * src2[0] * src1[3];
670 dst[1] = mt * src1[1] + src1[1] * src2[1] * src1[3];
671 dst[2] = mt * src1[2] + src1[2] * src2[2] * src1[3];
682 if (src2[3] != 0.0f) {
685 const float t = src2[3];
686 const float mt = 1.0f -
t;
687 const float map_alpha = src1[3] / src2[3];
689 dst[0] = mt * src1[0] +
t *
max_ff(src1[0], src2[0] * map_alpha);
690 dst[1] = mt * src1[1] +
t *
max_ff(src1[1], src2[1] * map_alpha);
691 dst[2] = mt * src1[2] +
t *
max_ff(src1[2], src2[2] * map_alpha);
702 if (src2[3] != 0.0f) {
705 const float t = src2[3];
706 const float mt = 1.0f -
t;
707 const float map_alpha = src1[3] / src2[3];
709 dst[0] = mt * src1[0] +
t *
min_ff(src1[0], src2[0] * map_alpha);
710 dst[1] = mt * src1[1] +
t *
min_ff(src1[1], src2[1] * map_alpha);
711 dst[2] = mt * src1[2] +
t *
min_ff(src1[2], src2[2] * map_alpha);
722 if (src2[3] != 0.0f && src1[3] > 0.0f) {
731 map_alpha =
alpha / src1[3];
733 dst[0] = src1[0] * map_alpha;
734 dst[1] = src1[1] * map_alpha;
735 dst[2] = src1[2] * map_alpha;
746 if (src2[3] != 0.0f && src1[3] < 1.0f) {
755 map_alpha = (src1[3] > 0.0f) ?
alpha / src1[3] : 1.0f;
757 dst[0] = src1[0] * map_alpha;
758 dst[1] = src1[1] * map_alpha;
759 dst[2] = src1[2] * map_alpha;
770 const float fac = src2[3];
772 const float mfac = 1.0f - fac;
778 if (src1[i] > 0.5f) {
779 temp = 1.0f - (1.0f - 2.0f * (src1[i] - 0.5f)) * (1.0f - src2[i]);
782 temp = 2.0f * src1[i] * src2[i];
784 dst[i] =
min_ff(temp * fac + src1[i] * mfac, 1.0f);
795 const float fac = src2[3];
797 const float mfac = 1.0f - fac;
803 if (src2[i] > 0.5f) {
804 temp = 1.0f - ((1.0f - 2.0f * (src2[i] - 0.5f)) * (1.0f - src1[i]));
807 temp = 2.0f * src2[i] * src1[i];
809 dst[i] =
min_ff((temp * fac + src1[i] * mfac) / 1.0f, 1.0f);
820 const float fac = src2[3];
822 const float mfac = 1.0f - fac;
826 const float temp = (src2[i] == 0.0f) ? 0.0f :
827 max_ff(1.0f - ((1.0f - src1[i]) / src2[i]), 0.0f);
828 dst[i] = (temp * fac + src1[i] * mfac);
839 const float fac = src2[3];
841 const float mfac = 1.0f - fac;
845 const float temp =
max_ff(src1[i] + src2[i] - 1.0f, 0.0f);
846 dst[i] = (temp * fac + src1[i] * mfac);
857 const float fac = src2[3];
859 const float mfac = 1.0f - fac;
863 const float temp = (src2[i] >= 1.0f) ? 1.0f :
min_ff(src1[i] / (1.0f - src2[i]), 1.0f);
864 dst[i] = (temp * fac + src1[i] * mfac);
875 const float fac = src2[3];
877 const float mfac = 1.0f - fac;
881 const float temp =
max_ff(1.0f - ((1.0f - src1[i]) * (1.0f - src2[i])), 0.0f);
882 dst[i] = (temp * fac + src1[i] * mfac);
893 const float fac = src2[3];
895 const float mfac = 1.0f - fac;
901 if (src1[i] < 0.5f) {
902 temp = (src2[i] + 0.5f) * src1[i];
905 temp = 1.0f - ((1.0f - (src2[i] + 0.5f)) * (1.0f - src1[i]));
907 dst[i] = (temp * fac + src1[i] * mfac);
918 const float fac = src2[3];
920 const float mfac = 1.0f - fac;
926 if (src2[i] > 0.5f) {
927 temp =
max_ff(2.0f * (src2[i] - 0.5f), src1[i]);
930 temp =
min_ff(2.0f * src2[i], src1[i]);
932 dst[i] = (temp * fac + src1[i] * mfac);
943 const float fac = src2[3];
945 const float mfac = 1.0f - fac;
951 if (src2[i] > 0.5f) {
952 temp =
min_ff(src1[i] + 2.0f * (src2[i] - 0.5f), 1.0f);
955 temp =
max_ff(src1[i] + 2.0f * src2[i] - 1.0f, 0.0f);
957 dst[i] = (temp * fac + src1[i] * mfac);
968 const float fac = src2[3];
970 const float mfac = 1.0f - fac;
976 if (src2[i] == 1.0f) {
977 temp = (src1[i] == 0.0f) ? 0.5f : 1.0f;
979 else if (src2[i] == 0.0f) {
980 temp = (src1[i] == 1.0f) ? 0.5f : 0.0f;
982 else if (src2[i] > 0.5f) {
983 temp =
min_ff(((src1[i]) * 1.0f) / (2.0f * (1.0f - src2[i])), 1.0f);
986 temp =
max_ff(1.0f - ((1.0f - src1[i]) * 1.0f / (2.0f * src2[i])), 0.0f);
988 dst[i] = (temp * fac + src1[i] * mfac);
999 const float fac = src2[3];
1001 const float mfac = 1.0f - fac;
1005 dst[i] = (
fabsf(src1[i] - src2[i]) * fac + src1[i] * mfac);
1016 const float fac = src2[3];
1018 const float mfac = 1.0f - fac;
1022 const float temp = 0.5f - ((2 * (src1[i] - 0.5f) * (src2[i] - 0.5f)));
1023 dst[i] = (temp * fac + src1[i] * mfac);
1034 const float fac = src2[3];
1036 const float mfac = 1.0f - fac;
1049 dst[0] = (
r * fac + src1[0] * mfac);
1050 dst[1] = (g * fac + src1[1] * mfac);
1051 dst[2] = (b * fac + src1[2] * mfac);
1061 const float fac = src2[3];
1063 const float mfac = 1.0f - fac;
1075 dst[0] = (
r * fac + src1[0] * mfac);
1076 dst[1] = (g * fac + src1[1] * mfac);
1077 dst[2] = (b * fac + src1[2] * mfac);
1087 const float fac = src2[3];
1089 const float mfac = 1.0f - fac;
1102 dst[0] = (
r * fac + src1[0] * mfac);
1103 dst[1] = (g * fac + src1[1] * mfac);
1104 dst[2] = (b * fac + src1[2] * mfac);
1114 const float fac = src2[3];
1116 const float mfac = 1.0f - fac;
1127 dst[0] = (
r * fac + src1[0] * mfac);
1128 dst[1] = (g * fac + src1[1] * mfac);
1129 dst[2] = (b * fac + src1[2] * mfac);
1138 const float src1[4],
1139 const float src2[4],
1143 const float mt = 1.0f -
t;
1145 dst[0] = mt * src1[0] +
t * src2[0];
1146 dst[1] = mt * src1[1] +
t * src2[1];
1147 dst[2] = mt * src1[2] +
t * src2[2];
1148 dst[3] = mt * src1[3] +
t * src2[3];
1151 # undef EPS_SATURATION
MINLINE float max_ff(float a, float b)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE int divide_round_i(int a, int b)
void rgb_to_hsv(float r, float g, float b, float *r_h, float *r_s, float *r_v)
void hsv_to_rgb(float h, float s, float v, float *r_r, float *r_g, float *r_b)
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void copy_v4_v4_uchar(unsigned char r[4], const unsigned char a[4])
_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 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 t
_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
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static CCL_NAMESPACE_BEGIN const double alpha
MINLINE void blend_color_add_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_mul_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_exclusion_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_overlay_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_burn_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_sub_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_color_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_linearlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_saturation_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_darken_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_hue_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_dodge_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_difference_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_dodge_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_pinlight_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_pinlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_mul_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_overlay_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_erase_alpha_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_screen_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_add_alpha_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_exclusion_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_hardlight_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_color_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_hue_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_erase_alpha_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_saturation_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_linearburn_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_vividlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_mix_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_mix_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_luminosity_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_sub_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_burn_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_darken_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_interpolate_byte(uchar dst[4], const uchar src1[4], const uchar src2[4], float ft)
MINLINE void blend_color_vividlight_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_add_alpha_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_add_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_hardlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_lighten_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_linearburn_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_softlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_luminosity_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_difference_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_linearlight_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_lighten_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_screen_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_softlight_byte(uchar dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_interpolate_float(float dst[4], const float src1[4], const float src2[4], float t)
__forceinline const avxi abs(const avxi &a)