## GstGLShader GstGLShader |

## Functions

GQuark | gst_gl_shader_error_quark ()
#define | GST_GL_SHADER_ERROR
int | gst_gl_shadervariable_set ()
int | gst_gl_shadervariables_parse ()
GstGLShader * | gst_gl_shader_new ()
void | gst_gl_shader_set_vertex_source ()
void | gst_gl_shader_set_fragment_source ()
const gchar * | gst_gl_shader_get_vertex_source ()
const gchar * | gst_gl_shader_get_fragment_source ()
int | gst_gl_shader_get_program_handle ()
void | gst_gl_shader_set_active ()
gboolean | gst_gl_shader_is_compiled ()
gboolean | gst_gl_shader_compile ()
gboolean | gst_gl_shader_compile_and_check ()
gboolean | gst_gl_shader_compile_all_with_attribs_and_check ()
gboolean | gst_gl_shader_compile_with_default_f_and_check ()
gboolean | gst_gl_shader_compile_with_default_v_and_check ()
gboolean | gst_gl_shader_compile_with_default_vf_and_check ()
void | gst_gl_shader_release ()
void | gst_gl_shader_use ()
void | gst_gl_shader_set_uniform_1i ()
void | gst_gl_shader_set_uniform_1f ()
void | gst_gl_shader_set_uniform_1fv ()
void | gst_gl_shader_set_uniform_1iv ()
void | gst_gl_shader_set_uniform_2f ()
void | gst_gl_shader_set_uniform_2fv ()
void | gst_gl_shader_set_uniform_2i ()
void | gst_gl_shader_set_uniform_2iv ()
void | gst_gl_shader_set_uniform_3f ()
void | gst_gl_shader_set_uniform_3fv ()
void | gst_gl_shader_set_uniform_3i ()
void | gst_gl_shader_set_uniform_3iv ()
void | gst_gl_shader_set_uniform_4f ()
void | gst_gl_shader_set_uniform_4fv ()
void | gst_gl_shader_set_uniform_4i ()
void | gst_gl_shader_set_uniform_4iv ()
void | gst_gl_shader_set_uniform_matrix_2fv ()
void | gst_gl_shader_set_uniform_matrix_2x3fv ()
void | gst_gl_shader_set_uniform_matrix_2x4fv ()
void | gst_gl_shader_set_uniform_matrix_3fv ()
void | gst_gl_shader_set_uniform_matrix_3x2fv ()
void | gst_gl_shader_set_uniform_matrix_3x4fv ()
void | gst_gl_shader_set_uniform_matrix_4fv ()
void | gst_gl_shader_set_uniform_matrix_4x2fv ()
void | gst_gl_shader_set_uniform_matrix_4x3fv ()
gint | gst_gl_shader_get_attribute_location ()
void | gst_gl_shader_bind_attribute_location ()

## Properties

gchar * | active | Read / Write
gboolean | compiled | Read
gchar * | fragment-src | Read / Write
gchar * | vertex-src | Read / Write

## Types and Values

enum | GstGLShaderError
enum | GstGLShaderSourceType
struct | gst_gl_shadervariable_desc
| GstGLShader

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstGLShader

## Description

## Functions

### gst_gl_shader_error_quark ()

    GQuark
    gst_gl_shader_error_quark (void);

### GST_GL_SHADER_ERROR

    #define GST_GL_SHADER_ERROR (gst_gl_shader_error_quark ())

### gst_gl_shadervariable_set ()

    int
    gst_gl_shadervariable_set (GstGLShader *shader,
                               struct gst_gl_shadervariable_desc *ret);

### gst_gl_shadervariables_parse ()

    int
    gst_gl_shadervariables_parse (GstGLShader *shader,
                                  char *variables,
                                  int (*_setvariable) (GstGLShader * shader, struct gst_gl_shadervariable_desc * v));

### gst_gl_shader_new ()

    GstGLShader *
    gst_gl_shader_new (GstGLContext *context);

### gst_gl_shader_set_vertex_source ()

    void
    gst_gl_shader_set_vertex_source (GstGLShader *shader,
                                     const gchar *src);

### gst_gl_shader_set_fragment_source ()

    void
    gst_gl_shader_set_fragment_source (GstGLShader *shader,
                                       const gchar *src);

### gst_gl_shader_get_vertex_source ()

    const gchar *
    gst_gl_shader_get_vertex_source (GstGLShader *shader);

### gst_gl_shader_get_fragment_source ()

    const gchar *
    gst_gl_shader_get_fragment_source (GstGLShader *shader);

