cookbook: Include the textures-reflection example code
Add a section at the end of the recipe containing the full code of the example.
This commit is contained in:
parent
76d8119a7f
commit
0dac5e0557
@ -1,7 +1,8 @@
|
|||||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||||
|
|
||||||
<chapter id="textures">
|
<chapter id="textures"
|
||||||
|
xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||||
<title>Textures</title>
|
<title>Textures</title>
|
||||||
|
|
||||||
<epigraph>
|
<epigraph>
|
||||||
@ -525,25 +526,12 @@ main (int argc, char *argv[])
|
|||||||
static void
|
static void
|
||||||
_clone_paint_cb (ClutterActor *actor)
|
_clone_paint_cb (ClutterActor *actor)
|
||||||
{
|
{
|
||||||
ClutterActor *source;
|
/* ... */
|
||||||
ClutterActorBox box;
|
|
||||||
CoglHandle material;
|
|
||||||
gfloat width, height;
|
|
||||||
guint8 opacity;
|
|
||||||
CoglColor color_1, color_2;
|
|
||||||
CoglTextureVertex vertices[4];
|
|
||||||
|
|
||||||
/* if we don't have a source actor, don't paint */
|
/* get the Cogl material of the source texture */
|
||||||
source = clutter_clone_get_source (CLUTTER_CLONE (actor));
|
|
||||||
if (source == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* if the source texture does not have any content, don't paint */
|
|
||||||
material = clutter_texture_get_cogl_material (CLUTTER_TEXTURE (source));
|
material = clutter_texture_get_cogl_material (CLUTTER_TEXTURE (source));
|
||||||
if (material == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* set the size of the reflection to be the same as the source */
|
/* get the size of the actor, which will be used to size the reflection */
|
||||||
clutter_actor_get_allocation_box (actor, &box);
|
clutter_actor_get_allocation_box (actor, &box);
|
||||||
clutter_actor_box_get_size (&box, &width, &height);
|
clutter_actor_box_get_size (&box, &width, &height);
|
||||||
|
|
||||||
@ -558,7 +546,7 @@ _clone_paint_cb (ClutterActor *actor)
|
|||||||
cogl_color_set_from_4f (&color_2, 1.0, 1.0, 1.0, 0.0);
|
cogl_color_set_from_4f (&color_2, 1.0, 1.0, 1.0, 0.0);
|
||||||
cogl_color_premultiply (&color_2);
|
cogl_color_premultiply (&color_2);
|
||||||
|
|
||||||
/* now describe the four vertices of the quad; since it has
|
/* describe the four vertices of the quad; since it has
|
||||||
* to be a reflection, we need to invert it as well
|
* to be a reflection, we need to invert it as well
|
||||||
*/
|
*/
|
||||||
vertices[0].x = 0; vertices[0].y = 0; vertices[0].z = 0;
|
vertices[0].x = 0; vertices[0].y = 0; vertices[0].z = 0;
|
||||||
@ -581,9 +569,7 @@ _clone_paint_cb (ClutterActor *actor)
|
|||||||
cogl_set_source (material);
|
cogl_set_source (material);
|
||||||
cogl_polygon (vertices, 4, TRUE);
|
cogl_polygon (vertices, 4, TRUE);
|
||||||
|
|
||||||
out:
|
/* ... */
|
||||||
/* prevent the default clone handler from running */
|
|
||||||
g_signal_stop_emission_by_name (actor, "paint");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -703,6 +689,20 @@ typedef struct _CoglTextureVertex {
|
|||||||
for this operation.</para></note>
|
for this operation.</para></note>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Full example</title>
|
||||||
|
|
||||||
|
<example id="textures-reflection-example">
|
||||||
|
<title>Creating a glassy reflection of a texture</title>
|
||||||
|
<programlisting>
|
||||||
|
<xi:include href="examples/textures-reflection.c" parse="text">
|
||||||
|
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
|
||||||
|
</xi:include>
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
</section>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</chapter>
|
</chapter>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user