diff options
Diffstat (limited to 'docs/tmpl/pangocairo.sgml')
-rw-r--r-- | docs/tmpl/pangocairo.sgml | 441 |
1 files changed, 0 insertions, 441 deletions
diff --git a/docs/tmpl/pangocairo.sgml b/docs/tmpl/pangocairo.sgml deleted file mode 100644 index 32f3ca68..00000000 --- a/docs/tmpl/pangocairo.sgml +++ /dev/null @@ -1,441 +0,0 @@ -<!-- ##### 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 <math.h> -#<!-- -->include <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 < 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 == 240 */ - red = (1 + cos ((angle - 60) * G_PI / 180.)) / 2; - cairo_set_source_rgb (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, &width, &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; - char *filename; - cairo_status_t status; - cairo_surface_t *surface; - - if (argc != 2) - { - g_printerr ("Usage: cairosimple OUTPUT_FILENAME\n"); - return 1; - } - - filename = argv[1]; - - surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, - 2 * RADIUS, 2 * RADIUS); - cr = cairo_create (surface); - - - cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); - cairo_paint (cr); - draw_text (cr); - cairo_destroy (cr); - - status = cairo_surface_write_to_png (surface, filename); - cairo_surface_destroy (surface); - - if (status != CAIRO_STATUS_SUCCESS) - { - g_printerr ("Could not save png to '%s'\n", filename); - return 1; - } - - return 0; -} -</programlisting> -</example> -<figure id="rotated-example-output"> - <title>Output of <xref linkend="rotated-example"/></title> - <graphic fileref="rotated-text.png" format="PNG"/> -</figure> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### SECTION Image ##### --> - - -<!-- ##### STRUCT PangoCairoFont ##### --> -<para> - -</para> - - -<!-- ##### STRUCT PangoCairoFontMap ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION pango_cairo_font_map_get_default ##### --> -<para> - -</para> - -@void: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_font_map_set_default ##### --> -<para> - -</para> - -@fontmap: - - -<!-- ##### FUNCTION pango_cairo_font_map_new ##### --> -<para> - -</para> - -@void: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_font_map_new_for_font_type ##### --> -<para> - -</para> - -@fonttype: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_font_map_get_font_type ##### --> -<para> - -</para> - -@fontmap: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_font_map_set_resolution ##### --> -<para> - -</para> - -@fontmap: -@dpi: - - -<!-- ##### 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_font_get_scaled_font ##### --> -<para> - -</para> - -@font: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_context_set_resolution ##### --> -<para> - -</para> - -@context: -@dpi: - - -<!-- ##### FUNCTION pango_cairo_context_get_resolution ##### --> -<para> - -</para> - -@context: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_context_set_font_options ##### --> -<para> - -</para> - -@context: -@options: - - -<!-- ##### FUNCTION pango_cairo_context_get_font_options ##### --> -<para> - -</para> - -@context: -@Returns: - - -<!-- ##### USER_FUNCTION PangoCairoShapeRendererFunc ##### --> -<para> -Function type for rendering attributes of type %PANGO_ATTR_SHAPE -with Pango's Cairo renderer. -</para> - -@cr: a Cairo context with current point set to where the shape should - be rendered -@attr: the %PANGO_ATTR_SHAPE to render -@do_path: whether only the shape path should be appended to current - path of @cr and no filling/stroking done. This will be set - to %TRUE when called from pango_cairo_layout_path() and - pango_cairo_layout_line_path() rendering functions. -@data: user data passed to pango_cairo_context_set_shape_renderer() - - -<!-- ##### FUNCTION pango_cairo_context_set_shape_renderer ##### --> -<para> - -</para> - -@context: -@func: -@data: -@dnotify: - - -<!-- ##### FUNCTION pango_cairo_context_get_shape_renderer ##### --> -<para> - -</para> - -@context: -@data: -@Returns: - - -<!-- ##### FUNCTION pango_cairo_create_context ##### --> -<para> - -</para> - -@cr: -@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_glyph_string ##### --> -<para> - -</para> - -@cr: -@font: -@glyphs: - - -<!-- ##### FUNCTION pango_cairo_show_glyph_item ##### --> -<para> - -</para> - -@cr: -@text: -@glyph_item: - - -<!-- ##### FUNCTION pango_cairo_show_layout_line ##### --> -<para> - -</para> - -@cr: -@line: - - -<!-- ##### FUNCTION pango_cairo_show_layout ##### --> -<para> - -</para> - -@cr: -@layout: - - -<!-- ##### FUNCTION pango_cairo_show_error_underline ##### --> -<para> - -</para> - -@cr: -@x: -@y: -@width: -@height: - - -<!-- ##### FUNCTION pango_cairo_glyph_string_path ##### --> -<para> - -</para> - -@cr: -@font: -@glyphs: - - -<!-- ##### FUNCTION pango_cairo_layout_line_path ##### --> -<para> - -</para> - -@cr: -@line: - - -<!-- ##### FUNCTION pango_cairo_layout_path ##### --> -<para> - -</para> - -@cr: -@layout: - - -<!-- ##### FUNCTION pango_cairo_error_underline_path ##### --> -<para> - -</para> - -@cr: -@x: -@y: -@width: -@height: - - |