Top |
GstGLShader *
gst_gl_shader_new (GstGLContext *context
);
Note: must be called in the GL thread
GstGLShader * gst_gl_shader_new_default (GstGLContext *context
,GError **error
);
Note: must be called in the GL thread
Since: 1.8
GstGLShader * gst_gl_shader_new_link_with_stages (GstGLContext *context
,GError **error
,...
);
Each stage will attempt to be compiled and attached to shader
. Then
the shader will be linked. On error, NULL
will be returned and error
will
contain the details of the error.
Note: must be called in the GL thread
Since: 1.8
GstGLShader * gst_gl_shader_new_with_stages (GstGLContext *context
,GError **error
,...
);
Each stage will attempt to be compiled and attached to shader
. On error,
NULL
will be returned and error
will contain the details of the error.
Note: must be called in the GL thread
Since: 1.8
void
gst_gl_shader_use (GstGLShader *shader
);
Mark's shader
as being used for the next GL draw command.
Note: must be called in the GL thread and shader
must have been linked.
void
gst_gl_context_clear_shader (GstGLContext *context
);
Clear's the currently set shader from the GL state machine.
Note: must be called in the GL thread.
int
gst_gl_shader_get_program_handle (GstGLShader *shader
);
Since: 1.8
void
gst_gl_shader_release (GstGLShader *shader
);
Releases the shader and stages.
Note: must be called in the GL thread
Since: 1.8
void
gst_gl_shader_release_unlocked (GstGLShader *shader
);
Releases the shader and stages.
Note: must be called in the GL thread
Since: 1.8
gboolean gst_gl_shader_attach (GstGLShader *shader
,GstGLSLStage *stage
);
Attaches stage
to shader
. stage
must have been successfully compiled
with gst_glsl_stage_compile()
.
Note: must be called in the GL thread
Since: 1.8
gboolean gst_gl_shader_attach_unlocked (GstGLShader *shader
,GstGLSLStage *stage
);
Attaches stage
to shader
. stage
must have been successfully compiled
with gst_glsl_stage_compile()
.
Note: must be called in the GL thread
Since: 1.8
gboolean gst_gl_shader_compile_attach_stage (GstGLShader *shader
,GstGLSLStage *stage
,GError **error
);
Compiles stage
and attaches it to shader
.
Note: must be called in the GL thread
Since: 1.8
void gst_gl_shader_detach (GstGLShader *shader
,GstGLSLStage *stage
);
Detaches stage
from shader
. stage
must have been successfully attached
to shader
with gst_gl_shader_attach()
or gst_gl_shader_attach_unlocked()
.
Note: must be called in the GL thread
Since: 1.8
void gst_gl_shader_detach_unlocked (GstGLShader *shader
,GstGLSLStage *stage
);
Detaches stage
from shader
. stage
must have been successfully attached
to shader
with gst_gl_shader_attach()
or gst_gl_shader_attach_unlocked()
.
Note: must be called in the GL thread
Since: 1.8
gboolean
gst_gl_shader_is_linked (GstGLShader *shader
);
Note: must be called in the GL thread
Since: 1.8
gboolean gst_gl_shader_link (GstGLShader *shader
,GError **error
);
Links the current list of GstGLSLStage's in shader
.
Note: must be called in the GL thread
Since: 1.8
void gst_gl_shader_set_uniform_1i (GstGLShader *shader
,const gchar *name
,gint value
);
Perform glUniform1i()
for name
on shader
void gst_gl_shader_set_uniform_1f (GstGLShader *shader
,const gchar *name
,gfloat value
);
Perform glUniform1f()
for name
on shader
void gst_gl_shader_set_uniform_1fv (GstGLShader *shader
,const gchar *name
,guint count
,const gfloat *value
);
Perform glUniform1fv()
for name
on shader
void gst_gl_shader_set_uniform_1iv (GstGLShader *shader
,const gchar *name
,guint count
,const gint *value
);
Perform glUniform1iv()
for name
on shader
void gst_gl_shader_set_uniform_2f (GstGLShader *shader
,const gchar *name
,gfloat v0
,gfloat v1
);
Perform glUniform2f()
for name
on shader
void gst_gl_shader_set_uniform_2fv (GstGLShader *shader
,const gchar *name
,guint count
,const gfloat *value
);
Perform glUniform2fv()
for name
on shader
void gst_gl_shader_set_uniform_2i (GstGLShader *shader
,const gchar *name
,gint v0
,gint v1
);
Perform glUniform2i()
for name
on shader
void gst_gl_shader_set_uniform_2iv (GstGLShader *shader
,const gchar *name
,guint count
,const gint *value
);
Perform glUniform2iv()
for name
on shader
void gst_gl_shader_set_uniform_3f (GstGLShader *shader
,const gchar *name
,gfloat v0
,gfloat v1
,gfloat v2
);
Perform glUniform3f()
for name
on shader
void gst_gl_shader_set_uniform_3fv (GstGLShader *shader
,const gchar *name
,guint count
,const gfloat *value
);
Perform glUniform3fv()
for name
on shader
void gst_gl_shader_set_uniform_3i (GstGLShader *shader
,const gchar *name
,gint v0
,gint v1
,gint v2
);
Perform glUniform3i()
for name
on shader
void gst_gl_shader_set_uniform_3iv (GstGLShader *shader
,const gchar *name
,guint count
,const gint *value
);
Perform glUniform3iv()
for name
on shader
void gst_gl_shader_set_uniform_4f (GstGLShader *shader
,const gchar *name
,gfloat v0
,gfloat v1
,gfloat v2
,gfloat v3
);
Perform glUniform4f()
for name
on shader
void gst_gl_shader_set_uniform_4fv (GstGLShader *shader
,const gchar *name
,guint count
,const gfloat *value
);
Perform glUniform4fv()
for name
on shader
void gst_gl_shader_set_uniform_4i (GstGLShader *shader
,const gchar *name
,gint v0
,gint v1
,gint v2
,gint v3
);
Perform glUniform4i()
for name
on shader
void gst_gl_shader_set_uniform_4iv (GstGLShader *shader
,const gchar *name
,guint count
,const gint *value
);
Perform glUniform4iv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_2fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix2fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_2x3fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix2x3fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_2x4fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix2x4fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_3fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix3fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_3x2fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix3x2fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_3x4fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix3x4fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_4fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix4fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_4x2fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix4x2fv()
for name
on shader
void gst_gl_shader_set_uniform_matrix_4x3fv (GstGLShader *shader
,const gchar *name
,gint count
,gboolean transpose
,const gfloat *value
);
Perform glUniformMatrix4x3fv()
for name
on shader
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
);
Bind attribute name
to the specified location index
using
glBindAttributeLocation()
.
void gst_gl_shader_bind_frag_data_location (GstGLShader *shader
,guint index
,const gchar *name
);
Bind attribute name
to the specified location index
using
glBindFragDataLocation()
.