Synopsis
enum                GstGLDisplayConversion;
enum                GstGLDisplayProjection;
void                (*CRCB)                             (GLuint Param1,
                                                         GLuint Param2,
                                                         gpointer Param3);
gboolean            (*CDCB)                             (GLuint Param1,
                                                         GLuint Param2,
                                                         GLuint Param3,
                                                         gpointer Param4);
void                (*GstGLDisplayThreadFunc)           (GstGLDisplay *display,
                                                         gpointer data);
void                (*GLCB)                             (gint Param1,
                                                         gint Param2,
                                                         guint Param3,
                                                         gpointer stuff);
struct              GstGLDisplay;
GstGLDisplay *      gst_gl_display_new                  (void);
gboolean            gst_gl_display_create_context       (GstGLDisplay *display,
                                                         gulong external_gl_context);
gboolean            gst_gl_display_redisplay            (GstGLDisplay *display,
                                                         GLuint texture,
                                                         gint gl_width,
                                                         gint gl_height,
                                                         gint window_width,
                                                         gint window_height,
                                                         gboolean keep_aspect_ratio);
void                gst_gl_display_thread_add           (GstGLDisplay *display,
                                                         GstGLDisplayThreadFunc func,
                                                         gpointer data);
void                gst_gl_display_gen_texture          (GstGLDisplay *display,
                                                         GLuint *pTexture,
                                                         GLint width,
                                                         GLint height);
void                gst_gl_display_del_texture          (GstGLDisplay *display,
                                                         GLuint texture,
                                                         GLint width,
                                                         GLint height);
gboolean            gst_gl_display_init_upload          (GstGLDisplay *display,
                                                         GstVideoFormat video_format,
                                                         guint gl_width,
                                                         guint gl_height,
                                                         gint video_width,
                                                         gint video_height);
gboolean            gst_gl_display_do_upload            (GstGLDisplay *display,
                                                         GLuint texture,
                                                         gint data_width,
                                                         gint data_height,
                                                         gpointer data);
gboolean            gst_gl_display_init_download        (GstGLDisplay *display,
                                                         GstVideoFormat video_format,
                                                         gint width,
                                                         gint height);
gboolean            gst_gl_display_do_download          (GstGLDisplay *display,
                                                         GLuint texture,
                                                         gint width,
                                                         gint height,
                                                         gpointer data);
gboolean            gst_gl_display_gen_fbo              (GstGLDisplay *display,
                                                         gint width,
                                                         gint height,
                                                         GLuint *fbo,
                                                         GLuint *depthbuffer);
gboolean            gst_gl_display_use_fbo              (GstGLDisplay *display,
                                                         gint texture_fbo_width,
                                                         gint texture_fbo_height,
                                                         GLuint fbo,
                                                         GLuint depth_buffer,
                                                         GLuint texture_fbo,
                                                         GLCB cb,
                                                         gint input_texture_width,
                                                         gint input_texture_height,
                                                         GLuint input_texture,
                                                         gdouble proj_param1,
                                                         gdouble proj_param2,
                                                         gdouble proj_param3,
                                                         gdouble proj_param4,
                                                         GstGLDisplayProjection projection,
                                                         gpointer *stuff);
void                gst_gl_display_del_fbo              (GstGLDisplay *display,
                                                         GLuint fbo,
                                                         GLuint depth_buffer);
gboolean            gst_gl_display_gen_shader           (GstGLDisplay *display,
                                                         const gchar *shader_vertex_source,
                                                         const gchar *shader_fragment_source,
                                                         GstGLShader **shader);
void                gst_gl_display_del_shader           (GstGLDisplay *display,
                                                         GstGLShader *shader);
void                gst_gl_display_set_window_id        (GstGLDisplay *display,
                                                         gulong window_id);
void                gst_gl_display_set_client_reshape_callback
                                                        (GstGLDisplay *display,
                                                         CRCB cb);
void                gst_gl_display_set_client_draw_callback
                                                        (GstGLDisplay *display,
                                                         CDCB cb);
 
Details
enum GstGLDisplayConversion
typedef enum {
  GST_GL_DISPLAY_CONVERSION_GLSL,       //ARB_fragment_shade
  GST_GL_DISPLAY_CONVERSION_MATRIX,     //ARB_imaging
  GST_GL_DISPLAY_CONVERSION_MESA,       //MESA_ycbcr_texture
} GstGLDisplayConversion;
 
enum GstGLDisplayProjection
typedef enum {
  GST_GL_DISPLAY_PROJECTION_ORTHO2D,
  GST_GL_DISPLAY_PROJECTION_PERSPECTIVE
} GstGLDisplayProjection;
 
