31 #define PASS_VECTOR_MAX 10000.0f
42 const float *zbufrect);
54 this->m_settings =
nullptr;
55 this->m_cachedInstance =
nullptr;
56 this->m_inputImageProgram =
nullptr;
57 this->m_inputSpeedProgram =
nullptr;
58 this->m_inputZProgram =
nullptr;
67 this->m_cachedInstance =
nullptr;
81 this->m_inputImageProgram =
nullptr;
82 this->m_inputSpeedProgram =
nullptr;
83 this->m_inputZProgram =
nullptr;
84 if (this->m_cachedInstance) {
86 this->m_cachedInstance =
nullptr;
91 if (this->m_cachedInstance) {
92 return this->m_cachedInstance;
96 if (this->m_cachedInstance ==
nullptr) {
102 this->m_cachedInstance =
data;
105 return this->m_cachedInstance;
112 if (this->m_cachedInstance ==
nullptr) {
134 blurdata.
fac = this->m_settings->
fac;
167 memset(zspan, 0,
sizeof(
ZSpan));
169 zspan->
rectx = rectx;
170 zspan->
recty = recty;
201 const float *minv, *maxv;
216 my2 =
floor(maxv[1]);
218 if (my2 < 0 || my0 >= zspan->
recty) {
223 if (my2 >= zspan->
recty) {
224 my2 = zspan->
recty - 1;
236 xx1 = maxv[1] - minv[1];
237 if (xx1 > FLT_EPSILON) {
238 dx0 = (minv[0] - maxv[0]) / xx1;
239 xs0 = dx0 * (minv[1] - my2) + minv[0];
243 xs0 =
min_ff(minv[0], maxv[0]);
247 if (zspan->
maxp1 ==
nullptr) {
251 if (maxv == zspan->
minp1 || minv == zspan->
maxp1) {
259 if (span == zspan->
span1) {
261 if (zspan->
minp1 ==
nullptr || zspan->
minp1[1] > minv[1]) {
264 if (zspan->
maxp1 ==
nullptr || zspan->
maxp1[1] < maxv[1]) {
267 if (my0 < zspan->miny1) {
270 if (my2 > zspan->
maxy1) {
276 if (zspan->
minp2 ==
nullptr || zspan->
minp2[1] > minv[1]) {
279 if (zspan->
maxp2 ==
nullptr || zspan->
maxp2[1] < maxv[1]) {
282 if (my0 < zspan->miny2) {
285 if (my2 > zspan->
maxy2) {
290 for (
y = my2;
y >= my0;
y--, xs0 += dx0) {
307 double zxd, zyd, zy0, zverg;
309 float x1,
y1, z1,
x2, y2, z2, xx1;
310 const float *span1, *span2;
311 float *rectzofs, *rz;
313 int sn1, sn2, rectx, my0, my2;
325 if (zspan->
minp2 ==
nullptr || zspan->
maxp2 ==
nullptr) {
344 x0 =
y1 * z2 - z1 * y2;
345 y0 = z1 *
x2 - x1 * z2;
346 z0 = x1 * y2 -
y1 *
x2;
352 xx1 = (x0 *
v1[0] + y0 *
v1[1]) / z0 +
v1[2];
354 zxd = -(
double)x0 / (
double)z0;
355 zyd = -(
double)y0 / (
double)z0;
359 rectx = zspan->
rectx;
360 rectzofs = (
float *)(zspan->
rectz + rectx * my2);
364 sn1 = (my0 + my2) / 2;
366 span1 = zspan->
span1 + my2;
367 span2 = zspan->
span2 + my2;
370 span1 = zspan->
span2 + my2;
371 span2 = zspan->
span1 + my2;
374 for (
y = my2;
y >= my0;
y--, span1--, span2--) {
388 zverg = (
double)sn1 * zxd + zy0;
394 if (zverg < (
double)*rz) {
416 char *row1, *row2, *row3;
421 for (
y = 2;
y < ysize;
y++) {
423 row1 = rectmove + (
y - 2) * xsize;
426 for (
x = 2;
x < xsize;
x++, row1++, row2++, row3++) {
428 if (row2[0] == 0 || row2[2] == 0 || row1[1] == 0 || row3[1] == 0) {
437 for (
y = 0;
y < ysize;
y++) {
439 for (
x = 1;
x < xsize;
x++, row1++) {
440 if (row1[0] == 128 && row1[1] == 128) {
444 while (
x + step < xsize && row1[step] == 128) {
448 if (
x + step != xsize) {
453 for (
a = 0;
a < step;
a++) {
456 fac = ((
a + 1) << 8) / (step + 1);
459 row1[
a] = (prev * mfac +
next * fac) >> 8;
468 for (
x = 0;
x < xsize;
x++) {
469 row1 = rectmove +
x + xsize;
471 for (
y = 1;
y < ysize;
y++, row1 += xsize) {
472 if (row1[0] == 128 && row1[xsize] == 128) {
476 while (
y + step < ysize && row1[step * xsize] == 128) {
480 if (
y + step != ysize) {
482 next = row1[step * xsize];
484 for (
a = 0;
a < step;
a++) {
487 fac = ((
a + 1) << 8) / (step + 1);
490 row1[
a * xsize] = (prev * mfac +
next * fac) >> 8;
498 for (
y = 2;
y < ysize;
y++) {
500 row1 = rectmove + (
y - 2) * xsize;
503 for (
x = 2;
x < xsize;
x++, row1++, row2++, row3++) {
505 if (row2[0] > 1 || row2[2] > 1 || row1[1] > 1 || row3[1] > 1) {
519 float p1[2], p2[2], p3[2];
528 p2[0] = -0.5f * p1[0] - 0.5f * p3[0];
529 p2[1] = -0.5f * p1[1] - 0.5f * p3[1];
531 result[0] = ipodata[0] * p1[0] + ipodata[1] * p2[0] + ipodata[2] * p3[0];
532 result[1] = ipodata[0] * p1[1] + ipodata[1] * p2[1] + ipodata[2] * p3[1];
537 float mfac = (1.0f - fac);
539 data[0] = mfac * mfac;
540 data[1] = 2.0f * mfac * fac;
548 const float *imgrect,
550 const float *zbufrect)
554 static float jit[256][2];
555 float v1[3],
v2[3], v3[3], v4[3], fx, fy;
556 const float *dimg, *dz, *ro;
557 float *rectvz, *dvz, *dvec1, *dvec2, *dz1, *dz2, *rectz;
558 float *minvecbufrect =
nullptr, *rectweight, *rw, *rectmax, *rm;
562 static int firsttime = 1;
572 rectz = (
float *)
MEM_callocN(
sizeof(
float) * xsize * ysize,
"zbuf accum");
573 zspan.
rectz = (
int *)rectz;
575 rectmove = (
char *)
MEM_callocN(xsize * ysize,
"rectmove");
579 rectweight = (
float *)
MEM_callocN(
sizeof(
float) * xsize * ysize,
"rect weight");
580 rectmax = (
float *)
MEM_callocN(
sizeof(
float) * xsize * ysize,
"rect max");
584 for (
x = 4 * xsize * ysize;
x > 0;
x--, dvec1++) {
591 printf(
"Found uninitialized speed in vector buffer... fixed.\n");
597 float minspeedsq = minspeed * minspeed;
599 minvecbufrect = (
float *)
MEM_callocN(
sizeof(
float[4]) * xsize * ysize,
"minspeed buf");
602 dvec2 = minvecbufrect;
603 for (
x = 2 * xsize * ysize;
x > 0;
x--, dvec1 += 2, dvec2 += 2) {
604 if (dvec1[0] == 0.0f && dvec1[1] == 0.0f) {
609 float speedsq = dvec1[0] * dvec1[0] + dvec1[1] * dvec1[1];
610 if (speedsq <= minspeedsq) {
615 speedsq = 1.0f - minspeed /
sqrtf(speedsq);
616 dvec2[0] = speedsq * dvec1[0];
617 dvec2[1] = speedsq * dvec1[1];
621 SWAP(
float *, minvecbufrect, vecbufrect);
625 rectvz = (
float *)
MEM_callocN(
sizeof(
float[4]) * (xsize + 1) * (ysize + 1),
"vertices");
627 for (
y = 0;
y <= ysize;
y++) {
630 dvec1 = vecbufrect + 4 *
y * xsize;
633 dvec1 = vecbufrect + 4 * (
y - 1) * xsize;
637 dvec2 = vecbufrect + 4 * (
y - 1) * xsize;
640 dvec2 = vecbufrect + 4 *
y * xsize;
643 for (
x = 0;
x <= xsize;
x++) {
646 for (step = 0; step < 2; step++, dvec1 += 2, dvec2 += 2, dvz += 2) {
651 if (dvec1[-4] != 0.0f || dvec1[-3] != 0.0f) {
656 if (dvec2[-4] != 0.0f || dvec2[-3] != 0.0f) {
670 if (dvec1[0] != 0.0f || dvec1[1] != 0.0f) {
681 if (dvec2[0] != 0.0f || dvec2[1] != 0.0f) {
693 float speedsq = dvz[0] * dvz[0] + dvz[1] * dvz[1];
694 if (speedsq > maxspeedsq) {
706 dz2 = rectvz + 4 * (ysize) * (xsize + 1);
707 for (
x = 0;
x <= xsize;
x++, dz1 += 4, dz2 += 4) {
714 dz2 = rectvz + 4 * (xsize);
715 for (
y = 0;
y <= ysize;
y++, dz1 += 4 * (xsize + 1), dz2 += 4 * (xsize + 1)) {
725 for (
x = xsize * ysize;
x > 0;
x--, dm++, dvec1 += 4) {
726 if ((dvec1[0] != 0.0f || dvec1[1] != 0.0f || dvec1[2] != 0.0f || dvec1[3] != 0.0f)) {
740 memset(newrect, 0,
sizeof(
float) * xsize * ysize * 4);
744 for (step = 1; step <= samples; step++) {
745 float speedfac = 0.5f * nbd->
fac * (
float)step / (
float)(samples + 1);
748 for (side = 0; side < 2; side++) {
749 float blendfac, ipodata[4];
753 for (
x = xsize * ysize - 1;
x >= 0;
x--) {
758 for (
x = xsize * ysize - 1;
x >= 0;
x--) {
759 if (rectmove[
x] == 0) {
760 rectz[
x] = zbufrect[
x];
769 for (
x = xsize * ysize - 1;
x >= 0;
x--) {
777 dz2 = rectvz + 4 * (xsize + 1);
784 speedfac = -speedfac;
789 for (fy = -0.5f +
jit[step & 255][0],
y = 0;
y < ysize;
y++, fy += 1.0f) {
790 for (fx = -0.5f +
jit[step & 255][1],
x = 0;
x < xsize;
791 x++, fx += 1.0f, dimg += 4, dz1 += 4, dz2 += 4, dm++, dz++) {
793 float jfx = fx + 0.5f;
794 float jfy = fy + 0.5f;
821 ARRAY_SET_ITEMS(
v2, speedfac * dz1[4] + jfx + 1.0f, speedfac * dz1[5] + jfy, *dz);
823 v3, speedfac * dz2[4] + jfx + 1.0f, speedfac * dz2[5] + jfy + 1.0f, *dz);
824 ARRAY_SET_ITEMS(v4, speedfac * dz2[0] + jfx, speedfac * dz2[1] + jfy + 1.0f, *dz);
851 blendfac = ((samples - step) / (
float)samples);
853 blendfac = 3.0f *
pow(blendfac, 2.0f) - 2.0f *
pow(blendfac, 3.0f);
858 for (dr = rectdraw, dz2 = newrect,
x = xsize * ysize - 1;
x >= 0;
859 x--, dr++, dz2 += 4, rw++, rm++) {
861 float bfac = dr->alpha * blendfac;
863 dz2[0] += bfac * dr->colpoin[0];
864 dz2[1] += bfac * dr->colpoin[1];
865 dz2[2] += bfac * dr->colpoin[2];
866 dz2[3] += bfac * dr->colpoin[3];
869 *rm =
MAX2(*rm, bfac);
880 for (dz2 = newrect,
x = xsize * ysize - 1;
x >= 0;
x--, dz2 += 4, ro += 4, rw++, rm++, dm++) {
882 float fac = (*rw == 0.0f) ? 0.0f : mfac / (*rw);
883 float nfac = 1.0f - mfac;
885 dz2[0] = fac * dz2[0] + nfac * ro[0];
886 dz2[1] = fac * dz2[1] + nfac * ro[1];
887 dz2[2] = fac * dz2[2] + nfac * ro[2];
888 dz2[3] = fac * dz2[3] + nfac * ro[3];
typedef float(TangentPoint)[2]
void BLI_jitter_init(float(*jitarr)[2], int num)
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 void copy_v4_v4(float r[4], const float a[4])
#define ARRAY_SET_ITEMS(...)
typedef double(DMatrix)[4][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 z
_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 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 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
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMVert * v2
a MemoryBuffer contains access to the data of a chunk
float * getBuffer()
get the data of this MemoryBuffer
virtual void * initializeTileData(rcti *)
unsigned int getHeight() const
void addInputSocket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
void addOutputSocket(DataType datatype)
unsigned int getWidth() const
SocketReader * getInputSocketReader(unsigned int inputSocketindex)
virtual bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
void initExecution(QualityHelper helper)
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output) override
void initExecution() override
void generateVectorBlur(float *data, MemoryBuffer *inputImage, MemoryBuffer *inputSpeed, MemoryBuffer *inputZ)
void * initializeTileData(rcti *rect) override
void deinitExecution() override
void executePixel(float output[4], int x, int y, void *data) override
__kernel void ccl_constant KernelData ccl_global void ccl_global char ccl_global int ccl_global char ccl_global unsigned int ccl_global float * buffer
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
INLINE Rall1d< T, V, S > pow(const Rall1d< T, V, S > &arg, double m)
static void zbuf_add_to_span(ZSpan *zspan, const float v1[2], const float v2[2])
void zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float *newrect, const float *imgrect, float *vecbufrect, const float *zbufrect)
constexpr int COM_DATA_TYPE_COLOR_CHANNELS
static void zbuf_fill_in_rgba(ZSpan *zspan, DrawBufPixel *col, float *v1, float *v2, float *v3, float *v4)
static void quad_bezier_2d(float *result, const float *v1, const float *v2, const float *ipodata)
static void zbuf_init_span(ZSpan *zspan)
void zbuf_alloc_span(ZSpan *zspan, int rectx, int recty, float clipcrop)
void antialias_tagbuf(int xsize, int ysize, char *rectmove)
static void set_quad_bezier_ipo(float fac, float *data)
void zbuf_free_span(ZSpan *zspan)
ccl_device_inline float2 floor(const float2 &a)
ccl_device_inline float3 ceil(const float3 &a)