### gst_gl_shader_get_program_handle ()

    int
    gst_gl_shader_get_program_handle (GstGLShader *shader);

### gst_gl_shader_set_active ()

    void
    gst_gl_shader_set_active (GstGLShader *shader,
                              gboolean active);

### gst_gl_shader_is_compiled ()

    gboolean
    gst_gl_shader_is_compiled (GstGLShader *shader);

### gst_gl_shader_compile ()

    gboolean
    gst_gl_shader_compile (GstGLShader *shader,
                           GError **error);

### gst_gl_shader_compile_and_check ()

    gboolean
    gst_gl_shader_compile_and_check (GstGLShader *shader,
                                     const gchar *source,
                                     GstGLShaderSourceType type);

### gst_gl_shader_compile_all_with_attribs_and_check ()

    gboolean
    gst_gl_shader_compile_all_with_attribs_and_check
                                   (GstGLShader *shader,
                                    const gchar *v_src,
                                    const gchar *f_src,
                                    const gint n_attribs,
                                    const gchar *attrib_names[],
                                    GLint attrib_locs[]);

### gst_gl_shader_compile_with_default_f_and_check ()

    gboolean
    gst_gl_shader_compile_with_default_f_and_check
                                   (GstGLShader *shader,
                                    const gchar *v_src,
                                    const gint n_attribs,
                                    const gchar *attrib_names[],
                                    GLint attrib_locs[]);

### gst_gl_shader_compile_with_default_v_and_check ()

    gboolean
    gst_gl_shader_compile_with_default_v_and_check
                                   (GstGLShader *shader,
                                    const gchar *f_src,
                                    GLint *pos_loc,
                                    GLint *tex_loc);

### gst_gl_shader_compile_with_default_vf_and_check ()

    gboolean
    gst_gl_shader_compile_with_default_vf_and_check
                                   (GstGLShader *shader,
                                    GLint *pos_loc,
                                    GLint *tex_loc);

### gst_gl_shader_release ()

    void
    gst_gl_shader_release (GstGLShader *shader);

### gst_gl_shader_use ()

    void
    gst_gl_shader_use (GstGLShader *shader);

### gst_gl_shader_set_uniform_1i ()

    void
    gst_gl_shader_set_uniform_1i (GstGLShader *shader,
                                  const gchar *name,
                                  gint value);

### gst_gl_shader_set_uniform_1f ()

    void
    gst_gl_shader_set_uniform_1f (GstGLShader *shader,
                                  const gchar *name,
                                  gfloat value);

### gst_gl_shader_set_uniform_1fv ()

    void
    gst_gl_shader_set_uniform_1fv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gfloat *value);

### gst_gl_shader_set_uniform_1iv ()

    void
    gst_gl_shader_set_uniform_1iv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gint *value);

### gst_gl_shader_set_uniform_2f ()

    void
    gst_gl_shader_set_uniform_2f (GstGLShader *shader,
                                  const gchar *name,
                                  gfloat v0,
                                  gfloat v1);

### gst_gl_shader_set_uniform_2fv ()

    void
    gst_gl_shader_set_uniform_2fv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gfloat *value);

### gst_gl_shader_set_uniform_2i ()

    void
    gst_gl_shader_set_uniform_2i (GstGLShader *shader,
                                  const gchar *name,
                                  gint v0,
                                  gint v1);

### gst_gl_shader_set_uniform_2iv ()

    void
    gst_gl_shader_set_uniform_2iv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gint *value);

### gst_gl_shader_set_uniform_3f ()

    void
    gst_gl_shader_set_uniform_3f (GstGLShader *shader,
                                  const gchar *name,
                                  gfloat v0,
                                  gfloat v1,
                                  gfloat v2);

### gst_gl_shader_set_uniform_3fv ()

    void
    gst_gl_shader_set_uniform_3fv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gfloat *value);

### gst_gl_shader_set_uniform_3i ()

    void
    gst_gl_shader_set_uniform_3i (GstGLShader *shader,
                                  const gchar *name,
                                  gint v0,
                                  gint v1,
                                  gint v2);

### gst_gl_shader_set_uniform_3iv ()

    void
    gst_gl_shader_set_uniform_3iv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gint *value);

### gst_gl_shader_set_uniform_4f ()

    void
    gst_gl_shader_set_uniform_4f (GstGLShader *shader,
                                  const gchar *name,
                                  gfloat v0,
                                  gfloat v1,
                                  gfloat v2,
                                  gfloat v3);

### gst_gl_shader_set_uniform_4fv ()

    void
    gst_gl_shader_set_uniform_4fv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gfloat *value);

