summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/Makefile.am8
-rw-r--r--docs/pango-docs.sgml2
-rw-r--r--docs/pango-sections.txt22
-rw-r--r--docs/pango.types3
-rw-r--r--docs/rotated-text.pngbin0 -> 23044 bytes
-rw-r--r--docs/tmpl/pango-renderer.sgml4
-rw-r--r--docs/tmpl/pangocairo.sgml248
-rw-r--r--docs/tmpl/pangofc-fontmap.sgml1
-rw-r--r--docs/tmpl/text-attributes.sgml14
-rw-r--r--docs/tmpl/xft-fonts.sgml2
10 files changed, 296 insertions, 8 deletions
diff --git a/docs/Makefile.am b/docs/Makefile.am
index e04dfaed..6d55e7f3 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -25,6 +25,8 @@ IGNORE_HFILES= \
module-defs.h \
opentype \
modules.h \
+ pangocairo-private.h \
+ pangocairo-fc.h \
pango-engine-private.h \
pango-impl-utils.h \
pango-glyph-item-private.h \
@@ -55,6 +57,9 @@ INCLUDES = \
GTKDOC_LIBS = \
$(top_builddir)/pango/libpangoxft-1.0.la
+if HAVE_CAIRO
+GTKDOC_LIBS += $(top_builddir)/pango/libpangocairo-1.0.la
+endif
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=--sgml-mode --output-format=xml
@@ -68,7 +73,8 @@ content_files = \
# Images to copy into HTML directory
HTML_IMAGES = \
- layout.gif
+ layout.gif \
+ rotated-text.png
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=
diff --git a/docs/pango-docs.sgml b/docs/pango-docs.sgml
index 21498e6e..aa026ff3 100644
--- a/docs/pango-docs.sgml
+++ b/docs/pango-docs.sgml
@@ -17,6 +17,7 @@
<!ENTITY pango-Win32-Fonts-and-Rendering SYSTEM "xml/win32-fonts.xml">
<!ENTITY pango-FreeType-Fonts-and-Rendering SYSTEM "xml/freetype-fonts.xml">
<!ENTITY pango-Xft-Fonts-and-Rendering SYSTEM "xml/xft-fonts.xml">
+<!ENTITY pangocairo SYSTEM "xml/pangocairo.xml">
<!ENTITY PangoFcFontMap SYSTEM "xml/pangofc-fontmap.xml">
<!ENTITY PangoFcFont SYSTEM "xml/pangofc-font.xml">
<!ENTITY PangoFcDecoder SYSTEM "xml/pangofc-decoder.xml">
@@ -48,6 +49,7 @@
&pango-Win32-Fonts-and-Rendering;
&pango-FreeType-Fonts-and-Rendering;
&pango-Xft-Fonts-and-Rendering;
+ &pangocairo;
&pango-X-Fonts-and-Rendering;
</chapter>
diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt
index 11cfe179..1972e9b7 100644
--- a/docs/pango-sections.txt
+++ b/docs/pango-sections.txt
@@ -769,6 +769,28 @@ pango_xft_renderer_get_type
</SECTION>
<SECTION>
+<TITLE>Cairo Rendering</TITLE>
+<FILE>pangocairo</FILE>
+PangoCairoFontMap
+pango_cairo_font_map_new
+pango_cairo_font_map_get_default
+pango_cairo_font_map_set_resolution
+pango_cairo_font_map_get_resolution
+pango_cairo_font_map_create_context
+pango_cairo_update_context
+pango_cairo_create_layout
+pango_cairo_update_layout
+pango_cairo_show_glyphs
+pango_cairo_show_layout_line
+pango_cairo_show_layout
+<SUBSECTION Standard>
+PANGO_CAIRO_FONT_MAP
+PANGO_IS_CAIRO_FONT_MAP
+PANGO_TYPE_CAIRO_FONT_MAP
+pango_cairo_font_map_get_type
+</SECTION>
+
+<SECTION>
<FILE>pangofc-fontmap</FILE>
<TITLE>PangoFcFontMap</TITLE>
PangoFcFontMap
diff --git a/docs/pango.types b/docs/pango.types
index 5cda42a7..818e81b8 100644
--- a/docs/pango.types
+++ b/docs/pango.types
@@ -1,4 +1,5 @@
#include <pango/pango.h>
+#include <pango/pangocairo.h>
#include <pango/pangofc-font.h>
#include <pango/pangofc-fontmap.h>
#include <pango/pangoft2.h>
@@ -19,5 +20,5 @@ pango_fc_font_map_get_type
pango_fc_decoder_get_type
pango_ft2_font_map_get_type
pango_xft_font_get_type
-
+pango_cairo_font_map_get_type
diff --git a/docs/rotated-text.png b/docs/rotated-text.png
new file mode 100644
index 00000000..b29682e8
--- /dev/null
+++ b/docs/rotated-text.png
Binary files differ
diff --git a/docs/tmpl/pango-renderer.sgml b/docs/tmpl/pango-renderer.sgml
index adb8f555..f88a679b 100644
--- a/docs/tmpl/pango-renderer.sgml
+++ b/docs/tmpl/pango-renderer.sgml
@@ -124,12 +124,14 @@ destinations can be created.
@renderer:
@part:
-@y1:
+@y1_:
@x11:
@x21:
@y2:
@x12:
@x22:
+<!-- # Unused Parameters # -->
+@y1:
<!-- ##### FUNCTION pango_renderer_draw_glyph ##### -->
diff --git a/docs/tmpl/pangocairo.sgml b/docs/tmpl/pangocairo.sgml
new file mode 100644
index 00000000..723a4a09
--- /dev/null
+++ b/docs/tmpl/pangocairo.sgml
@@ -0,0 +1,248 @@
+<!-- ##### SECTION Title ##### -->
+Cairo Rendering
+
+<!-- ##### SECTION Short_Description ##### -->
+Rendering with the Cairo backend
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+The <ulink url="http://cairographics.org">Cairo library</ulink> is a
+vector graphics library with a powerful rendering model. It has such
+features as anti-aliased primitives, alpha-compositing, and
+gradients. Multiple backends for Cairo are available, to allow
+rendering to images, to PDF files, and to the screen on X and on other
+windowing systems. The functions in this section allow using Pango
+to render to Cairo surfaces.
+</para>
+<para>
+Using Pango with Cairo is straightforward. A #PangoContext created
+with pango_cairo_font_map_create_context() can be used on any
+Cairo context (cairo_t), but needs to be updated to match the
+current transformation matrix and target surface of the Cairo context
+using pango_cairo_update_context(). The convenience functions
+pango_cairo_create_layout() and pango_cairo_update_layout() handle
+the common case where the program doesn't need to manipulate the
+properties of the #PangoContext.
+</para>
+<para>
+When you get the metrics of a layout or of a piece of a layout using
+functions such as pango_layout_get_extents(), the reported metrics
+are in user-space coordinates. If a piece of text is 10 units long,
+and you call cairo_scale (cr, 2.0), it still is more-or-less 10
+units long. However, the results will be affected by hinting
+(that is, the process of adjusting the text to look good on the
+pixel grid), so you shouldn't assume they are completely independent
+of the current transformation matrix. Note that the basic metrics
+functions in Pango report results in integer Pango units. To get
+to the floating point units used in Cairo divide by %PANGO_SCALE.
+</para>
+<example id="rotated-example">
+<title>Using Pango with Cairo</title>
+<programlisting>
+#include &lt;math.h>
+#include &lt;pango/pangocairo.h>
+
+static void
+draw_text (cairo_t *cr)
+{
+#define RADIUS 150
+#define N_WORDS 10
+#define FONT "Sans Bold 27"
+
+ PangoLayout *layout;
+ PangoFontDescription *desc;
+ int i;
+
+ /* Center coordinates on the middle of the region we are drawing
+ */
+ cairo_translate (cr, RADIUS, RADIUS);
+
+ /* Create a PangoLayout, set the font and text */
+ layout = pango_cairo_create_layout (cr);
+
+ pango_layout_set_text (layout, "Text", -1);
+ desc = pango_font_description_from_string (FONT);
+ pango_layout_set_font_description (layout, desc);
+ pango_font_description_free (desc);
+
+ /* Draw the layout N_WORDS times in a circle */
+ for (i = 0; i &lt; N_WORDS; i++)
+ {
+ int width, height;
+ double angle = (360. * i) / N_WORDS;
+ double red;
+
+ cairo_save (cr);
+
+ /* Gradient from red at angle == 60 to blue at angle == 300 */
+ red = (1 + cos ((angle - 60) * G_PI / 180.)) / 2;
+ cairo_set_rgb_color (cr, red, 0, 1.0 - red);
+
+ cairo_rotate (cr, angle * G_PI / 180.);
+
+ /* Inform Pango to re-layout the text with the new transformation */
+ pango_cairo_update_layout (cr, layout);
+
+ pango_layout_get_size (layout, &amp;width, &amp;height);
+ cairo_move_to (cr, - ((double)width / PANGO_SCALE) / 2, - RADIUS);
+ pango_cairo_show_layout (cr, layout);
+
+ cairo_restore (cr);
+ }
+
+ /* free the layout object */
+ g_object_unref (layout);
+}
+
+int main (int argc, char **argv)
+{
+ cairo_t *cr;
+ FILE *f;
+
+ if (argc != 2)
+ {
+ g_printerr ("Usage: cairo-example OUTPUT_FILENAME\n");
+ return 1;
+ }
+
+ f = fopen (argv[1], "w");
+ if (!f)
+ {
+ g_printerr ("Usage: cannot open '%s'\n", argv[1]);
+ return 1;
+ }
+
+ cr = cairo_create();
+ cairo_set_target_png (cr, f,
+ CAIRO_FORMAT_ARGB32,
+ 2 * RADIUS, 2 * RADIUS);
+
+ cairo_set_rgb_color (cr, 1.0, 1.0, 1.0);
+ cairo_rectangle (cr, 0, 0, 2 * RADIUS, 2 * RADIUS);
+ cairo_fill (cr);
+ draw_text (cr);
+
+ cairo_destroy (cr);
+ fclose (f);
+
+ return 0;
+}
+</programlisting>
+</example>
+<figure>
+ <title>Output of <xref linkend="rotated-example"/></title>
+ <graphic fileref="rotated-text.png" format="PNG"/>
+</figure>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT PangoCairoFontMap ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION pango_cairo_font_map_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION pango_cairo_font_map_get_default ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION pango_cairo_font_map_set_resolution ##### -->
+<para>
+
+</para>
+
+@fontmap:
+@dpi:
+<!-- # Unused Parameters # -->
+@dpi_x:
+@dpi_y:
+
+
+<!-- ##### FUNCTION pango_cairo_font_map_get_resolution ##### -->
+<para>
+
+</para>
+
+@fontmap:
+@Returns:
+
+
+<!-- ##### FUNCTION pango_cairo_font_map_create_context ##### -->
+<para>
+
+</para>
+
+@fontmap:
+@Returns:
+
+
+<!-- ##### FUNCTION pango_cairo_update_context ##### -->
+<para>
+
+</para>
+
+@cr:
+@context:
+
+
+<!-- ##### FUNCTION pango_cairo_create_layout ##### -->
+<para>
+
+</para>
+
+@cr:
+@Returns:
+
+
+<!-- ##### FUNCTION pango_cairo_update_layout ##### -->
+<para>
+
+</para>
+
+@cr:
+@layout:
+
+
+<!-- ##### FUNCTION pango_cairo_show_glyphs ##### -->
+<para>
+
+</para>
+
+@cr:
+@font:
+@glyphs:
+
+
+<!-- ##### FUNCTION pango_cairo_show_layout_line ##### -->
+<para>
+
+</para>
+
+@cr:
+@line:
+
+
+<!-- ##### FUNCTION pango_cairo_show_layout ##### -->
+<para>
+
+</para>
+
+@cr:
+@layout:
+
+
diff --git a/docs/tmpl/pangofc-fontmap.sgml b/docs/tmpl/pangofc-fontmap.sgml
index db72b732..4f919ca3 100644
--- a/docs/tmpl/pangofc-fontmap.sgml
+++ b/docs/tmpl/pangofc-fontmap.sgml
@@ -44,6 +44,7 @@ Fontconfig-based backend involves deriving from both
@default_substitute:
@new_font:
+@get_render_key:
<!-- ##### FUNCTION pango_fc_font_description_from_pattern ##### -->
<para>
diff --git a/docs/tmpl/text-attributes.sgml b/docs/tmpl/text-attributes.sgml
index ecbf7d9e..7c5fa9da 100644
--- a/docs/tmpl/text-attributes.sgml
+++ b/docs/tmpl/text-attributes.sgml
@@ -47,6 +47,7 @@ attribute is listed in parentheses after the description.
@PANGO_ATTR_LETTER_SPACING:
@PANGO_ATTR_UNDERLINE_COLOR:
@PANGO_ATTR_STRIKETHROUGH_COLOR:
+@PANGO_ATTR_ABSOLUTE_SIZE:
<!-- ##### MACRO PANGO_TYPE_ATTR_TYPE ##### -->
<para>
@@ -151,12 +152,17 @@ impose shape restrictions.
<!-- ##### STRUCT PangoAttrSize ##### -->
<para>
-
+The #PangoAttrShape structure is used to represent attributes which
+set font size.
</para>
-@attr:
-@size:
-@absolute:
+@attr: the common portion of the attribute
+@size: size of font, in units of 1/PANGO_SCALE of a point (for
+ PANGO_ATTR_SIZE) or of a device uni (for PANGO_ATTR_ABSOLUTE_SIZE)
+@absolute: whether the font size is in device units or points.
+ This field is only present for compatibility with Pango-1.8.0
+ (PANGO_ATTR_ABSOLUTE_SIZE was added in 1.8.1); and always will
+ be %FALSE for PANGO_ATTR_SIZE and %TRUE for PANGO_ATTR_ABSOLUTE_SIZE.
<!-- ##### FUNCTION pango_parse_markup ##### -->
<para>
diff --git a/docs/tmpl/xft-fonts.sgml b/docs/tmpl/xft-fonts.sgml
index 50a6e02a..fc4d6cae 100644
--- a/docs/tmpl/xft-fonts.sgml
+++ b/docs/tmpl/xft-fonts.sgml
@@ -10,7 +10,7 @@ The Xft library is a library for displaying fonts on the X window
system; internally it uses the fontconfig library to locate font
files, and the FreeType library to load and render fonts. The
Xft backend is the recommended Pango font backend for screen
-display with X.
+display with X. (The <link linkend="pango-Cairo-Rendering">Cairo back end</link> is another possibility.)
</para>
<para>
Using the Xft backend is generally straightforward;