cookbook: Add an empty recipe for shadows under text
Currently, it's just an example and an image, but it should be easy to flesh it out properly for the "Text" chapter.
This commit is contained in:
parent
bb3dc013bf
commit
90b74458d2
@ -34,6 +34,7 @@ IMAGE_FILES = \
|
||||
images/textures-reflection.png \
|
||||
images/actors-opacity.png \
|
||||
images/actors-opacity-container-affects-opacity.png \
|
||||
images/text-shadow.png \
|
||||
$(NULL)
|
||||
VIDEO_FILES = \
|
||||
videos/animations-fading-out.ogv \
|
||||
|
@ -43,6 +43,7 @@
|
||||
<xi:include href="events.xml" />
|
||||
<xi:include href="textures.xml" />
|
||||
<xi:include href="animations.xml" />
|
||||
<xi:include href="text.xml" />
|
||||
|
||||
<appendix id="contributing">
|
||||
<title>Contributing to this document</title>
|
||||
|
1
doc/cookbook/examples/.gitignore
vendored
1
doc/cookbook/examples/.gitignore
vendored
@ -1 +1,2 @@
|
||||
/text-shadow
|
||||
/textures-reflection
|
||||
|
@ -4,6 +4,7 @@ NULL =
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
textures-reflection \
|
||||
text-shadow \
|
||||
$(NULL)
|
||||
|
||||
INCLUDES = \
|
||||
@ -26,3 +27,5 @@ AM_CFLAGS = \
|
||||
AM_LDFLAGS = $(CLUTTER_LIBS)
|
||||
|
||||
textures_reflection_SOURCES = textures-reflection.c
|
||||
|
||||
text_shadow_SOURCES = text-shadow.c
|
||||
|
59
doc/cookbook/examples/text-shadow.c
Normal file
59
doc/cookbook/examples/text-shadow.c
Normal file
@ -0,0 +1,59 @@
|
||||
#include <stdlib.h>
|
||||
#include <cogl/cogl.h>
|
||||
#include <cogl-pango.h>
|
||||
#include <clutter/clutter.h>
|
||||
|
||||
#define SHADOW_X_OFFSET 3
|
||||
#define SHADOW_Y_OFFSET 3
|
||||
|
||||
static void
|
||||
_text_paint_cb (ClutterActor *actor)
|
||||
{
|
||||
ClutterText *text = CLUTTER_TEXT (actor);
|
||||
|
||||
ClutterActorBox alloc = { 0, };
|
||||
clutter_actor_get_allocation_box (actor, &alloc);
|
||||
|
||||
PangoLayout *layout;
|
||||
layout = clutter_text_get_layout (text);
|
||||
|
||||
ClutterColor text_color = { 0, };
|
||||
clutter_text_get_color (text, &text_color);
|
||||
|
||||
guint8 real_opacity;
|
||||
real_opacity = clutter_actor_get_paint_opacity (actor)
|
||||
* text_color.alpha
|
||||
/ 255;
|
||||
|
||||
CoglColor color;
|
||||
cogl_color_set_from_4ub (&color, 0xcc, 0xcc, 0xcc, real_opacity);
|
||||
cogl_pango_render_layout (layout, SHADOW_X_OFFSET, SHADOW_Y_OFFSET, &color, 0);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
clutter_init (&argc, &argv);
|
||||
|
||||
ClutterActor *stage;
|
||||
|
||||
stage = clutter_stage_new ();
|
||||
clutter_stage_set_title (CLUTTER_STAGE (stage), "Text shadow");
|
||||
g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL);
|
||||
|
||||
ClutterActor *text;
|
||||
text = clutter_text_new ();
|
||||
clutter_text_set_text (CLUTTER_TEXT (text), "Hello, World!");
|
||||
clutter_text_set_font_name (CLUTTER_TEXT (text), "Sans 64px");
|
||||
clutter_actor_add_constraint (text, clutter_align_constraint_new (stage, CLUTTER_ALIGN_X_AXIS, 0.5));
|
||||
clutter_actor_add_constraint (text, clutter_align_constraint_new (stage, CLUTTER_ALIGN_Y_AXIS, 0.5));
|
||||
g_signal_connect (text, "paint", G_CALLBACK (_text_paint_cb), NULL);
|
||||
|
||||
clutter_container_add (CLUTTER_CONTAINER (stage), text, NULL);
|
||||
|
||||
clutter_actor_show (stage);
|
||||
|
||||
clutter_main ();
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
BIN
doc/cookbook/images/text-shadow.png
Normal file
BIN
doc/cookbook/images/text-shadow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
40
doc/cookbook/text.xml
Normal file
40
doc/cookbook/text.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
|
||||
<chapter id="text">
|
||||
<title>Text</title>
|
||||
|
||||
<epigraph>
|
||||
<attribution>Antoine de Saint-Exupery</attribution>
|
||||
<para>A rock pile ceases to be a rock pile the moment a single man
|
||||
contemplates it, bearing within him the image of a cathedral.</para>
|
||||
</epigraph>
|
||||
|
||||
<section id="text-introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
</section>
|
||||
|
||||
<section id="text-shadow">
|
||||
<title>Drawing a shadow under the text</title>
|
||||
|
||||
<section>
|
||||
<title>Problem</title>
|
||||
|
||||
<para>You want to draw a shadow under the text displayed by a
|
||||
ClutterText actor.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Solution</title>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Discussion</title>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
</chapter>
|
Loading…
Reference in New Issue
Block a user