2 #ifndef __SCHRO_OPENGL_FRAME_H__
3 #define __SCHRO_OPENGL_FRAME_H__
5 #include <schroedinger/schroframe.h>
6 #include <schroedinger/schroparams.h>
7 #include <schroedinger/opengl/schroopengltypes.h>
11 #define SCHRO_FRAME_IS_OPENGL(_frame) \
12 ((_frame)->domain && ((_frame)->domain->flags & SCHRO_MEMORY_DOMAIN_OPENGL))
14 void schro_opengl_frame_setup (SchroOpenGL
*opengl
, SchroFrame
*frame
);
15 void schro_opengl_frame_cleanup (SchroFrame
*frame
);
17 SchroFrame
*schro_opengl_frame_new (SchroOpenGL
*opengl
,
18 SchroMemoryDomain
*opengl_domain
, SchroFrameFormat format
, int width
,
20 SchroFrame
*schro_opengl_frame_clone (SchroFrame
*opengl_frame
);
21 SchroFrame
*schro_opengl_frame_clone_and_push (SchroOpenGL
*opengl
,
22 SchroMemoryDomain
*opengl_domain
, SchroFrame
*cpu_frame
);
24 void schro_opengl_frame_push (SchroFrame
*dest
, SchroFrame
*src
); // CPU -> GPU
25 void schro_opengl_frame_pull (SchroFrame
*dest
, SchroFrame
*src
); // CPU <- GPU
27 void schro_opengl_frame_convert (SchroFrame
*dest
, SchroFrame
*src
);
28 void schro_opengl_frame_add (SchroFrame
*dest
, SchroFrame
*src
);
29 void schro_opengl_frame_subtract (SchroFrame
*dest
, SchroFrame
*src
);
31 void schro_opengl_frame_inverse_iwt_transform (SchroFrame
*frame
,
34 void schro_opengl_upsampled_frame_upsample (SchroFrame
*upsampled_frame
);
36 void schro_frame_print (SchroFrame
*frame
, const char* name
);