GstGLShader

GstGLShader

Synopsis

GQuark              gst_gl_shader_error_quark           (void);
#define             GST_GL_SHADER_ERROR
enum                GstGLShaderError;
enum                GstGLShaderSourceType;
struct              gst_gl_shadervariable_desc;
int                 gst_gl_shadervariable_set           (GstGLShader *shader,
                                                         struct gst_gl_shadervariable_desc *ret);
int                 gst_gl_shadervariables_parse        (GstGLShader *shader,
                                                         char *variables,
                                                         int (*_setvariable) (GstGLShader * shader, struct gst_gl_shadervariable_desc * v));
                    GstGLShader;
GstGLShader *       gst_gl_shader_new                   (GstGLContext *context);
void                gst_gl_shader_set_vertex_source     (GstGLShader *shader,
                                                         const gchar *src);
void                gst_gl_shader_set_fragment_source   (GstGLShader *shader,
                                                         const gchar *src);
const gchar *       gst_gl_shader_get_vertex_source     (GstGLShader *shader);
const gchar *       gst_gl_shader_get_fragment_source   (GstGLShader *shader);
void                gst_gl_shader_set_active            (GstGLShader *shader,
                                                         gboolean active);
gboolean            gst_gl_shader_is_compiled           (GstGLShader *shader);
gboolean            gst_gl_shader_compile               (GstGLShader *shader,
                                                         GError **error);
gboolean            gst_gl_shader_compile_and_check     (GstGLShader *shader,
                                                         const gchar *source,
                                                         GstGLShaderSourceType type);
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[]);
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[]);
gboolean            gst_gl_shader_compile_with_default_v_and_check
                                                        (GstGLShader *shader,
                                                         const gchar *f_src,
                                                         GLint *pos_loc,
                                                         GLint *tex_loc);
gboolean            gst_gl_shader_compile_with_default_vf_and_check
                                                        (GstGLShader *shader,
                                                         GLint *pos_loc,
                                                         GLint *tex_loc);
void                gst_gl_shader_release               (GstGLShader *shader);
void                gst_gl_shader_use                   (GstGLShader *shader);
void                gst_gl_shader_set_uniform_1i        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint value);
void                gst_gl_shader_set_uniform_1f        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gfloat value);
void                gst_gl_shader_set_uniform_1fv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gfloat *value);
void                gst_gl_shader_set_uniform_1iv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gint *value);
void                gst_gl_shader_set_uniform_2f        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gfloat v0,
                                                         gfloat v1);
void                gst_gl_shader_set_uniform_2fv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gfloat *value);
void                gst_gl_shader_set_uniform_2i        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint v0,
                                                         gint v1);
void                gst_gl_shader_set_uniform_2iv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gint *value);
void                gst_gl_shader_set_uniform_3f        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gfloat v0,
                                                         gfloat v1,
                                                         gfloat v2);
void                gst_gl_shader_set_uniform_3fv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gfloat *value);
void                gst_gl_shader_set_uniform_3i        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint v0,
                                                         gint v1,
                                                         gint v2);
void                gst_gl_shader_set_uniform_3iv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gint *value);
void                gst_gl_shader_set_uniform_4f        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gfloat v0,
                                                         gfloat v1,
                                                         gfloat v2,
                                                         gfloat v3);
void                gst_gl_shader_set_uniform_4fv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gfloat *value);
void                gst_gl_shader_set_uniform_4i        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint v0,
                                                         gint v1,
                                                         gint v2,
                                                         gint v3);
void                gst_gl_shader_set_uniform_4iv       (GstGLShader *shader,
                                                         const gchar *name,
                                                         guint count,
                                                         gint *value);
void                gst_gl_shader_set_uniform_matrix_2fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_2x3fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_2x4fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_3fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_3x2fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_3x4fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_4fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_4x2fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
void                gst_gl_shader_set_uniform_matrix_4x3fv
                                                        (GstGLShader *shader,
                                                         const gchar *name,
                                                         gint count,
                                                         gboolean transpose,
                                                         const gfloat *value);
gint                gst_gl_shader_get_attribute_location
                                                        (GstGLShader *shader,
                                                         const gchar *name);
void                gst_gl_shader_bind_attribute_location
                                                        (GstGLShader *shader,
                                                         guint index,
                                                         const gchar *name);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstGLShader

Properties

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

Description

Details

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 ())

enum GstGLShaderError

typedef enum {
  GST_GL_SHADER_ERROR_COMPILE,
  GST_GL_SHADER_ERROR_LINK,
  GST_GL_SHADER_ERROR_PROGRAM
} GstGLShaderError;

GST_GL_SHADER_ERROR_COMPILE

GST_GL_SHADER_ERROR_LINK

GST_GL_SHADER_ERROR_PROGRAM


enum GstGLShaderSourceType

typedef enum {
  GST_GL_SHADER_FRAGMENT_SOURCE,
  GST_GL_SHADER_VERTEX_SOURCE
} GstGLShaderSourceType;

GST_GL_SHADER_FRAGMENT_SOURCE

GST_GL_SHADER_VERTEX_SOURCE


struct gst_gl_shadervariable_desc

struct gst_gl_shadervariable_desc;

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

GstGLShader

typedef struct _GstGLShader GstGLShader;

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

Property Details

The "active" property

  "active"                   gchar*                : Read / Write

Enable/Disable the shader.

Default value: NULL


The "compiled" property

  "compiled"                 gboolean              : Read

Shader compile and link status.

Default value: FALSE


The "fragment-src" property

  "fragment-src"             gchar*                : Read / Write

GLSL Fragment Shader source code.

Default value: NULL


The "vertex-src" property

  "vertex-src"               gchar*                : Read / Write

GLSL Vertex Shader source code.

Default value: NULL