ClutterShader

ClutterShader — Programmable pipeline abstraction

Functions

Properties

gboolean compiled Read
gboolean enabled Read / Write
gchar * fragment-source Read / Write
gchar * vertex-source Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── ClutterShader

Description

ClutterShader is an object providing an abstraction over the OpenGL programmable pipeline. By using ClutterShaders is possible to override the drawing pipeline by using small programs also known as "shaders".

ClutterShader is available since Clutter 0.6.

ClutterShader is deprecated since Clutter 1.8; use ClutterShaderEffect in newly written code, instead.

Functions

clutter_shader_error_quark ()

GQuark
clutter_shader_error_quark (void);

clutter_shader_error_quark is deprecated and should not be used in newly-written code.


clutter_shader_new ()

ClutterShader *
clutter_shader_new (void);

clutter_shader_new has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Create a new ClutterShader instance.

Returns

a new ClutterShader.

Since: 0.6


clutter_shader_set_is_enabled ()

void
clutter_shader_set_is_enabled (ClutterShader *shader,
                               gboolean enabled);

clutter_shader_set_is_enabled has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Enables a shader. This function will attempt to compile and link the shader, if it isn't already.

When enabled is FALSE the default state of the GL pipeline will be used instead.

Parameters

shader

a ClutterShader

 

enabled

The new state of the shader.

 

Since: 0.6


clutter_shader_get_is_enabled ()

gboolean
clutter_shader_get_is_enabled (ClutterShader *shader);

clutter_shader_get_is_enabled has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Checks whether shader is enabled.

Parameters

shader

a ClutterShader

 

Returns

TRUE if the shader is enabled.

Since: 0.6


clutter_shader_compile ()

gboolean
clutter_shader_compile (ClutterShader *shader,
                        GError **error);

clutter_shader_compile has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Compiles and links GLSL sources set for vertex and fragment shaders for a ClutterShader. If the compilation fails and a GError return location is provided the error will contain the errors from the compiler, if any.

Parameters

shader

a ClutterShader

 

error

return location for a GError, or NULL

 

Returns

returns TRUE if the shader was succesfully compiled.

Since: 0.8


clutter_shader_release ()

void
clutter_shader_release (ClutterShader *shader);

clutter_shader_release has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Frees up any GL context resources held by the shader.

Parameters

shader

a ClutterShader

 

Since: 0.6


clutter_shader_is_compiled ()

gboolean
clutter_shader_is_compiled (ClutterShader *shader);

clutter_shader_is_compiled has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Checks whether shader is is currently compiled, linked and bound to the GL context.

Parameters

shader

a ClutterShader

 

Returns

TRUE if the shader is compiled, linked and ready for use.

Since: 0.8


clutter_shader_set_vertex_source ()

void
clutter_shader_set_vertex_source (ClutterShader *shader,
                                  const gchar *data,
                                  gssize length);

clutter_shader_set_vertex_source has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Sets the GLSL source code to be used by a ClutterShader for the vertex program.

Parameters

shader

a ClutterShader

 

data

GLSL source code.

 

length

length of source buffer (currently ignored)

 

Since: 0.6


clutter_shader_set_fragment_source ()

void
clutter_shader_set_fragment_source (ClutterShader *shader,
                                    const gchar *data,
                                    gssize length);

clutter_shader_set_fragment_source has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Sets the GLSL source code to be used by a ClutterShader for the fragment program.

Parameters

shader

a ClutterShader

 

data

GLSL source code.

 

length

length of source buffer (currently ignored)

 

Since: 0.6


clutter_shader_get_vertex_source ()

const gchar *
clutter_shader_get_vertex_source (ClutterShader *shader);

clutter_shader_get_vertex_source has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Query the current GLSL vertex source set on shader .

Parameters

shader

a ClutterShader

 

Returns

the source of the vertex shader for this ClutterShader object or NULL. The returned string is owned by the shader object and should never be modified or freed

Since: 0.6


clutter_shader_get_fragment_source ()

const gchar *
clutter_shader_get_fragment_source (ClutterShader *shader);

clutter_shader_get_fragment_source has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Query the current GLSL fragment source set on shader .

Parameters

shader

a ClutterShader

 

Returns

the source of the fragment shader for this ClutterShader object or NULL. The returned string is owned by the shader object and should never be modified or freed

Since: 0.6


clutter_shader_set_uniform ()

void
clutter_shader_set_uniform (ClutterShader *shader,
                            const gchar *name,
                            const GValue *value);

clutter_shader_set_uniform has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Sets a user configurable variable in the GLSL shader programs attached to a ClutterShader.

Parameters

shader

a ClutterShader.

 

name

name of uniform in GLSL shader program to set.

 

value

a ClutterShaderFloat, ClutterShaderInt or ClutterShaderMatrix GValue.

 

Since: 1.0


clutter_shader_get_cogl_program ()

CoglHandle
clutter_shader_get_cogl_program (ClutterShader *shader);

clutter_shader_get_cogl_program has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Retrieves the underlying CoglHandle for the shader program.

Parameters

shader

a ClutterShader

 

Returns

A CoglHandle for the shader program, or NULL. The handle is owned by the ClutterShader and it should not be unreferenced.

[transfer none]

Since: 1.0


clutter_shader_get_cogl_fragment_shader ()

CoglHandle
clutter_shader_get_cogl_fragment_shader
                               (ClutterShader *shader);

