58 const int stride_from =
width;
59 const int stride_to =
width;
61 const int anaglyph_encoding[3][3] = {
69 r = anaglyph_encoding[mode][0];
70 g = anaglyph_encoding[mode][1];
71 b = anaglyph_encoding[mode][2];
80 float *to = rect_to + stride_to *
y * 3;
82 rect_left + stride_from *
y * 3,
83 rect_right + stride_from *
y * 3,
95 float *to = rect_to + stride_to *
y * 4;
97 rect_left + stride_from *
y * 4,
98 rect_right + stride_from *
y * 4,
117 uchar *to = rect_to + stride_to *
y * 3;
119 rect_left + stride_from *
y * 3,
120 rect_right + stride_from *
y * 3,
132 uchar *to = rect_to + stride_to *
y * 4;
134 rect_left + stride_from *
y * 4,
135 rect_right + stride_from *
y * 4,
158 const int stride_from =
width;
159 const int stride_to =
width;
162 const float *rect_left = s3d->
rectf.
left;
170 float *to = rect_to + stride_to *
y *
channels;
171 const float *
from[2] = {
175 memcpy(to,
from[i],
sizeof(
float) *
channels * stride_from);
183 float *to = rect_to + stride_to *
y;
184 const float *
from[2] = {
185 rect_left + stride_from *
y,
186 rect_right + stride_from *
y,
198 float *to = rect_to + stride_to *
y * 3;
199 const float *
from[2] = {
200 rect_left + stride_from *
y * 3,
201 rect_right + stride_from *
y * 3,
213 float *to = rect_to + stride_to *
y *
channels;
214 const float *
from[2] = {
232 float *to = rect_to + stride_to *
y;
233 const float *
from[2] = {
234 rect_left + stride_from *
y,
235 rect_right + stride_from *
y,
248 float *to = rect_to + stride_to *
y * 3;
249 const float *
from[2] = {
250 rect_left + stride_from *
y * 3,
251 rect_right + stride_from *
y * 3,
264 float *to = rect_to + stride_to *
y * 4;
265 const float *
from[2] = {
266 rect_left + stride_from *
y * 4,
267 rect_right + stride_from *
y * 4,
306 uchar *to = rect_to + stride_to *
y;
308 rect_left + stride_from *
y,
309 rect_right + stride_from *
y,
320 uchar *to = rect_to + stride_to *
y * 3;
322 rect_left + stride_from *
y * 3,
323 rect_right + stride_from *
y * 3,
334 uchar *to = rect_to + stride_to *
y * 4;
336 rect_left + stride_from *
y * 4,
337 rect_right + stride_from *
y * 4,
352 uchar *to = rect_to + stride_to *
y;
354 rect_left + stride_from *
y,
355 rect_right + stride_from *
y,
368 uchar *to = rect_to + stride_to *
y * 3;
370 rect_left + stride_from *
y * 3,
371 rect_right + stride_from *
y * 3,
384 uchar *to = rect_to + stride_to *
y * 4;
386 rect_left + stride_from *
y * 4,
387 rect_right + stride_from *
y * 4,
414 const int stride_from =
width;
415 const int stride_to =
width * 2;
417 const int l = (int)crosseyed;
421 const float *rect_left = s3d->
rectf.
left;
426 float *to = rect_to + stride_to *
y *
channels;
427 const float *
from[2] = {
462 const int stride_from =
width;
463 const int stride_to =
width;
466 const float *rect_left = s3d->
rectf.
left;
471 float *to = rect_to + stride_to *
y *
channels;
472 const float *
from[2] = {
477 memcpy(to,
from[1],
sizeof(
float) *
channels * stride_from);
508 const bool is_squeezed,
536 const bool is_squeezed,
631 memcpy(rectf, ibuf->
rect_float,
x *
y *
sizeof(
float[4]));
654 (
unsigned char *)rect,
664 memcpy(rect, ibuf->
rect,
x *
y *
sizeof(
unsigned int));
708 const bool is_float = im_format->
depth > 8;
715 &s3d_data, is_float,
x,
y,
channels, rect_left, rect_right, rect_result,
NULL,
NULL,
NULL);
732 const bool is_float = im_format->
depth > 8;
760 const bool is_float = im_format->
depth > 8;
782 (
int *)ibuf_left->
rect,
783 (
int *)ibuf_right->
rect,
784 (
int *)ibuf_stereo->
rect,
829 const int stride_from =
width;
830 const int stride_to =
width;
832 const int anaglyph_encoding[3][3] = {
840 r = anaglyph_encoding[mode][0];
841 g = anaglyph_encoding[mode][1];
842 b = anaglyph_encoding[mode][2];
851 float *
from = rect_from + stride_from *
y * 3;
853 rect_left + stride_to *
y * 3,
854 rect_right + stride_to *
y * 3,
857 for (
x = 0;
x <
width;
x++,
from += 3, to[0] += 3, to[1] += 3) {
866 float *
from = rect_from + stride_from *
y * 4;
868 rect_left + stride_to *
y * 4,
869 rect_right + stride_to *
y * 4,
872 for (
x = 0;
x <
width;
x++,
from += 4, to[0] += 4, to[1] += 4) {
876 to[0][3] = to[1][3] =
from[3];
888 uchar *
from = rect_from + stride_from *
y * 3;
890 rect_left + stride_to *
y * 3,
891 rect_right + stride_to *
y * 3,
894 for (
x = 0;
x <
width;
x++,
from += 3, to[0] += 3, to[1] += 3) {
903 uchar *
from = rect_from + stride_from *
y * 4;
905 rect_left + stride_to *
y * 4,
906 rect_right + stride_to *
y * 4,
909 for (
x = 0;
x <
width;
x++,
from += 4, to[0] += 4, to[1] += 4) {
913 to[0][3] = to[1][3] =
from[3];
929 const int stride_from =
width;
930 const int stride_to =
width;
946 memcpy(to[i],
from,
sizeof(
float) *
channels * stride_to);
954 const float *
from = rect_from + stride_from *
y;
956 rect_left + stride_to *
y,
957 rect_right + stride_to *
y,
961 for (
x = 0;
x <
width;
x++,
from += 1, to[0] += 1, to[1] += 1) {
969 const float *
from = rect_from + stride_from *
y * 3;
971 rect_left + stride_to *
y * 3,
972 rect_right + stride_to *
y * 3,
976 for (
x = 0;
x <
width;
x++,
from += 3, to[0] += 3, to[1] += 3) {
991 for (
x = 0;
x <
width;
x++,
from += 4, to[0] += 4, to[1] += 4) {
1001 char i = (char)
swap;
1003 const float *
from = rect_from + stride_from *
y;
1005 rect_left + stride_to *
y,
1006 rect_right + stride_to *
y,
1009 for (
x = 0;
x <
width;
x++,
from += 1, to[0] += 1, to[1] += 1) {
1017 char i = (char)
swap;
1019 const float *
from = rect_from + stride_from *
y * 3;
1021 rect_left + stride_to *
y * 3,
1022 rect_right + stride_to *
y * 3,
1025 for (
x = 0;
x <
width;
x++,
from += 3, to[0] += 3, to[1] += 3) {
1033 char i = (char)
swap;
1035 const float *
from = rect_from + stride_from *
y * 4;
1037 rect_left + stride_to *
y * 4,
1038 rect_right + stride_to *
y * 4,
1041 for (
x = 0;
x <
width;
x++,
from += 4, to[0] += 4, to[1] += 4) {
1062 char i = (char)
swap;
1077 const uchar *
from = rect_from + stride_from *
y;
1079 rect_left + stride_to *
y,
1080 rect_right + stride_to *
y,
1082 char i = (char)
swap;
1083 for (
x = 0;
x <
width;
x++,
from += 1, to[0] += 1, to[1] += 1) {
1091 const uchar *
from = rect_from + stride_from *
y * 3;
1093 rect_left + stride_to *
y * 3,
1094 rect_right + stride_to *
y * 3,
1096 char i = (char)
swap;
1097 for (
x = 0;
x <
width;
x++,
from += 3, to[0] += 3, to[1] += 3) {
1105 const uchar *
from = rect_from + stride_from *
y * 4;
1107 rect_left + stride_to *
y * 4,
1108 rect_right + stride_to *
y * 4,
1110 char i = (char)
swap;
1111 for (
x = 0;
x <
width;
x++,
from += 4, to[0] += 4, to[1] += 4) {
1121 char i = (char)
swap;
1123 const uchar *
from = rect_from + stride_from *
y;
1125 rect_left + stride_to *
y,
1126 rect_right + stride_to *
y,
1129 for (
x = 0;
x <
width;
x++,
from += 1, to[0] += 1, to[1] += 1) {
1137 char i = (char)
swap;
1139 const uchar *
from = rect_from + stride_from *
y * 3;
1141 rect_left + stride_to *
y * 3,
1142 rect_right + stride_to *
y * 3,
1145 for (
x = 0;
x <
width;
x++,
from += 3, to[0] += 3, to[1] += 3) {
1153 char i = (char)
swap;
1155 const uchar *
from = rect_from + stride_from *
y * 4;
1157 rect_left + stride_to *
y * 4,
1158 rect_right + stride_to *
y * 4,
1161 for (
x = 0;
x <
width;
x++,
from += 4, to[0] += 4, to[1] += 4) {
1185 const int stride_from =
width * 2;
1186 const int stride_to =
width;
1188 const int l = (int)crosseyed;
1234 const int stride_from =
width;
1235 const int stride_to =
width;
1249 memcpy(to[1],
from,
sizeof(
float) *
channels * stride_to);
1278 ImBuf *ibuf_stereo3d,
1279 ImBuf **r_ibuf_left,
1280 ImBuf **r_ibuf_right)
1283 ImBuf *ibuf_left, *ibuf_right;
1323 (
int *)ibuf_left->
rect,
1324 (
int *)ibuf_right->
rect,
1325 (
int *)ibuf_stereo3d->
rect,
1347 (
int *)ibuf_left->
zbuf,
1348 (
int *)ibuf_right->
zbuf,
1349 (
int *)ibuf_stereo3d->
zbuf,
1359 *r_ibuf_left = ibuf_left;
1360 *r_ibuf_right = ibuf_right;
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])
MINLINE void copy_v3_v3_uchar(unsigned char r[3], const unsigned char a[3])
MINLINE void copy_v3_v3(float r[3], const float a[3])
@ S3D_SIDEBYSIDE_CROSSEYED
@ S3D_INTERLACE_CHECKERBOARD
_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 height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
Header file for allocimbuf.c.
bool addzbufImBuf(struct ImBuf *ibuf)
struct ImBuf * IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
bool imb_addrectfloatImBuf(struct ImBuf *ibuf, const unsigned int channels)
void IMB_buffer_byte_from_byte(unsigned char *rect_to, const unsigned char *rect_from, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from)
void IMB_buffer_float_from_float(float *rect_to, const float *rect_from, int channels_from, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from)
bool addzbuffloatImBuf(struct ImBuf *ibuf)
void IMB_scaleImBuf_threaded(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
bool imb_addrectImBuf(struct ImBuf *ibuf)
Contains defines and structs used throughout the imbuf module.
#define IB_PROFILE_LINEAR_RGB
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
ATTR_WARN_UNUSED_RESULT const BMLoop * l
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
void *(* MEM_mallocN)(size_t len, const char *str)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken g("g", pxr::TfToken::Immortal)
static void imb_stereo3d_squeeze_ImBuf(ImBuf *ibuf, const Stereo3dFormat *s3d, const size_t x, const size_t y)
struct Stereo3DData Stereo3DData
static void imb_stereo3d_read_interlace(const Stereo3DData *s3d, enum eStereo3dInterlaceType mode, const bool swap)
static void imb_stereo3d_write_interlace(const Stereo3DData *s3d, enum eStereo3dInterlaceType mode, const bool swap)
static void imb_stereo3d_squeeze_rectf(float *rectf, const Stereo3dFormat *s3d, const size_t x, const size_t y, const size_t channels)
static void imb_stereo3d_squeeze_rect(int *rect, const Stereo3dFormat *s3d, const size_t x, const size_t y, const size_t channels)
static void imb_stereo3d_write_doit(struct Stereo3DData *s3d_data, const struct Stereo3dFormat *s3d)
void IMB_ImBufFromStereo3d(const Stereo3dFormat *s3d, ImBuf *ibuf_stereo3d, ImBuf **r_ibuf_left, ImBuf **r_ibuf_right)
float * IMB_stereo3d_from_rectf(const ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, float *rectf_left, float *rectf_right)
static void imb_stereo3d_write_anaglyph(const Stereo3DData *s3d, enum eStereo3dAnaglyphType mode)
static void imb_stereo3d_write_sidebyside(const Stereo3DData *s3d, const bool crosseyed)
void IMB_stereo3d_write_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
static void imb_stereo3d_read_anaglyph(const Stereo3DData *s3d, enum eStereo3dAnaglyphType mode)
static void imb_stereo3d_read_sidebyside(const Stereo3DData *s3d, const bool crosseyed)
int * IMB_stereo3d_from_rect(const ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, int *rect_left, int *rect_right)
static void imb_stereo3d_data_init(Stereo3DData *s3d_data, const bool is_float, const size_t x, const size_t y, const size_t channels, int *rect_left, int *rect_right, int *rect_stereo, float *rectf_left, float *rectf_right, float *rectf_stereo)
static void imb_stereo3d_unsqueeze_ImBuf(ImBuf *ibuf, const Stereo3dFormat *s3d, const size_t x, const size_t y)
void IMB_stereo3d_read_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
static void imb_stereo3d_write_topbottom(const Stereo3DData *s3d)
static void imb_stereo3d_read_topbottom(const Stereo3DData *s3d)
static void imb_stereo3d_read_doit(struct Stereo3DData *s3d_data, const struct Stereo3dFormat *s3d)
ImBuf * IMB_stereo3d_ImBuf(const ImageFormatData *im_format, ImBuf *ibuf_left, ImBuf *ibuf_right)
struct ColorSpace * rect_colorspace
struct ColorSpace * float_colorspace
struct Stereo3DData::@712 rectf
struct Stereo3DData::@713 rect