update to 1.10.4
[profile/ivi/clutter.git] / doc / reference / clutter / html / clutter-Shaders.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Shaders</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="Clutter Reference Manual">
8 <link rel="up" href="deprecated.html" title="Part X. Deprecated Classes">
9 <link rel="prev" href="ClutterScore.html" title="ClutterScore">
10 <link rel="next" href="ClutterBehaviour.html" title="ClutterBehaviour">
11 <meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="ClutterScore.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="deprecated.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">Clutter Reference Manual</th>
21 <td><a accesskey="n" href="ClutterBehaviour.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#clutter-Shaders.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#clutter-Shaders.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#clutter-Shaders.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#clutter-Shaders.properties" class="shortcut">Properties</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="clutter-Shaders"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="clutter-Shaders.top_of_page"></a>Shaders</span></h2>
38 <p>Shaders — Programmable pipeline abstraction</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="clutter-Shaders.synopsis"></a><h2>Synopsis</h2>
44 <a name="ClutterShader"></a><pre class="synopsis">enum                <a class="link" href="clutter-Shaders.html#ClutterShaderError" title="enum ClutterShaderError">ClutterShaderError</a>;
45                     <a class="link" href="clutter-Shaders.html#ClutterShader-struct" title="ClutterShader">ClutterShader</a>;
46 struct              <a class="link" href="clutter-Shaders.html#ClutterShaderClass" title="struct ClutterShaderClass">ClutterShaderClass</a>;
47 <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="returnvalue">ClutterShader</span></a> *     <a class="link" href="clutter-Shaders.html#clutter-shader-new" title="clutter_shader_new ()">clutter_shader_new</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
48 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-shader-set-vertex-source" title="clutter_shader_set_vertex_source ()">clutter_shader_set_vertex_source</a>    (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
49                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
50                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> length</code></em>);
51 const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="clutter-Shaders.html#clutter-shader-get-vertex-source" title="clutter_shader_get_vertex_source ()">clutter_shader_get_vertex_source</a>    (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
52 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-shader-set-fragment-source" title="clutter_shader_set_fragment_source ()">clutter_shader_set_fragment_source</a>  (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
53                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
54                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> length</code></em>);
55 const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="clutter-Shaders.html#clutter-shader-get-fragment-source" title="clutter_shader_get_fragment_source ()">clutter_shader_get_fragment_source</a>  (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
56 <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="clutter-Shaders.html#clutter-shader-compile" title="clutter_shader_compile ()">clutter_shader_compile</a>              (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
57                                                          <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
58 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-shader-release" title="clutter_shader_release ()">clutter_shader_release</a>              (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
59 <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="clutter-Shaders.html#clutter-shader-is-compiled" title="clutter_shader_is_compiled ()">clutter_shader_is_compiled</a>          (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
60 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-shader-set-is-enabled" title="clutter_shader_set_is_enabled ()">clutter_shader_set_is_enabled</a>       (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
61                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
62 <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="clutter-Shaders.html#clutter-shader-get-is-enabled" title="clutter_shader_get_is_enabled ()">clutter_shader_get_is_enabled</a>       (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
63
64 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-shader-set-uniform" title="clutter_shader_set_uniform ()">clutter_shader_set_uniform</a>          (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
65                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
66                                                          <em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
67 <span class="returnvalue">CoglHandle</span>          <a class="link" href="clutter-Shaders.html#clutter-shader-get-cogl-program" title="clutter_shader_get_cogl_program ()">clutter_shader_get_cogl_program</a>     (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
68 <span class="returnvalue">CoglHandle</span>          <a class="link" href="clutter-Shaders.html#clutter-shader-get-cogl-fragment-shader" title="clutter_shader_get_cogl_fragment_shader ()">clutter_shader_get_cogl_fragment_shader</a>
69                                                         (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
70 <span class="returnvalue">CoglHandle</span>          <a class="link" href="clutter-Shaders.html#clutter-shader-get-cogl-vertex-shader" title="clutter_shader_get_cogl_vertex_shader ()">clutter_shader_get_cogl_vertex_shader</a>
71                                                         (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);
72
73 #define             <a class="link" href="clutter-Shaders.html#CLUTTER-VALUE-HOLDS-SHADER-FLOAT:CAPS" title="CLUTTER_VALUE_HOLDS_SHADER_FLOAT()">CLUTTER_VALUE_HOLDS_SHADER_FLOAT</a>    (x)
74 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-value-set-shader-float" title="clutter_value_set_shader_float ()">clutter_value_set_shader_float</a>      (<em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
75                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
76                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *floats</code></em>);
77 const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> *      <a class="link" href="clutter-Shaders.html#clutter-value-get-shader-float" title="clutter_value_get_shader_float ()">clutter_value_get_shader_float</a>      (<em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
78                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *length</code></em>);
79 #define             <a class="link" href="clutter-Shaders.html#CLUTTER-VALUE-HOLDS-SHADER-INT:CAPS" title="CLUTTER_VALUE_HOLDS_SHADER_INT()">CLUTTER_VALUE_HOLDS_SHADER_INT</a>      (x)
80 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-value-set-shader-int" title="clutter_value_set_shader_int ()">clutter_value_set_shader_int</a>        (<em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
81                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
82                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *ints</code></em>);
83 const <a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> *        <a class="link" href="clutter-Shaders.html#clutter-value-get-shader-int" title="clutter_value_get_shader_int ()">clutter_value_get_shader_int</a>        (<em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
84                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *length</code></em>);
85 #define             <a class="link" href="clutter-Shaders.html#CLUTTER-VALUE-HOLDS-SHADER-MATRIX:CAPS" title="CLUTTER_VALUE_HOLDS_SHADER_MATRIX()">CLUTTER_VALUE_HOLDS_SHADER_MATRIX</a>   (x)
86 <span class="returnvalue">void</span>                <a class="link" href="clutter-Shaders.html#clutter-value-set-shader-matrix" title="clutter_value_set_shader_matrix ()">clutter_value_set_shader_matrix</a>     (<em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
87                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
88                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *matrix</code></em>);
89 const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> *      <a class="link" href="clutter-Shaders.html#clutter-value-get-shader-matrix" title="clutter_value_get_shader_matrix ()">clutter_value_get_shader_matrix</a>     (<em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
90                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *length</code></em>);
91 </pre>
92 </div>
93 <div class="refsect1">
94 <a name="clutter-Shaders.object-hierarchy"></a><h2>Object Hierarchy</h2>
95 <pre class="synopsis">
96   <a href="../gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>
97    +----ClutterShader
98 </pre>
99 </div>
100 <div class="refsect1">
101 <a name="clutter-Shaders.properties"></a><h2>Properties</h2>
102 <pre class="synopsis">
103   "<a class="link" href="clutter-Shaders.html#ClutterShader--compiled" title='The "compiled" property'>compiled</a>"                 <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read
104   "<a class="link" href="clutter-Shaders.html#ClutterShader--enabled" title='The "enabled" property'>enabled</a>"                  <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
105   "<a class="link" href="clutter-Shaders.html#ClutterShader--fragment-source" title='The "fragment-source" property'>fragment-source</a>"          <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
106   "<a class="link" href="clutter-Shaders.html#ClutterShader--vertex-source" title='The "vertex-source" property'>vertex-source</a>"            <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
107 </pre>
108 </div>
109 <div class="refsect1">
110 <a name="clutter-Shaders.description"></a><h2>Description</h2>
111 <p>
112 <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> is an object providing an abstraction over the
113 OpenGL programmable pipeline. By using <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>s is
114 possible to override the drawing pipeline by using small programs
115 also known as "shaders".
116 </p>
117 <p>
118 <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> is available since Clutter 0.6.
119 </p>
120 <p>
121 <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> is deprecated since Clutter 1.8; use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a>
122 in newly written code.
123 </p>
124 </div>
125 <div class="refsect1">
126 <a name="clutter-Shaders.details"></a><h2>Details</h2>
127 <div class="refsect2">
128 <a name="ClutterShaderError"></a><h3>enum ClutterShaderError</h3>
129 <pre class="programlisting">typedef enum {
130   CLUTTER_SHADER_ERROR_NO_ASM,
131   CLUTTER_SHADER_ERROR_NO_GLSL,
132   CLUTTER_SHADER_ERROR_COMPILE
133 } ClutterShaderError;
134 </pre>
135 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
136 <h3 class="title">Warning</h3>
137 <p><code class="literal">ClutterShaderError</code> is deprecated and should not be used in newly-written code. 1.8</p>
138 </div>
139 <p>
140 <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> error enumeration
141 </p>
142 <div class="variablelist"><table border="0">
143 <col align="left" valign="top">
144 <tbody>
145 <tr>
146 <td><p><a name="CLUTTER-SHADER-ERROR-NO-ASM:CAPS"></a><span class="term"><code class="literal">CLUTTER_SHADER_ERROR_NO_ASM</code></span></p></td>
147 <td>No ASM shaders support
148 </td>
149 </tr>
150 <tr>
151 <td><p><a name="CLUTTER-SHADER-ERROR-NO-GLSL:CAPS"></a><span class="term"><code class="literal">CLUTTER_SHADER_ERROR_NO_GLSL</code></span></p></td>
152 <td>No GLSL shaders support
153 </td>
154 </tr>
155 <tr>
156 <td><p><a name="CLUTTER-SHADER-ERROR-COMPILE:CAPS"></a><span class="term"><code class="literal">CLUTTER_SHADER_ERROR_COMPILE</code></span></p></td>
157 <td>Compilation error
158 </td>
159 </tr>
160 </tbody>
161 </table></div>
162 <p class="since">Since 0.6</p>
163 </div>
164 <hr>
165 <div class="refsect2">
166 <a name="ClutterShader-struct"></a><h3>ClutterShader</h3>
167 <pre class="programlisting">typedef struct _ClutterShader ClutterShader;</pre>
168 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
169 <h3 class="title">Warning</h3>
170 <p><code class="literal">ClutterShader</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead</p>
171 </div>
172 <p>
173 The <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> structure contains only private data
174 and should be accessed using the provided API
175 </p>
176 <p class="since">Since 0.6</p>
177 </div>
178 <hr>
179 <div class="refsect2">
180 <a name="ClutterShaderClass"></a><h3>struct ClutterShaderClass</h3>
181 <pre class="programlisting">struct ClutterShaderClass {
182 };
183 </pre>
184 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
185 <h3 class="title">Warning</h3>
186 <p><code class="literal">ClutterShaderClass</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html#ClutterShaderEffectClass" title="struct ClutterShaderEffectClass"><span class="type">ClutterShaderEffectClass</span></a> instead</p>
187 </div>
188 <p>
189 The <a class="link" href="clutter-Shaders.html#ClutterShaderClass" title="struct ClutterShaderClass"><span class="type">ClutterShaderClass</span></a> structure contains only private data
190 </p>
191 <p class="since">Since 0.6</p>
192 </div>
193 <hr>
194 <div class="refsect2">
195 <a name="clutter-shader-new"></a><h3>clutter_shader_new ()</h3>
196 <pre class="programlisting"><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="returnvalue">ClutterShader</span></a> *     clutter_shader_new                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
197 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
198 <h3 class="title">Warning</h3>
199 <p><code class="literal">clutter_shader_new</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
200 </div>
201 <p>
202 Create a new <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> instance.
203 </p>
204 <div class="variablelist"><table border="0">
205 <col align="left" valign="top">
206 <tbody><tr>
207 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
208 <td>a new <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>.</td>
209 </tr></tbody>
210 </table></div>
211 <p class="since">Since 0.6</p>
212 </div>
213 <hr>
214 <div class="refsect2">
215 <a name="clutter-shader-set-vertex-source"></a><h3>clutter_shader_set_vertex_source ()</h3>
216 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_shader_set_vertex_source    (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
217                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
218                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> length</code></em>);</pre>
219 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
220 <h3 class="title">Warning</h3>
221 <p><code class="literal">clutter_shader_set_vertex_source</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
222 </div>
223 <p>
224 Sets the GLSL source code to be used by a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> for the vertex
225 program.
226 </p>
227 <div class="variablelist"><table border="0">
228 <col align="left" valign="top">
229 <tbody>
230 <tr>
231 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
232 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
233 </td>
234 </tr>
235 <tr>
236 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
237 <td>GLSL source code.</td>
238 </tr>
239 <tr>
240 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
241 <td>length of source buffer (currently ignored)</td>
242 </tr>
243 </tbody>
244 </table></div>
245 <p class="since">Since 0.6</p>
246 </div>
247 <hr>
248 <div class="refsect2">
249 <a name="clutter-shader-get-vertex-source"></a><h3>clutter_shader_get_vertex_source ()</h3>
250 <pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       clutter_shader_get_vertex_source    (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
251 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
252 <h3 class="title">Warning</h3>
253 <p><code class="literal">clutter_shader_get_vertex_source</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
254 </div>
255 <p>
256 Query the current GLSL vertex source set on <em class="parameter"><code>shader</code></em>.
257 </p>
258 <div class="variablelist"><table border="0">
259 <col align="left" valign="top">
260 <tbody>
261 <tr>
262 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
263 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
264 </td>
265 </tr>
266 <tr>
267 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
268 <td>the source of the vertex shader for this
269 ClutterShader object or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. The returned string is owned by the
270 shader object and should never be modified or freed</td>
271 </tr>
272 </tbody>
273 </table></div>
274 <p class="since">Since 0.6</p>
275 </div>
276 <hr>
277 <div class="refsect2">
278 <a name="clutter-shader-set-fragment-source"></a><h3>clutter_shader_set_fragment_source ()</h3>
279 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_shader_set_fragment_source  (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
280                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
281                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> length</code></em>);</pre>
282 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
283 <h3 class="title">Warning</h3>
284 <p><code class="literal">clutter_shader_set_fragment_source</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
285 </div>
286 <p>
287 Sets the GLSL source code to be used by a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> for the fragment
288 program.
289 </p>
290 <div class="variablelist"><table border="0">
291 <col align="left" valign="top">
292 <tbody>
293 <tr>
294 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
295 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
296 </td>
297 </tr>
298 <tr>
299 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
300 <td>GLSL source code.</td>
301 </tr>
302 <tr>
303 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
304 <td>length of source buffer (currently ignored)</td>
305 </tr>
306 </tbody>
307 </table></div>
308 <p class="since">Since 0.6</p>
309 </div>
310 <hr>
311 <div class="refsect2">
312 <a name="clutter-shader-get-fragment-source"></a><h3>clutter_shader_get_fragment_source ()</h3>
313 <pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       clutter_shader_get_fragment_source  (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
314 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
315 <h3 class="title">Warning</h3>
316 <p><code class="literal">clutter_shader_get_fragment_source</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
317 </div>
318 <p>
319 Query the current GLSL fragment source set on <em class="parameter"><code>shader</code></em>.
320 </p>
321 <div class="variablelist"><table border="0">
322 <col align="left" valign="top">
323 <tbody>
324 <tr>
325 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
326 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
327 </td>
328 </tr>
329 <tr>
330 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
331 <td>the source of the fragment shader for this
332 ClutterShader object or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. The returned string is owned by the
333 shader object and should never be modified or freed</td>
334 </tr>
335 </tbody>
336 </table></div>
337 <p class="since">Since 0.6</p>
338 </div>
339 <hr>
340 <div class="refsect2">
341 <a name="clutter-shader-compile"></a><h3>clutter_shader_compile ()</h3>
342 <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            clutter_shader_compile              (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
343                                                          <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
344 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
345 <h3 class="title">Warning</h3>
346 <p><code class="literal">clutter_shader_compile</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
347 </div>
348 <p>
349 Compiles and links GLSL sources set for vertex and fragment shaders for
350 a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>. If the compilation fails and a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> return location is
351 provided the error will contain the errors from the compiler, if any.
352 </p>
353 <div class="variablelist"><table border="0">
354 <col align="left" valign="top">
355 <tbody>
356 <tr>
357 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
358 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
359 </td>
360 </tr>
361 <tr>
362 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
363 <td>return location for a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
364 </td>
365 </tr>
366 <tr>
367 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
368 <td>returns TRUE if the shader was succesfully compiled.</td>
369 </tr>
370 </tbody>
371 </table></div>
372 <p class="since">Since 0.8</p>
373 </div>
374 <hr>
375 <div class="refsect2">
376 <a name="clutter-shader-release"></a><h3>clutter_shader_release ()</h3>
377 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_shader_release              (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
378 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
379 <h3 class="title">Warning</h3>
380 <p><code class="literal">clutter_shader_release</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
381 </div>
382 <p>
383 Frees up any GL context resources held by the shader.
384 </p>
385 <div class="variablelist"><table border="0">
386 <col align="left" valign="top">
387 <tbody><tr>
388 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
389 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
390 </td>
391 </tr></tbody>
392 </table></div>
393 <p class="since">Since 0.6</p>
394 </div>
395 <hr>
396 <div class="refsect2">
397 <a name="clutter-shader-is-compiled"></a><h3>clutter_shader_is_compiled ()</h3>
398 <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            clutter_shader_is_compiled          (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
399 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
400 <h3 class="title">Warning</h3>
401 <p><code class="literal">clutter_shader_is_compiled</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
402 </div>
403 <p>
404 Checks whether <em class="parameter"><code>shader</code></em> is is currently compiled, linked and bound
405 to the GL context.
406 </p>
407 <div class="variablelist"><table border="0">
408 <col align="left" valign="top">
409 <tbody>
410 <tr>
411 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
412 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
413 </td>
414 </tr>
415 <tr>
416 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
417 <td>
418 <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the shader is compiled, linked and ready for use.</td>
419 </tr>
420 </tbody>
421 </table></div>
422 <p class="since">Since 0.8</p>
423 </div>
424 <hr>
425 <div class="refsect2">
426 <a name="clutter-shader-set-is-enabled"></a><h3>clutter_shader_set_is_enabled ()</h3>
427 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_shader_set_is_enabled       (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
428                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
429 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
430 <h3 class="title">Warning</h3>
431 <p><code class="literal">clutter_shader_set_is_enabled</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
432 </div>
433 <p>
434 Enables a shader. This function will attempt to compile and link
435 the shader, if it isn't already.
436 </p>
437 <p>
438 When <em class="parameter"><code>enabled</code></em> is <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> the default state of the GL pipeline will be
439 used instead.
440 </p>
441 <div class="variablelist"><table border="0">
442 <col align="left" valign="top">
443 <tbody>
444 <tr>
445 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
446 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
447 </td>
448 </tr>
449 <tr>
450 <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
451 <td>The new state of the shader.</td>
452 </tr>
453 </tbody>
454 </table></div>
455 <p class="since">Since 0.6</p>
456 </div>
457 <hr>
458 <div class="refsect2">
459 <a name="clutter-shader-get-is-enabled"></a><h3>clutter_shader_get_is_enabled ()</h3>
460 <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            clutter_shader_get_is_enabled       (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
461 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
462 <h3 class="title">Warning</h3>
463 <p><code class="literal">clutter_shader_get_is_enabled</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
464 </div>
465 <p>
466 Checks whether <em class="parameter"><code>shader</code></em> is enabled.
467 </p>
468 <div class="variablelist"><table border="0">
469 <col align="left" valign="top">
470 <tbody>
471 <tr>
472 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
473 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
474 </td>
475 </tr>
476 <tr>
477 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
478 <td>
479 <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the shader is enabled.</td>
480 </tr>
481 </tbody>
482 </table></div>
483 <p class="since">Since 0.6</p>
484 </div>
485 <hr>
486 <div class="refsect2">
487 <a name="clutter-shader-set-uniform"></a><h3>clutter_shader_set_uniform ()</h3>
488 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_shader_set_uniform          (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>,
489                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
490                                                          <em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
491 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
492 <h3 class="title">Warning</h3>
493 <p><code class="literal">clutter_shader_set_uniform</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
494 </div>
495 <p>
496 Sets a user configurable variable in the GLSL shader programs attached to
497 a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>.
498 </p>
499 <div class="variablelist"><table border="0">
500 <col align="left" valign="top">
501 <tbody>
502 <tr>
503 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
504 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>.</td>
505 </tr>
506 <tr>
507 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
508 <td>name of uniform in GLSL shader program to set.</td>
509 </tr>
510 <tr>
511 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
512 <td>a <span class="type">ClutterShaderFloat</span>, <span class="type">ClutterShaderInt</span> or <span class="type">ClutterShaderMatrix</span>
513 <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.</td>
514 </tr>
515 </tbody>
516 </table></div>
517 <p class="since">Since 1.0</p>
518 </div>
519 <hr>
520 <div class="refsect2">
521 <a name="clutter-shader-get-cogl-program"></a><h3>clutter_shader_get_cogl_program ()</h3>
522 <pre class="programlisting"><span class="returnvalue">CoglHandle</span>          clutter_shader_get_cogl_program     (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
523 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
524 <h3 class="title">Warning</h3>
525 <p><code class="literal">clutter_shader_get_cogl_program</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
526 </div>
527 <p>
528 Retrieves the underlying <span class="type">CoglHandle</span> for the shader program.
529 </p>
530 <div class="variablelist"><table border="0">
531 <col align="left" valign="top">
532 <tbody>
533 <tr>
534 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
535 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
536 </td>
537 </tr>
538 <tr>
539 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
540 <td>A <span class="type">CoglHandle</span> for the shader program,
541 or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. The handle is owned by the <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> and it should
542 not be unreferenced. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
543 </td>
544 </tr>
545 </tbody>
546 </table></div>
547 <p class="since">Since 1.0</p>
548 </div>
549 <hr>
550 <div class="refsect2">
551 <a name="clutter-shader-get-cogl-fragment-shader"></a><h3>clutter_shader_get_cogl_fragment_shader ()</h3>
552 <pre class="programlisting"><span class="returnvalue">CoglHandle</span>          clutter_shader_get_cogl_fragment_shader
553                                                         (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
554 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
555 <h3 class="title">Warning</h3>
556 <p><code class="literal">clutter_shader_get_cogl_fragment_shader</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
557 </div>
558 <p>
559 Retrieves the underlying <span class="type">CoglHandle</span> for the fragment shader.
560 </p>
561 <div class="variablelist"><table border="0">
562 <col align="left" valign="top">
563 <tbody>
564 <tr>
565 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
566 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
567 </td>
568 </tr>
569 <tr>
570 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
571 <td>A <span class="type">CoglHandle</span> for the fragment
572 shader, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. The handle is owned by the <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
573 and it should not be unreferenced. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
574 </td>
575 </tr>
576 </tbody>
577 </table></div>
578 <p class="since">Since 1.0</p>
579 </div>
580 <hr>
581 <div class="refsect2">
582 <a name="clutter-shader-get-cogl-vertex-shader"></a><h3>clutter_shader_get_cogl_vertex_shader ()</h3>
583 <pre class="programlisting"><span class="returnvalue">CoglHandle</span>          clutter_shader_get_cogl_vertex_shader
584                                                         (<em class="parameter"><code><a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a> *shader</code></em>);</pre>
585 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
586 <h3 class="title">Warning</h3>
587 <p><code class="literal">clutter_shader_get_cogl_vertex_shader</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
588 </div>
589 <p>
590 Retrieves the underlying <span class="type">CoglHandle</span> for the vertex shader.
591 </p>
592 <div class="variablelist"><table border="0">
593 <col align="left" valign="top">
594 <tbody>
595 <tr>
596 <td><p><span class="term"><em class="parameter"><code>shader</code></em> :</span></p></td>
597 <td>a <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
598 </td>
599 </tr>
600 <tr>
601 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
602 <td>A <span class="type">CoglHandle</span> for the vertex
603 shader, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. The handle is owned by the <a class="link" href="clutter-Shaders.html#ClutterShader"><span class="type">ClutterShader</span></a>
604 and it should not be unreferenced. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
605 </td>
606 </tr>
607 </tbody>
608 </table></div>
609 <p class="since">Since 1.0</p>
610 </div>
611 <hr>
612 <div class="refsect2">
613 <a name="CLUTTER-VALUE-HOLDS-SHADER-FLOAT:CAPS"></a><h3>CLUTTER_VALUE_HOLDS_SHADER_FLOAT()</h3>
614 <pre class="programlisting">#define CLUTTER_VALUE_HOLDS_SHADER_FLOAT(x) (G_VALUE_HOLDS ((x), CLUTTER_TYPE_SHADER_FLOAT))
615 </pre>
616 <p>
617 Evaluates to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>x</code></em> holds a <span class="type">ClutterShaderFloat</span>.
618 </p>
619 <div class="variablelist"><table border="0">
620 <col align="left" valign="top">
621 <tbody><tr>
622 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
623 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
624 </td>
625 </tr></tbody>
626 </table></div>
627 <p class="since">Since 1.0</p>
628 </div>
629 <hr>
630 <div class="refsect2">
631 <a name="clutter-value-set-shader-float"></a><h3>clutter_value_set_shader_float ()</h3>
632 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_value_set_shader_float      (<em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
633                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
634                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *floats</code></em>);</pre>
635 <p>
636 Sets <em class="parameter"><code>floats</code></em> as the contents of <em class="parameter"><code>value</code></em>. The passed <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
637 must have been initialized using <code class="literal">CLUTTER_TYPE_SHADER_FLOAT</code>.
638 </p>
639 <div class="variablelist"><table border="0">
640 <col align="left" valign="top">
641 <tbody>
642 <tr>
643 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
644 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
645 </td>
646 </tr>
647 <tr>
648 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
649 <td>number of floating point values in <em class="parameter"><code>floats</code></em>
650 </td>
651 </tr>
652 <tr>
653 <td><p><span class="term"><em class="parameter"><code>floats</code></em> :</span></p></td>
654 <td>an array of floating point values</td>
655 </tr>
656 </tbody>
657 </table></div>
658 <p class="since">Since 0.8</p>
659 </div>
660 <hr>
661 <div class="refsect2">
662 <a name="clutter-value-get-shader-float"></a><h3>clutter_value_get_shader_float ()</h3>
663 <pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> *      clutter_value_get_shader_float      (<em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
664                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *length</code></em>);</pre>
665 <p>
666 Retrieves the list of floating point values stored inside
667 the passed <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>. <em class="parameter"><code>value</code></em> must have been initialized with
668 <code class="literal">CLUTTER_TYPE_SHADER_FLOAT</code>.
669 </p>
670 <div class="variablelist"><table border="0">
671 <col align="left" valign="top">
672 <tbody>
673 <tr>
674 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
675 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
676 </td>
677 </tr>
678 <tr>
679 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
680 <td>return location for the number of returned floating
681 point values, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
682 </td>
683 </tr>
684 <tr>
685 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
686 <td>the pointer to a list of floating point values.
687 The returned value is owned by the <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> and should never
688 be modified or freed.</td>
689 </tr>
690 </tbody>
691 </table></div>
692 <p class="since">Since 0.8</p>
693 </div>
694 <hr>
695 <div class="refsect2">
696 <a name="CLUTTER-VALUE-HOLDS-SHADER-INT:CAPS"></a><h3>CLUTTER_VALUE_HOLDS_SHADER_INT()</h3>
697 <pre class="programlisting">#define CLUTTER_VALUE_HOLDS_SHADER_INT(x) (G_VALUE_HOLDS ((x), CLUTTER_TYPE_SHADER_INT))
698 </pre>
699 <p>
700 Evaluates to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>x</code></em> holds a <span class="type">ClutterShaderInt</span>.
701 </p>
702 <div class="variablelist"><table border="0">
703 <col align="left" valign="top">
704 <tbody><tr>
705 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
706 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
707 </td>
708 </tr></tbody>
709 </table></div>
710 <p class="since">Since 1.0</p>
711 </div>
712 <hr>
713 <div class="refsect2">
714 <a name="clutter-value-set-shader-int"></a><h3>clutter_value_set_shader_int ()</h3>
715 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_value_set_shader_int        (<em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
716                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
717                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *ints</code></em>);</pre>
718 <p>
719 Sets <em class="parameter"><code>ints</code></em> as the contents of <em class="parameter"><code>value</code></em>. The passed <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
720 must have been initialized using <code class="literal">CLUTTER_TYPE_SHADER_INT</code>.
721 </p>
722 <div class="variablelist"><table border="0">
723 <col align="left" valign="top">
724 <tbody>
725 <tr>
726 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
727 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
728 </td>
729 </tr>
730 <tr>
731 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
732 <td>number of integer values in <em class="parameter"><code>ints</code></em>
733 </td>
734 </tr>
735 <tr>
736 <td><p><span class="term"><em class="parameter"><code>ints</code></em> :</span></p></td>
737 <td>an array of integer values</td>
738 </tr>
739 </tbody>
740 </table></div>
741 <p class="since">Since 0.8</p>
742 </div>
743 <hr>
744 <div class="refsect2">
745 <a name="clutter-value-get-shader-int"></a><h3>clutter_value_get_shader_int ()</h3>
746 <pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> *        clutter_value_get_shader_int        (<em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
747                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *length</code></em>);</pre>
748 <p>
749 Retrieves the list of integer values stored inside the passed
750 <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>. <em class="parameter"><code>value</code></em> must have been initialized with
751 <code class="literal">CLUTTER_TYPE_SHADER_INT</code>.
752 </p>
753 <div class="variablelist"><table border="0">
754 <col align="left" valign="top">
755 <tbody>
756 <tr>
757 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
758 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
759 </td>
760 </tr>
761 <tr>
762 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
763 <td>return location for the number of returned integer
764 values, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
765 </td>
766 </tr>
767 <tr>
768 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
769 <td>the pointer to a list of integer values.
770 The returned value is owned by the <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> and should never
771 be modified or freed.</td>
772 </tr>
773 </tbody>
774 </table></div>
775 <p class="since">Since 0.8</p>
776 </div>
777 <hr>
778 <div class="refsect2">
779 <a name="CLUTTER-VALUE-HOLDS-SHADER-MATRIX:CAPS"></a><h3>CLUTTER_VALUE_HOLDS_SHADER_MATRIX()</h3>
780 <pre class="programlisting">#define CLUTTER_VALUE_HOLDS_SHADER_MATRIX(x) (G_VALUE_HOLDS ((x), CLUTTER_TYPE_SHADER_MATRIX))
781 </pre>
782 <p>
783 Evaluates to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>x</code></em> holds a <span class="type">ClutterShaderMatrix</span>.
784 </p>
785 <div class="variablelist"><table border="0">
786 <col align="left" valign="top">
787 <tbody><tr>
788 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
789 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
790 </td>
791 </tr></tbody>
792 </table></div>
793 <p class="since">Since 1.0</p>
794 </div>
795 <hr>
796 <div class="refsect2">
797 <a name="clutter-value-set-shader-matrix"></a><h3>clutter_value_set_shader_matrix ()</h3>
798 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_value_set_shader_matrix     (<em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
799                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
800                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *matrix</code></em>);</pre>
801 <p>
802 Sets <em class="parameter"><code>matrix</code></em> as the contents of <em class="parameter"><code>value</code></em>. The passed <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
803 must have been initialized using <code class="literal">CLUTTER_TYPE_SHADER_MATRIX</code>.
804 </p>
805 <div class="variablelist"><table border="0">
806 <col align="left" valign="top">
807 <tbody>
808 <tr>
809 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
810 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
811 </td>
812 </tr>
813 <tr>
814 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
815 <td>number of floating point values in <em class="parameter"><code>floats</code></em>
816 </td>
817 </tr>
818 <tr>
819 <td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td>
820 <td>a matrix of floating point values</td>
821 </tr>
822 </tbody>
823 </table></div>
824 <p class="since">Since 0.8</p>
825 </div>
826 <hr>
827 <div class="refsect2">
828 <a name="clutter-value-get-shader-matrix"></a><h3>clutter_value_get_shader_matrix ()</h3>
829 <pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> *      clutter_value_get_shader_matrix     (<em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
830                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *length</code></em>);</pre>
831 <p>
832 Retrieves a matrix of floating point values stored inside
833 the passed <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>. <em class="parameter"><code>value</code></em> must have been initialized with
834 <code class="literal">CLUTTER_TYPE_SHADER_MATRIX</code>.
835 </p>
836 <div class="variablelist"><table border="0">
837 <col align="left" valign="top">
838 <tbody>
839 <tr>
840 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
841 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
842 </td>
843 </tr>
844 <tr>
845 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
846 <td>return location for the number of returned floating
847 point values, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
848 </td>
849 </tr>
850 <tr>
851 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
852 <td>the pointer to a matrix
853 of floating point values. The returned value is owned by the <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> and
854 should never be modified or freed. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
855 </td>
856 </tr>
857 </tbody>
858 </table></div>
859 <p class="since">Since 0.8</p>
860 </div>
861 </div>
862 <div class="refsect1">
863 <a name="clutter-Shaders.property-details"></a><h2>Property Details</h2>
864 <div class="refsect2">
865 <a name="ClutterShader--compiled"></a><h3>The <code class="literal">"compiled"</code> property</h3>
866 <pre class="programlisting">  "compiled"                 <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read</pre>
867 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
868 <h3 class="title">Warning</h3>
869 <p><code class="literal">ClutterShader:compiled</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
870 </div>
871 <p>
872 Whether the shader is compiled and linked, ready for use
873 in the GL context.
874 </p>
875 <p>Default value: FALSE</p>
876 <p class="since">Since 0.8</p>
877 </div>
878 <hr>
879 <div class="refsect2">
880 <a name="ClutterShader--enabled"></a><h3>The <code class="literal">"enabled"</code> property</h3>
881 <pre class="programlisting">  "enabled"                  <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
882 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
883 <h3 class="title">Warning</h3>
884 <p><code class="literal">ClutterShader:enabled</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
885 </div>
886 <p>
887 Whether the shader is currently used in the GL rendering pipeline.
888 </p>
889 <p>Default value: FALSE</p>
890 <p class="since">Since 0.6</p>
891 </div>
892 <hr>
893 <div class="refsect2">
894 <a name="ClutterShader--fragment-source"></a><h3>The <code class="literal">"fragment-source"</code> property</h3>
895 <pre class="programlisting">  "fragment-source"          <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
896 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
897 <h3 class="title">Warning</h3>
898 <p><code class="literal">ClutterShader:fragment-source</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
899 </div>
900 <p>
901 GLSL source code for the fragment shader part of the shader program.
902 </p>
903 <p>Default value: NULL</p>
904 <p class="since">Since 0.6</p>
905 </div>
906 <hr>
907 <div class="refsect2">
908 <a name="ClutterShader--vertex-source"></a><h3>The <code class="literal">"vertex-source"</code> property</h3>
909 <pre class="programlisting">  "vertex-source"            <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
910 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
911 <h3 class="title">Warning</h3>
912 <p><code class="literal">ClutterShader:vertex-source</code> has been deprecated since version 1.8 and should not be used in newly-written code. Use <a class="link" href="ClutterShaderEffect.html" title="ClutterShaderEffect"><span class="type">ClutterShaderEffect</span></a> instead.</p>
913 </div>
914 <p>
915 GLSL source code for the vertex shader part of the shader
916 program, if any
917 </p>
918 <p>Default value: NULL</p>
919 <p class="since">Since 0.6</p>
920 </div>
921 </div>
922 </div>
923 <div class="footer">
924 <hr>
925           Generated by GTK-Doc V1.18.1</div>
926 </body>
927 </html>