CRCB ()
void                (*CRCB)                             (GLuint Param1,
                                                         GLuint Param2,
                                                         gpointer Param3);
 
CDCB ()
gboolean            (*CDCB)                             (GLuint Param1,
                                                         GLuint Param2,
                                                         GLuint Param3,
                                                         gpointer Param4);
 
GstGLDisplayThreadFunc ()
void                (*GstGLDisplayThreadFunc)           (GstGLDisplay *display,
                                                         gpointer data);
 
GLCB ()
void                (*GLCB)                             (gint Param1,
                                                         gint Param2,
                                                         guint Param3,
                                                         gpointer stuff);
 
struct GstGLDisplay
struct GstGLDisplay;
 
gst_gl_display_new ()
GstGLDisplay *      gst_gl_display_new                  (void);
 
gst_gl_display_create_context ()
gboolean            gst_gl_display_create_context       (GstGLDisplay *display,
                                                         gulong external_gl_context);
 
gst_gl_display_redisplay ()
gboolean            gst_gl_display_redisplay            (GstGLDisplay *display,
                                                         GLuint texture,
                                                         gint gl_width,
                                                         gint gl_height,
                                                         gint window_width,
                                                         gint window_height,
                                                         gboolean keep_aspect_ratio);
 
gst_gl_display_gen_texture ()
void                gst_gl_display_gen_texture          (GstGLDisplay *display,
                                                         GLuint *pTexture,
                                                         GLint width,
                                                         GLint height);
 
gst_gl_display_del_texture ()
void                gst_gl_display_del_texture          (GstGLDisplay *display,
                                                         GLuint texture,
                                                         GLint width,
                                                         GLint height);
 
gst_gl_display_init_upload ()
gboolean            gst_gl_display_init_upload          (GstGLDisplay *display,
                                                         GstVideoFormat video_format,
                                                         guint gl_width,
                                                         guint gl_height,
                                                         gint video_width,
                                                         gint video_height);
 
gst_gl_display_do_upload ()
gboolean            gst_gl_display_do_upload            (GstGLDisplay *display,
                                                         GLuint texture,
                                                         gint data_width,
                                                         gint data_height,
                                                         gpointer data);
 
gst_gl_display_init_download ()
gboolean            gst_gl_display_init_download        (GstGLDisplay *display,
                                                         GstVideoFormat video_format,
                                                         gint width,
                                                         gint height);
 
gst_gl_display_do_download ()
gboolean            gst_gl_display_do_download          (GstGLDisplay *display,
                                                         GLuint texture,
                                                         gint width,
                                                         gint height,
                                                         gpointer data);
 
gst_gl_display_gen_fbo ()
gboolean            gst_gl_display_gen_fbo              (GstGLDisplay *display,
                                                         gint width,
                                                         gint height,
                                                         GLuint *fbo,
                                                         GLuint *depthbuffer);
 
gst_gl_display_use_fbo ()
gboolean            gst_gl_display_use_fbo              (GstGLDisplay *display,
                                                         gint texture_fbo_width,
                                                         gint texture_fbo_height,
                                                         GLuint fbo,
                                                         GLuint depth_buffer,
                                                         GLuint texture_fbo,
                                                         GLCB cb,
                                                         gint input_texture_width,
                                                         gint input_texture_height,
                                                         GLuint input_texture,
                                                         gdouble proj_param1,
                                                         gdouble proj_param2,
                                                         gdouble proj_param3,
                                                         gdouble proj_param4,
                                                         GstGLDisplayProjection projection,
                                                         gpointer *stuff);
 
gst_gl_display_del_fbo ()
void                gst_gl_display_del_fbo              (GstGLDisplay *display,
                                                         GLuint fbo,
                                                         GLuint depth_buffer);
 
gst_gl_display_gen_shader ()
gboolean            gst_gl_display_gen_shader           (GstGLDisplay *display,
                                                         const gchar *shader_vertex_source,
                                                         const gchar *shader_fragment_source,
                                                         GstGLShader **shader);
 
gst_gl_display_set_window_id ()
void                gst_gl_display_set_window_id        (GstGLDisplay *display,
                                                         gulong window_id);
 
gst_gl_display_set_client_reshape_callback ()
void                gst_gl_display_set_client_reshape_callback
                                                        (GstGLDisplay *display,
                                                         CRCB cb);
 
gst_gl_display_set_client_draw_callback ()
void                gst_gl_display_set_client_draw_callback
                                                        (GstGLDisplay *display,
                                                         CDCB cb);