GstGLDisplay

## GstGLDisplay GstGLDisplay |

## 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);
                        GstGLDisplay;
    GstGLDisplay *      gst_gl_display_new                  (void);
    void                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);
    void                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);
    void                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);
    void                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);
    void                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);

## Object Hierarchy

      GObject
       +----GstGLDisplay

## Description

## 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);

`Param1` : |
`Param2` : |
`Param3` : |

### CDCB ()

    gboolean            (*CDCB)                             (GLuint Param1,
                                                             GLuint Param2,
                                                             GLuint Param3,
                                                             gpointer Param4);

`Param1` : |
`Param2` : |
`Param3` : |
`Param4` : |
Returns : |

### GstGLDisplayThreadFunc ()

    void                (*GstGLDisplayThreadFunc)           (GstGLDisplay *display,
                                                             gpointer data);

`display` : |
`data` : |

### GLCB ()

    void                (*GLCB)                             (gint Param1,
                                                             gint Param2,
                                                             guint Param3,
                                                             gpointer stuff);

`Param1` : |
`Param2` : |
`Param3` : |
`stuff` : |

### GstGLDisplay

    typedef struct _GstGLDisplay GstGLDisplay;

### gst_gl_display_new ()

    GstGLDisplay *      gst_gl_display_new                  (void);

Returns : |

### gst_gl_display_create_context ()

    void                gst_gl_display_create_context       (GstGLDisplay *display,
                                                             gulong external_gl_context);

`display` : |
`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);

`display` : |
`texture` : |
`gl_width` : |
`gl_height` : |
`window_width` : |
`window_height` : |
`keep_aspect_ratio` : |
Returns : |

### gst_gl_display_thread_add ()

    void                gst_gl_display_thread_add           (GstGLDisplay *display,
                                                             GstGLDisplayThreadFunc func,
                                                             gpointer data);

`display` : |
`func` : |
`data` : |

### gst_gl_display_gen_texture ()

    void                gst_gl_display_gen_texture          (GstGLDisplay *display,
                                                             GLuint *pTexture,
                                                             GLint width,
                                                             GLint height);

`display` : |
`pTexture` : |
`width` : |
`height` : |

### gst_gl_display_del_texture ()

    void                gst_gl_display_del_texture          (GstGLDisplay *display,
                                                             GLuint texture,
                                                             GLint width,
                                                             GLint height);

`display` : |
`texture` : |
`width` : |
`height` : |

### gst_gl_display_init_upload ()

    void                gst_gl_display_init_upload          (GstGLDisplay *display,
                                                             GstVideoFormat video_format,
                                                             guint gl_width,
                                                             guint gl_height,
                                                             gint video_width,
                                                             gint video_height);

`display` : |
`video_format` : |
`gl_width` : |
`gl_height` : |
`video_width` : |
`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);

`display` : |
`texture` : |
`data_width` : |
`data_height` : |
`data` : |
Returns : |

### gst_gl_display_init_download ()

    void                gst_gl_display_init_download        (GstGLDisplay *display,
                                                             GstVideoFormat video_format,
                                                             gint width,
                                                             gint height);

`display` : |
`video_format` : |
`width` : |
`height` : |

### gst_gl_display_do_download ()

    gboolean            gst_gl_display_do_download          (GstGLDisplay *display,
                                                             GLuint texture,
                                                             gint width,
                                                             gint height,
                                                             gpointer data);

`display` : |
`texture` : |
`width` : |
`height` : |
`data` : |
Returns : |

### gst_gl_display_gen_fbo ()

    void                gst_gl_display_gen_fbo              (GstGLDisplay *display,
                                                             gint width,
                                                             gint height,
                                                             GLuint *fbo,
                                                             GLuint *depthbuffer);

`display` : |
`width` : |
`height` : |
`fbo` : |
`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);

`display` : |
`texture_fbo_width` : |
`texture_fbo_height` : |
`fbo` : |
`depth_buffer` : |
`texture_fbo` : |
`cb` : |
`input_texture_width` : |
`input_texture_height` : |
`input_texture` : |
`proj_param1` : |
`proj_param2` : |
`proj_param3` : |
`proj_param4` : |
`projection` : |
`stuff` : |
Returns : |

### gst_gl_display_del_fbo ()

    void                gst_gl_display_del_fbo              (GstGLDisplay *display,
                                                             GLuint fbo,
                                                             GLuint depth_buffer);

`display` : |
`fbo` : |
`depth_buffer` : |

### gst_gl_display_gen_shader ()

    void                gst_gl_display_gen_shader           (GstGLDisplay *display,
                                                             const gchar *shader_vertex_source,
                                                             const gchar *shader_fragment_source,
                                                             GstGLShader **shader);

`display` : |
`shader_vertex_source` : |
`shader_fragment_source` : |
`shader` : |

### gst_gl_display_del_shader ()

    void                gst_gl_display_del_shader           (GstGLDisplay *display,
                                                             GstGLShader *shader);

`display` : |
`shader` : |

### gst_gl_display_set_window_id ()

    void                gst_gl_display_set_window_id        (GstGLDisplay *display,
                                                             gulong window_id);

`display` : |
`window_id` : |

### gst_gl_display_set_client_reshape_callback ()

    void                gst_gl_display_set_client_reshape_callback
                                                            (GstGLDisplay *display,
                                                             CRCB cb);

`display` : |
`cb` : |

### gst_gl_display_set_client_draw_callback ()

    void                gst_gl_display_set_client_draw_callback
                                                            (GstGLDisplay *display,
                                                             CDCB cb);

`display` : |
`cb` : |