clutter_shader_get_cogl_fragment_shader has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Retrieves the underlying CoglHandle for the fragment shader.

Parameters

shader

a ClutterShader

 

Returns

A CoglHandle for the fragment shader, or NULL. The handle is owned by the ClutterShader and it should not be unreferenced.

[transfer none]

Since: 1.0


clutter_shader_get_cogl_vertex_shader ()

CoglHandle
clutter_shader_get_cogl_vertex_shader (ClutterShader *shader);

clutter_shader_get_cogl_vertex_shader has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Retrieves the underlying CoglHandle for the vertex shader.

Parameters

shader

a ClutterShader

 

Returns

A CoglHandle for the vertex shader, or NULL. The handle is owned by the ClutterShader and it should not be unreferenced.

[transfer none]

Since: 1.0


clutter_actor_set_shader ()

gboolean
clutter_actor_set_shader (ClutterActor *self,
                          ClutterShader *shader);

clutter_actor_set_shader has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect and clutter_actor_add_effect() instead.

Sets the ClutterShader to be used when rendering self .

If shader is NULL this function will unset any currently set shader for the actor.

Any ClutterEffect applied to self will take the precedence over the ClutterShader set using this function.

Parameters

self

a ClutterActor

 

shader

a ClutterShader or NULL to unset the shader.

[allow-none]

Returns

TRUE if the shader was successfully applied or removed

Since: 0.6


clutter_actor_get_shader ()

ClutterShader *
clutter_actor_get_shader (ClutterActor *self);

clutter_actor_get_shader has been deprecated since version 1.8 and should not be used in newly-written code.

Use clutter_actor_get_effect() instead.

Queries the currently set ClutterShader on self .

Parameters

self

a ClutterActor

 

Returns

The currently set ClutterShader or NULL if no shader is set.

[transfer none]

Since: 0.6


clutter_actor_set_shader_param ()

void
clutter_actor_set_shader_param (ClutterActor *self,
                                const gchar *param,
                                const GValue *value);

clutter_actor_set_shader_param has been deprecated since version 1.8 and should not be used in newly-written code.

Use clutter_shader_effect_set_uniform_value() instead

Sets the value for a named parameter of the shader applied to actor .

Parameters

self

a ClutterActor

 

param

the name of the parameter

 

value

the value of the parameter

 

Since: 1.0


clutter_actor_set_shader_param_int ()

void
clutter_actor_set_shader_param_int (ClutterActor *self,
                                    const gchar *param,
                                    gint value);

clutter_actor_set_shader_param_int has been deprecated since version 1.8 and should not be used in newly-written code.

Use clutter_shader_effect_set_uniform() instead

Sets the value for a named int parameter of the shader applied to actor .

Parameters

self

a ClutterActor

 

param

the name of the parameter

 

value

the value of the parameter

 

Since: 0.8


clutter_actor_set_shader_param_float ()

void
clutter_actor_set_shader_param_float (ClutterActor *self,
                                      const gchar *param,
                                      gfloat value);

clutter_actor_set_shader_param_float has been deprecated since version 1.8 and should not be used in newly-written code.

Use clutter_shader_effect_set_uniform() instead

Sets the value for a named float parameter of the shader applied to actor .

Parameters

self

a ClutterActor

 

param

the name of the parameter

 

value

the value of the parameter

 

Since: 0.8

Types and Values

CLUTTER_SHADER_ERROR

#define CLUTTER_SHADER_ERROR        (clutter_shader_error_quark ())

CLUTTER_SHADER_ERROR has been deprecated since version 1.8 and should not be used in newly-written code.

Error domain for ClutterShader errors

Since: 0.6


enum ClutterShaderError

ClutterShaderError has been deprecated since version 1.8 and should not be used in newly-written code.

ClutterShader error enumeration

Members

CLUTTER_SHADER_ERROR_NO_ASM

No ASM shaders support

 

CLUTTER_SHADER_ERROR_NO_GLSL

No GLSL shaders support

 

CLUTTER_SHADER_ERROR_COMPILE

Compilation error

 

Since: 0.6


ClutterShader

typedef struct _ClutterShader ClutterShader;

ClutterShader has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead

The ClutterShader structure contains only private data and should be accessed using the provided API

Since: 0.6


struct ClutterShaderClass

struct ClutterShaderClass {
};

ClutterShaderClass has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffectClass instead

The ClutterShaderClass structure contains only private data

Since: 0.6

Property Details

The “compiled” property

  “compiled”                 gboolean

Whether the shader is compiled and linked, ready for use in the GL context.

ClutterShader:compiled has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Owner: ClutterShader

Flags: Read

Default value: FALSE

Since: 0.8


The “enabled” property

  “enabled”                  gboolean

Whether the shader is currently used in the GL rendering pipeline.

ClutterShader:enabled has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Owner: ClutterShader

Flags: Read / Write

Default value: FALSE

Since: 0.6


The “fragment-source” property

  “fragment-source”          gchar *

GLSL source code for the fragment shader part of the shader program.

ClutterShader:fragment-source has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Owner: ClutterShader

Flags: Read / Write

Default value: NULL

Since: 0.6


The “vertex-source” property

  “vertex-source”            gchar *

GLSL source code for the vertex shader part of the shader program, if any

ClutterShader:vertex-source has been deprecated since version 1.8 and should not be used in newly-written code.

Use ClutterShaderEffect instead.

Owner: ClutterShader

Flags: Read / Write

Default value: NULL

Since: 0.6