40 #define HEADER_SIZE 512
48 #define ILUM(r, g, b) ((int)(RINTLUM * (r) + GINTLUM * (g) + BINTLUM * (b)) >> 8)
55 #define CHANOFFSET(z) (3 - (z))
58 #define BPPMASK 0x00ff
60 #define ITYPE_RLE 0x0100
61 #define ISRLE(type) (((type)&0xff00) == ITYPE_RLE)
63 #define BPP(type) ((type)&BPPMASK)
64 #define RLE(bpp) (ITYPE_RLE | (bpp))
75 #define MFILE_DATA(inf) ((void)0, ((inf)->_file_data + (inf)->_file_offset))
76 #define MFILE_STEP(inf, step) \
78 (inf)->_file_offset += step; \
81 #define MFILE_SEEK(inf, pos) \
83 (inf)->_file_offset = pos; \
88 #define DIRTY_FLAG_EOF (1 << 0)
89 #define DIRTY_FLAG_ENCODING (1 << 1)
105 float *optr,
const float *optr_end,
const uchar *iptr,
const uchar *iptr_end,
int z);
132 return ((
uint)buf[0] << 24) + ((
uint)buf[1] << 16) + ((
uint)buf[2] << 8) + ((
uint)buf[3] << 0);
141 fwrite(buf, 2, 1, outf);
148 buf[0] = (val >> 24);
149 buf[1] = (val >> 16);
152 return fwrite(buf, 4, 1, outf);
170 fwrite(&
t,
sizeof(
IMAGE), 1, outf);
171 fseek(outf, 0, SEEK_SET);
181 return fwrite(
"no name", 8, 1, outf);
215 len = ibuf->
x * ibuf->
y;
225 #define GS(x) (((uchar *)(x))[0] << 8 | ((uchar *)(x))[1])
228 #define GSS(x) (((uchar *)(x))[1] << 8 | ((uchar *)(x))[0])
241 float *fbase, *fptr =
NULL;
245 MFileOffset _inf_data = {mem, 0}, *inf = &_inf_data;
247 int bpp, rle, cur, badorder;
249 uchar dirty_flag = 0;
266 fprintf(stderr,
"longimagedata: bad magic number in image file\n");
272 if (!
ELEM(bpp, 1, 2)) {
273 fprintf(stderr,
"longimagedata: image must have 1 or 2 byte per pix chan\n");
277 fprintf(stderr,
"longimagedata: channels over 8 not supported\n");
281 const int xsize =
image.xsize;
282 const int ysize =
image.ysize;
283 const int zsize =
image.zsize;
294 size_t tablen = (size_t)ysize * (
size_t)zsize *
sizeof(int);
300 #define MFILE_CAPACITY_AT_PTR_OK_OR_FAIL(p) \
301 if (UNLIKELY((p) > mem_end)) { \
302 dirty_flag |= DIRTY_FLAG_EOF; \
309 readtab(inf, starttab, tablen);
310 readtab(inf, lengthtab, tablen);
315 for (
size_t y = 0;
y < ysize;
y++) {
316 for (
size_t z = 0;
z < zsize;
z++) {
317 if (starttab[
y +
z * ysize] < cur) {
321 cur = starttab[
y +
z * ysize];
341 for (
size_t z = 0;
z < zsize;
z++) {
343 for (
size_t y = 0;
y < ysize;
y++) {
348 uint *lptr_next = lptr + xsize;
358 for (
size_t y = 0;
y < ysize;
y++) {
360 uint *lptr_next = lptr + xsize;
361 uint *zptr_next = zptr + xsize;
363 for (
size_t z = 0;
z < zsize;
z++) {
371 (
uchar *)lptr, (
uchar *)lptr_next, rledat, rledat_next, 3 -
z);
375 (
uchar *)zptr, (
uchar *)zptr_next, rledat, rledat_next, 7 -
z);
393 for (
size_t z = 0;
z < zsize;
z++) {
395 for (
size_t y = 0;
y < ysize;
y++) {
401 float *fptr_next = fptr + (xsize * 4);
402 dirty_flag |=
expandrow2(fptr, fptr_next, rledat, rledat_next, 3 -
z);
409 float *fptr_next = fptr + (xsize * 4);
411 for (
size_t y = 0;
y < ysize;
y++) {
413 for (
size_t z = 0;
z < zsize;
z++) {
419 dirty_flag |=
expandrow2(fptr, fptr_next, rledat, rledat_next, 3 -
z);
425 #undef MFILE_CAPACITY_AT_PTR_OK_OR_FAIL
436 #define MFILE_CAPACITY_AT_PTR_OK_OR_FAIL(p) \
437 if (UNLIKELY((p) > mem_end)) { \
438 dirty_flag |= DIRTY_FLAG_EOF; \
439 goto fail_uncompressed; \
447 goto fail_uncompressed;
459 for (
size_t z = 0;
z < zsize;
z++) {
468 for (
size_t y = 0;
y < ysize;
y++) {
469 const uchar *rledat_next = rledat + xsize;
470 const int z_ofs = 3 -
z;
473 rledat = rledat_next;
482 goto fail_uncompressed;
490 for (
size_t z = 0;
z < zsize;
z++) {
494 for (
size_t y = 0;
y < ysize;
y++) {
495 const uchar *rledat_next = rledat + xsize * 2;
496 const int z_ofs = 3 -
z;
499 rledat = rledat_next;
504 #undef MFILE_CAPACITY_AT_PTR_OK_OR_FAIL
514 if (
image.zsize == 1) {
516 for (
size_t x = (
size_t)ibuf->
x * (size_t)ibuf->
y;
x > 0;
x--) {
522 else if (
image.zsize == 2) {
525 for (
size_t x = (
size_t)ibuf->
x * (size_t)ibuf->
y;
x > 0;
x--) {
531 else if (
image.zsize == 3) {
534 for (
size_t x = (
size_t)ibuf->
x * (size_t)ibuf->
y;
x > 0;
x--) {
542 if (
image.zsize == 1) {
544 for (
size_t x = (
size_t)ibuf->
x * (size_t)ibuf->
y;
x > 0;
x--) {
546 fbase[1] = fbase[2] = fbase[3];
550 else if (
image.zsize == 2) {
553 for (
size_t x = (
size_t)ibuf->
x * (size_t)ibuf->
y;
x > 0;
x--) {
555 fbase[1] = fbase[2] = fbase[3];
559 else if (
image.zsize == 3) {
562 for (
size_t x = (
size_t)ibuf->
x * (size_t)ibuf->
y;
x > 0;
x--) {
574 fprintf(stderr,
"longimagedata: corrupt file content (%d)\n", dirty_flag);
602 *lptr = ((cptr[0] << 8) | (cptr[1] << 0)) / (
float)0xFFFF;
609 float *optr,
const float *optr_end,
const uchar *iptr,
const uchar *iptr_end,
int z)
614 #define EXPAND_CAPACITY_AT_INPUT_OK_OR_FAIL(iptr_next) \
615 if (UNLIKELY(iptr_next > iptr_end)) { \
620 #define EXPAND_CAPACITY_AT_OUTPUT_OK_OR_FAIL(optr_next) \
621 if (UNLIKELY(optr_next > optr_end)) { \
629 const uchar *iptr_next = iptr + 2;
631 pixel = (iptr[0] << 8) | (iptr[1] << 0);
634 if (!(
count = (pixel & 0x7f))) {
637 const float *optr_next = optr +
count;
640 iptr_next = iptr + (
count * 2);
643 optr[0 * 4] = ((iptr[0] << 8) | (iptr[1] << 0)) / (
float)0xFFFF;
644 optr[1 * 4] = ((iptr[2] << 8) | (iptr[3] << 0)) / (
float)0xFFFF;
645 optr[2 * 4] = ((iptr[4] << 8) | (iptr[5] << 0)) / (
float)0xFFFF;
646 optr[3 * 4] = ((iptr[6] << 8) | (iptr[7] << 0)) / (
float)0xFFFF;
647 optr[4 * 4] = ((iptr[8] << 8) | (iptr[9] << 0)) / (
float)0xFFFF;
648 optr[5 * 4] = ((iptr[10] << 8) | (iptr[11] << 0)) / (
float)0xFFFF;
649 optr[6 * 4] = ((iptr[12] << 8) | (iptr[13] << 0)) / (
float)0xFFFF;
650 optr[7 * 4] = ((iptr[14] << 8) | (iptr[15] << 0)) / (
float)0xFFFF;
656 *optr = ((iptr[0] << 8) | (iptr[1] << 0)) / (
float)0xFFFF;
663 iptr_next = iptr + 2;
665 pixel_f = ((iptr[0] << 8) | (iptr[1] << 0)) / (
float)0xFFFF;
669 optr[0 * 4] = pixel_f;
670 optr[1 * 4] = pixel_f;
671 optr[2 * 4] = pixel_f;
672 optr[3 * 4] = pixel_f;
673 optr[4 * 4] = pixel_f;
674 optr[5 * 4] = pixel_f;
675 optr[6 * 4] = pixel_f;
676 optr[7 * 4] = pixel_f;
690 #undef EXPAND_CAPACITY_AT_INPUT_OK_OR_FAIL
691 #undef EXPAND_CAPACITY_AT_OUTPUT_OK_OR_FAIL
701 #define EXPAND_CAPACITY_AT_INPUT_OK_OR_FAIL(iptr_next) \
702 if (UNLIKELY(iptr_next > iptr_end)) { \
707 #define EXPAND_CAPACITY_AT_OUTPUT_OK_OR_FAIL(optr_next) \
708 if (UNLIKELY(optr_next > optr_end)) { \
716 const uchar *iptr_next = iptr + 1;
720 if (!(
count = (pixel & 0x7f))) {
723 const uchar *optr_next = optr + ((int)
count * 4);
727 iptr_next = iptr +
count;
730 optr[0 * 4] = iptr[0];
731 optr[1 * 4] = iptr[1];
732 optr[2 * 4] = iptr[2];
733 optr[3 * 4] = iptr[3];
734 optr[4 * 4] = iptr[4];
735 optr[5 * 4] = iptr[5];
736 optr[6 * 4] = iptr[6];
737 optr[7 * 4] = iptr[7];
749 iptr_next = iptr + 1;
775 #undef EXPAND_CAPACITY_AT_INPUT_OK_OR_FAIL
776 #undef EXPAND_CAPACITY_AT_OUTPUT_OK_OR_FAIL
804 uint *starttab, *lengthtab;
807 int rlebuflen, goodwrite;
815 tablen = ysize * zsize *
sizeof(int);
820 rlebuflen = 1.05 * xsize + 10;
833 image->xsize = xsize;
834 image->ysize = ysize;
835 image->zsize = zsize;
842 for (
y = 0;
y < ysize;
y++) {
843 for (
z = 0;
z < zsize;
z++) {
853 else if (
z < 8 && zptr) {
858 BLI_assert_msg(
len <= rlebuflen,
"The length calculated for 'rlebuflen' was too small!");
860 goodwrite *= fwrite(rlebuf,
len, 1, outf);
861 starttab[
y +
z * ysize] =
pos;
862 lengthtab[
y +
z * ysize] =
len;
872 goodwrite *=
writetab(outf, starttab, tablen);
873 goodwrite *=
writetab(outf, lengthtab, tablen);
884 fprintf(stderr,
"output_iris: not enough space for image!!\n");
902 const uchar *iptr, *ibufend, *sptr;
909 ibufend = iptr + row_len * 4;
912 while (iptr < ibufend) {
915 while ((iptr < ibufend) && ((iptr[-8] != iptr[-4]) || (iptr[-4] != iptr[0]))) {
919 count = (iptr - sptr) / 4;
923 *optr++ = 0x80 | todo;
925 optr[0] = sptr[0 * 4];
926 optr[1] = sptr[1 * 4];
927 optr[2] = sptr[2 * 4];
928 optr[3] = sptr[3 * 4];
929 optr[4] = sptr[4 * 4];
930 optr[5] = sptr[5 * 4];
931 optr[6] = sptr[6 * 4];
932 optr[7] = sptr[7 * 4];
946 while ((iptr < ibufend) && (*iptr == cc)) {
949 count = (iptr - sptr) / 4;
958 return optr - (
uchar *)rlebuf;
965 zsize = (ibuf->
planes + 7) >> 3;
#define BLI_assert_msg(a, msg)
File and directory operations.
FILE * BLI_fopen(const char *filepath, const char *mode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
_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 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 y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble 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
@ COLOR_ROLE_DEFAULT_BYTE
struct ImBuf * IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
void IMB_rect_from_float(struct ImBuf *ibuf)
void IMB_convert_rgba_to_abgr(struct ImBuf *ibuf)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void colorspace_set_default_role(char *colorspace, int size, int role)
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
static bool output_iris(const char *filepath, const uint *lptr, const int *zptr, const int xsize, const int ysize, const int zsize)
static int writetab(FILE *outf, uint *tab, int len)
#define DIRTY_FLAG_ENCODING
struct ImBuf * imb_loadiris(const uchar *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
bool imb_saveiris(struct ImBuf *ibuf, const char *filepath, int flags)
static void interleaverow(uchar *lptr, const uchar *cptr, int z, int n)
struct MFileOffset MFileOffset
bool imb_is_a_iris(const uchar *mem, size_t size)
static int expandrow2(float *optr, const float *optr_end, const uchar *iptr, const uchar *iptr_end, int z)
static void putshort(FILE *outf, ushort val)
static uint getlong(MFileOffset *mofs)
#define EXPAND_CAPACITY_AT_OUTPUT_OK_OR_FAIL(optr_next)
static void lumrow(const uchar *rgbptr, uchar *lumptr, int n)
static int writeheader(FILE *outf, IMAGE *image)
static int expandrow(uchar *optr, const uchar *optr_end, const uchar *iptr, const uchar *iptr_end, int z)
static ushort getshort(MFileOffset *inf)
static int compressrow(const uchar *lbuf, uchar *rlebuf, int z, int row_len)
#define MFILE_STEP(inf, step)
static void test_endian_zbuf(struct ImBuf *ibuf)
static void readtab(MFileOffset *inf, uint *tab, int len)
static void interleaverow2(float *lptr, const uchar *cptr, int z, int n)
BLI_STATIC_ASSERT(sizeof(IMAGE)==HEADER_SIZE, "Invalid header size")
#define MFILE_CAPACITY_AT_PTR_OK_OR_FAIL(p)
static int putlong(FILE *outf, uint val)
#define EXPAND_CAPACITY_AT_INPUT_OK_OR_FAIL(iptr_next)
#define MFILE_SEEK(inf, pos)
static void readheader(MFileOffset *inf, IMAGE *image)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)