### gst_gl_shader_set_uniform_4i ()

    void
    gst_gl_shader_set_uniform_4i (GstGLShader *shader,
                                  const gchar *name,
                                  gint v0,
                                  gint v1,
                                  gint v2,
                                  gint v3);

### gst_gl_shader_set_uniform_4iv ()

    void
    gst_gl_shader_set_uniform_4iv (GstGLShader *shader,
                                   const gchar *name,
                                   guint count,
                                   gint *value);

### gst_gl_shader_set_uniform_matrix_2fv ()

    void
    gst_gl_shader_set_uniform_matrix_2fv (GstGLShader *shader,
                                          const gchar *name,
                                          gint count,
                                          gboolean transpose,
                                          const gfloat *value);

### gst_gl_shader_set_uniform_matrix_2x3fv ()

    void
    gst_gl_shader_set_uniform_matrix_2x3fv
                                   (GstGLShader *shader,
                                    const gchar *name,
                                    gint count,
                                    gboolean transpose,
                                    const gfloat *value);

### gst_gl_shader_set_uniform_matrix_2x4fv ()

    void
    gst_gl_shader_set_uniform_matrix_2x4fv
                                   (GstGLShader *shader,
                                    const gchar *name,
                                    gint count,
                                    gboolean transpose,
                                    const gfloat *value);

### gst_gl_shader_set_uniform_matrix_3fv ()

    void
    gst_gl_shader_set_uniform_matrix_3fv (GstGLShader *shader,
                                          const gchar *name,
                                          gint count,
                                          gboolean transpose,
                                          const gfloat *value);

### gst_gl_shader_set_uniform_matrix_3x2fv ()

    void
    gst_gl_shader_set_uniform_matrix_3x2fv
                                   (GstGLShader *shader,
                                    const gchar *name,
                                    gint count,
                                    gboolean transpose,
                                    const gfloat *value);

### gst_gl_shader_set_uniform_matrix_3x4fv ()

    void
    gst_gl_shader_set_uniform_matrix_3x4fv
                                   (GstGLShader *shader,
                                    const gchar *name,
                                    gint count,
                                    gboolean transpose,
                                    const gfloat *value);

### gst_gl_shader_set_uniform_matrix_4fv ()

    void
    gst_gl_shader_set_uniform_matrix_4fv (GstGLShader *shader,
                                          const gchar *name,
                                          gint count,
                                          gboolean transpose,
                                          const gfloat *value);

### gst_gl_shader_set_uniform_matrix_4x2fv ()

    void
    gst_gl_shader_set_uniform_matrix_4x2fv
                                   (GstGLShader *shader,
                                    const gchar *name,
                                    gint count,
                                    gboolean transpose,
                                    const gfloat *value);

### gst_gl_shader_set_uniform_matrix_4x3fv ()

    void
    gst_gl_shader_set_uniform_matrix_4x3fv
                                   (GstGLShader *shader,
                                    const gchar *name,
                                    gint count,
                                    gboolean transpose,
                                    const gfloat *value);

### gst_gl_shader_get_attribute_location ()

    gint
    gst_gl_shader_get_attribute_location (GstGLShader *shader,
                                          const gchar *name);

### gst_gl_shader_bind_attribute_location ()

    void
    gst_gl_shader_bind_attribute_location (GstGLShader *shader,
                                           guint index,
                                           const gchar *name);

## Types and Values

### enum GstGLShaderError

#### Members

GST_GL_SHADER_ERROR_COMPILE |  |
GST_GL_SHADER_ERROR_LINK |  |
GST_GL_SHADER_ERROR_PROGRAM |  |

### enum GstGLShaderSourceType

#### Members

GST_GL_SHADER_FRAGMENT_SOURCE |  |
GST_GL_SHADER_VERTEX_SOURCE |  |

### struct gst_gl_shadervariable_desc

    struct gst_gl_shadervariable_desc;

### GstGLShader

    typedef struct _GstGLShader GstGLShader;

## Property Details

### The `“active”` property

      “active”                   gchar *

Enable/Disable the shader.

Flags: Read / Write

Default value: NULL

### The `“compiled”` property

      “compiled”                 gboolean

Shader compile and link status.

Flags: Read

Default value: FALSE

### The `“fragment-src”` property

      “fragment-src”             gchar *

GLSL Fragment Shader source code.

Flags: Read / Write

Default value: NULL

### The `“vertex-src”` property

      “vertex-src”               gchar *

GLSL Vertex Shader source code.

Flags: Read / Write

Default value: NULL