42 const unsigned char src1[4],
43 const unsigned char src2[4],
222 if (*buf_p ==
NULL) {
225 const int size_dst[2] = {
230 uint *dst = src + crop->
ymin * size_src[0] + crop->
xmin;
231 for (
int y = 0;
y < size_dst[1];
y++, src += size_dst[0], dst += size_src[0]) {
232 memmove(src, dst,
sizeof(
uint) * size_dst[0]);
239 if (*buf_p ==
NULL) {
242 const int size_dst[2] = {
246 uint(*src)[4] = *buf_p;
247 uint(*dst)[4] = src + crop->
ymin * size_src[0] + crop->
xmin;
248 for (
int y = 0;
y < size_dst[1];
y++, src += size_dst[0], dst += size_src[0]) {
249 memmove(src, dst,
sizeof(
uint[4]) * size_dst[0]);
251 *buf_p = (
void *)
MEM_reallocN(*buf_p,
sizeof(
uint[4]) * size_dst[0] * size_dst[1]);
259 const int size_src[2] = {
263 const int size_dst[2] = {
267 BLI_assert(size_dst[0] > 0 && size_dst[1] > 0);
271 if ((size_dst[0] == ibuf->
x) && (size_dst[1] == ibuf->
y)) {
280 ibuf->
x = size_dst[0];
281 ibuf->
y = size_dst[1];
289 if (*buf_p ==
NULL) {
298 if (*buf_p ==
NULL) {
311 if ((
size[0] == ibuf->
x) && (
size[1] == ibuf->
y)) {
364 tmp = dbuf->
x - *destx;
368 tmp = dbuf->
y - *desty;
374 tmp = sbuf->
x - *srcx;
378 tmp = sbuf->
y - *srcy;
446 tmp = dbuf->
x - *destx;
450 tmp = dbuf->
y - *desty;
456 tmp = obuf->
x - *origx;
460 tmp = obuf->
y - *origy;
467 tmp = sbuf->
x - *srcx;
471 tmp = sbuf->
y - *srcy;
514 const unsigned char *src1,
515 const unsigned char *src2);
521 unsigned short *dmask,
522 const unsigned short *curvemask,
523 const unsigned short *texmask,
536 unsigned int *drect =
NULL, *orect =
NULL, *srect =
NULL, *dr, * or, *sr;
537 float *drectf =
NULL, *orectf =
NULL, *srectf =
NULL, *drf, *orf, *srf;
538 const unsigned short *cmaskrect = curvemask, *cmr;
539 unsigned short *dmaskrect = dmask, *dmr;
540 const unsigned short *texmaskrect = texmask, *tmr;
541 int do_float, do_char, srcskip, destskip, origskip,
x;
549 imb_rectclip3(dbuf, obuf, sbuf, &destx, &desty, &origx, &origy, &srcx, &srcy, &
width, &
height);
561 do_char = (sbuf && sbuf->
rect && dbuf->
rect && obuf->
rect);
565 drect = dbuf->
rect + ((size_t)desty) * dbuf->
x + destx;
566 orect = obuf->
rect + ((size_t)origy) * obuf->
x + origx;
569 drectf = dbuf->
rect_float + (((size_t)desty) * dbuf->
x + destx) * 4;
570 orectf = obuf->
rect_float + (((size_t)origy) * obuf->
x + origx) * 4;
574 dmaskrect += ((size_t)origy) * obuf->
x + origx;
582 srect = sbuf->
rect + ((size_t)srcy) * sbuf->
x + srcx;
585 srectf = sbuf->
rect_float + (((size_t)srcy) * sbuf->
x + srcx) * 4;
590 cmaskrect += ((size_t)srcy) * sbuf->
x + srcx;
594 texmaskrect += ((size_t)srcy) * sbuf->
x + srcx;
607 memcpy(drect, srect,
width *
sizeof(
int));
613 memcpy(drectf, srectf,
sizeof(
float[4]) *
width);
614 drectf += destskip * 4;
615 srectf += srcskip * 4;
625 for (
x =
width;
x > 0;
x--, dr++, sr++) {
626 ((
char *)dr)[0] = ((
char *)sr)[0];
627 ((
char *)dr)[1] = ((
char *)sr)[1];
628 ((
char *)dr)[2] = ((
char *)sr)[2];
637 for (
x =
width;
x > 0;
x--, drf += 4, srf += 4) {
638 float map_alpha = (srf[3] == 0.0f) ? drf[3] : drf[3] / srf[3];
640 drf[0] = srf[0] * map_alpha;
641 drf[1] = srf[1] * map_alpha;
642 drf[2] = srf[2] * map_alpha;
644 drectf += destskip * 4;
645 srectf += srcskip * 4;
655 for (
x =
width;
x > 0;
x--, dr++, sr++) {
656 ((
char *)dr)[3] = ((
char *)sr)[3];
665 for (
x =
width;
x > 0;
x--, drf += 4, srf += 4) {
668 drectf += destskip * 4;
669 srectf += srcskip * 4;
791 for (
x =
width;
x > 0;
x--, dr++, or ++, sr++, dmr++, cmr++) {
792 unsigned char *src = (
unsigned char *)sr;
793 float mask_lim = mask_max * (*cmr);
796 mask_lim *= ((*tmr++) / 65535.0f);
799 if (src[3] && mask_lim) {
803 mask = *dmr + mask_lim;
806 mask = *dmr + mask_lim - (*dmr * (*cmr / 65535.0f));
812 unsigned char mask_src[4];
816 mask_src[0] = src[0];
817 mask_src[1] = src[1];
818 mask_src[2] = src[2];
821 mask_src[3] = src[3];
823 (
unsigned char *)dr, (
unsigned char *) or, mask_src,
mask / 65535.0f);
827 func((
unsigned char *)dr, (
unsigned char *) or, mask_src);
832 dmaskrect += origskip;
836 for (
x =
width;
x > 0;
x--, dr++, or ++, sr++, cmr++) {
837 unsigned char *src = (
unsigned char *)sr;
838 float mask = (
float)mask_max * ((
float)(*cmr));
846 if (src[3] && (
mask > 0.0f)) {
847 unsigned char mask_src[4];
849 mask_src[0] = src[0];
850 mask_src[1] = src[1];
851 mask_src[2] = src[2];
854 mask_src[3] = src[3];
856 (
unsigned char *)dr, (
unsigned char *) or, mask_src,
mask / 65535.0f);
860 func((
unsigned char *)dr, (
unsigned char *) or, mask_src);
866 cmaskrect += srcskip;
868 texmaskrect += srcskip;
873 for (
x =
width;
x > 0;
x--, dr++, or ++, sr++) {
874 if (((
unsigned char *)sr)[3]) {
875 func((
unsigned char *)dr, (
unsigned char *) or, (
unsigned char *)sr);
898 for (
x =
width;
x > 0;
x--, drf += 4, orf += 4, srf += 4, dmr++, cmr++) {
899 float mask_lim = mask_max * (*cmr);
902 mask_lim *= ((*tmr++) / 65535.0f);
905 if (srf[3] && mask_lim) {
912 mask = *dmr + mask_lim - (*dmr * (*cmr / 65535.0f));
926 func_float(drf, orf, mask_srf);
931 dmaskrect += origskip;
935 for (
x =
width;
x > 0;
x--, drf += 4, orf += 4, srf += 4, cmr++) {
936 float mask = (
float)mask_max * ((
float)(*cmr));
944 if (srf[3] && (
mask > 0.0f)) {
951 func_float(drf, orf, mask_srf);
957 cmaskrect += srcskip;
959 texmaskrect += srcskip;
964 for (
x =
width;
x > 0;
x--, drf += 4, orf += 4, srf += 4) {
966 func_float(drf, orf, srf);
971 drectf += destskip * 4;
972 orectf += origskip * 4;
973 srectf += srcskip * 4;
1002 data->desty + start_scanline,
1004 data->origy + start_scanline,
1006 data->srcy + start_scanline,
1016 unsigned short *dmask,
1017 const unsigned short *curvemask,
1018 const unsigned short *texmask,
1056 data.curvemask = curvemask;
1057 data.texmask = texmask;
1058 data.mask_max = mask_max;
1067 data.accumulate = accumulate;
1082 unsigned int *rrect = drect->
rect;
1085 ccol[0] = (int)(
col[0] * 255);
1086 ccol[1] = (int)(
col[1] * 255);
1087 ccol[2] = (int)(
col[2] * 255);
1088 ccol[3] = (int)(
col[3] * 255);
1090 num = drect->
x * drect->
y;
1091 for (; num > 0; num--) {
1092 *rrect++ = *((
unsigned int *)ccol);
1099 num = drect->
x * drect->
y;
1100 for (; num > 0; num--) {
1119 const ImBuf *ibuf,
const float col[4],
int x1,
int y1,
int x2,
int y2)
1141 if (x1 ==
x2 ||
y1 == y2) {
1145 unsigned char col_char[4] = {
col[0] * 255,
col[1] * 255,
col[2] * 255,
col[3] * 255};
1147 for (
int y =
y1;
y < y2;
y++) {
1148 for (
int x = x1;
x <
x2;
x++) {
1149 size_t offset = ((size_t)ibuf->
x) *
y * 4 + 4 *
x;
1152 unsigned char *rrect = (
unsigned char *)ibuf->
rect + offset;
1153 memcpy(rrect, &col_char,
sizeof(
unsigned char) * 4);
1158 memcpy(rrectf, &
col,
sizeof(
float) * 4);
1179 if ((!rect && !rectf) || (!
col) ||
col[3] == 0.0f) {
1195 if (x1 ==
x2 ||
y1 == y2) {
1204 unsigned char *pixel;
1205 unsigned char chr = 0, chg = 0, chb = 0;
1206 float fr = 0, fg = 0,
fb = 0;
1220 for (j = 0; j < y2 -
y1; j++) {
1221 for (i = 0; i <
x2 - x1; i++) {
1222 pixel = rect + 4 * (((
y1 + j) *
width) + (x1 + i));
1223 if (pixel >= rect && pixel < rect + (4 * (
width *
height))) {
1232 pixel[0] = (char)((fr + ((
float)pixel[0] * aich)) * 255.0f);
1233 pixel[1] = (char)((fg + ((
float)pixel[1] * aich)) * 255.0f);
1234 pixel[2] = (char)((
fb + ((
float)pixel[2] * aich)) * 255.0f);
1235 pixel[3] = (char)((alphatest = ((
int)pixel[3] + alphaint)) < 255 ? alphatest : 255);
1254 for (j = 0; j < y2 -
y1; j++) {
1255 for (i = 0; i <
x2 - x1; i++) {
1256 pixel = rectf + 4 * (((
y1 + j) *
width) + (x1 + i));
1258 pixel[0] = col_conv[0];
1259 pixel[1] = col_conv[1];
1260 pixel[2] = col_conv[2];
1265 pixel[0] = (col_conv[0] *
a) + (pixel[0] * ai);
1266 pixel[1] = (col_conv[1] *
a) + (pixel[1] * ai);
1267 pixel[2] = (col_conv[2] *
a) + (pixel[2] * ai);
1268 pixel[3] = (alphatest = (pixel[3] +
a)) < 1.0f ? alphatest : 1.0f;
1319 for (i = ibuf->
x * ibuf->
y; i > 0; i--, fbuf += 4) {
1325 const unsigned char cvalue = value * 255;
1326 unsigned char *cbuf = ((
unsigned char *)ibuf->
rect) + 3;
1327 for (i = ibuf->
x * ibuf->
y; i > 0; i--, cbuf += 4) {
typedef float(TangentPoint)[2]
MINLINE float min_ff(float a, float b)
MINLINE int divide_round_i(int a, int b)
MINLINE void srgb_to_linearrgb_v4(float linear[4], const float srgb[4])
MINLINE void blend_color_add_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_exclusion_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_linearburn_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_overlay_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_saturation_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_interpolate_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4], float t)
MINLINE void blend_color_burn_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_erase_alpha_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char 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_sub_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4])
MINLINE void blend_color_saturation_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_hue_float(float dst[4], const float src1[4], const float 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_luminosity_byte(unsigned char 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_pinlight_byte(unsigned char 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_screen_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_add_alpha_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_vividlight_byte(unsigned char 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_mul_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4])
MINLINE void blend_color_vividlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_darken_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char 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_difference_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_burn_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_add_alpha_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4])
MINLINE void blend_color_color_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_overlay_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_dodge_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_hardlight_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_sub_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_darken_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_softlight_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_add_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4])
MINLINE void blend_color_hue_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_lighten_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4])
MINLINE void blend_color_exclusion_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_mix_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4])
MINLINE void blend_color_hardlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_linearlight_byte(unsigned char dst[4], const uchar src1[4], const uchar src2[4])
MINLINE void blend_color_lighten_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_softlight_float(float dst[4], const float src1[4], const float src2[4])
MINLINE void blend_color_interpolate_float(float dst[4], const float src1[4], const float src2[4], float t)
MINLINE void mul_v4_v4fl(float r[3], const float a[4], float f)
MINLINE void copy_v4_v4(float r[4], const float a[4])
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
_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 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 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
void IMB_colormanagement_display_to_scene_linear_v3(float pixel[3], struct ColorManagedDisplay *display)
void IMB_processor_apply_threaded_scanlines(int total_scanlines, ScanlineThreadFunc do_thread, void *custom_data)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
#define MEM_reallocN(vmemh, len)
Group RGB to Bright Vector Camera CLAMP
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
BLI_INLINE float fb(float length, float L)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
MINLINE unsigned char unit_float_to_uchar_clamp(float val)
static void rect_realloc_16bytes(void **buf_p, const uint size[2])
void IMB_rectfill_alpha(ImBuf *ibuf, const float value)
static void rect_crop_4bytes(void **buf_p, const int size_src[2], const rcti *crop)
static void rectblend_thread_do(void *data_v, int start_scanline, int num_scanlines)
void IMB_rectblend_threaded(ImBuf *dbuf, const ImBuf *obuf, const ImBuf *sbuf, unsigned short *dmask, const unsigned short *curvemask, const unsigned short *texmask, float mask_max, int destx, int desty, int origx, int origy, int srcx, int srcy, int width, int height, IMB_BlendMode mode, bool accumulate)
static void rect_crop_16bytes(void **buf_p, const int size_src[2], const rcti *crop)
void IMB_rectfill_area_replace(const ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2)
void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], struct ColorManagedDisplay *display, int x1, int y1, int x2, int y2)
void IMB_blend_color_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4], IMB_BlendMode mode)
struct RectBlendThreadData RectBlendThreadData
void IMB_rect_crop(ImBuf *ibuf, const rcti *crop)
void IMB_rectclip(ImBuf *dbuf, const ImBuf *sbuf, int *destx, int *desty, int *srcx, int *srcy, int *width, int *height)
static void imb_rectclip3(ImBuf *dbuf, const ImBuf *obuf, const ImBuf *sbuf, int *destx, int *desty, int *origx, int *origy, int *srcx, int *srcy, int *width, int *height)
void IMB_rectblend(ImBuf *dbuf, const ImBuf *obuf, const ImBuf *sbuf, unsigned short *dmask, const unsigned short *curvemask, const unsigned short *texmask, float mask_max, int destx, int desty, int origx, int origy, int srcx, int srcy, int width, int height, IMB_BlendMode mode, bool accumulate)
void(* IMB_blend_func_float)(float *dst, const float *src1, const float *src2)
void IMB_blend_color_float(float dst[4], const float src1[4], const float src2[4], IMB_BlendMode mode)
void IMB_rectfill(ImBuf *drect, const float col[4])
void(* IMB_blend_func)(unsigned char *dst, const unsigned char *src1, const unsigned char *src2)
void IMB_rect_size_set(ImBuf *ibuf, const uint size[2])
static void rect_realloc_4bytes(void **buf_p, const uint size[2])
void IMB_rectcpy(ImBuf *dbuf, const ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height)
void IMB_rectfill_area(ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, struct ColorManagedDisplay *display)
const unsigned short * texmask
const unsigned short * curvemask
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)