📄 pango-renderer.xml
字号:
<refentry id="PangoRenderer"><refmeta><refentrytitle role="top_of_page" id="PangoRenderer.top_of_page">PangoRenderer</refentrytitle><manvolnum>3</manvolnum><refmiscinfo>PANGO Library</refmiscinfo></refmeta><refnamediv><refname>PangoRenderer</refname><refpurpose>Rendering driver base class</refpurpose><!--[<xref linkend="desc" endterm="desc.title"/>]--></refnamediv><refsynopsisdiv id="PangoRenderer.synopsis" role="synopsis"><title role="synopsis.title">Synopsis</title><synopsis> <link linkend="PangoRenderer-struct">PangoRenderer</link>;enum <link linkend="PangoRenderPart">PangoRenderPart</link>;#define <link linkend="PANGO-TYPE-RENDER-PART:CAPS">PANGO_TYPE_RENDER_PART</link> <link linkend="PangoRendererClass">PangoRendererClass</link>;<link linkend="void">void</link> <link linkend="pango-renderer-draw-layout">pango_renderer_draw_layout</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoLayout">PangoLayout</link> *layout, <link linkend="int">int</link> x, <link linkend="int">int</link> y);<link linkend="void">void</link> <link linkend="pango-renderer-draw-layout-line">pango_renderer_draw_layout_line</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoLayoutLine">PangoLayoutLine</link> *line, <link linkend="int">int</link> x, <link linkend="int">int</link> y);<link linkend="void">void</link> <link linkend="pango-renderer-draw-glyphs">pango_renderer_draw_glyphs</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoFont">PangoFont</link> *font, <link linkend="PangoGlyphString">PangoGlyphString</link> *glyphs, <link linkend="int">int</link> x, <link linkend="int">int</link> y);<link linkend="void">void</link> <link linkend="pango-renderer-draw-rectangle">pango_renderer_draw_rectangle</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoRenderPart">PangoRenderPart</link> part, <link linkend="int">int</link> x, <link linkend="int">int</link> y, <link linkend="int">int</link> width, <link linkend="int">int</link> height);<link linkend="void">void</link> <link linkend="pango-renderer-draw-error-underline">pango_renderer_draw_error_underline</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="int">int</link> x, <link linkend="int">int</link> y, <link linkend="int">int</link> width, <link linkend="int">int</link> height);<link linkend="void">void</link> <link linkend="pango-renderer-draw-trapezoid">pango_renderer_draw_trapezoid</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoRenderPart">PangoRenderPart</link> part, <link linkend="double">double</link> y1_, <link linkend="double">double</link> x11, <link linkend="double">double</link> x21, <link linkend="double">double</link> y2, <link linkend="double">double</link> x12, <link linkend="double">double</link> x22);<link linkend="void">void</link> <link linkend="pango-renderer-draw-glyph">pango_renderer_draw_glyph</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoFont">PangoFont</link> *font, <link linkend="PangoGlyph">PangoGlyph</link> glyph, <link linkend="double">double</link> x, <link linkend="double">double</link> y);<link linkend="void">void</link> <link linkend="pango-renderer-activate">pango_renderer_activate</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer);<link linkend="void">void</link> <link linkend="pango-renderer-deactivate">pango_renderer_deactivate</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer);<link linkend="void">void</link> <link linkend="pango-renderer-part-changed">pango_renderer_part_changed</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoRenderPart">PangoRenderPart</link> part);<link linkend="void">void</link> <link linkend="pango-renderer-set-color">pango_renderer_set_color</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoRenderPart">PangoRenderPart</link> part, const <link linkend="PangoColor">PangoColor</link> *color);<link linkend="PangoColor">PangoColor</link>* <link linkend="pango-renderer-get-color">pango_renderer_get_color</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, <link linkend="PangoRenderPart">PangoRenderPart</link> part);<link linkend="void">void</link> <link linkend="pango-renderer-set-matrix">pango_renderer_set_matrix</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer, const <link linkend="PangoMatrix">PangoMatrix</link> *matrix);const <link linkend="PangoMatrix">PangoMatrix</link>* <link linkend="pango-renderer-get-matrix">pango_renderer_get_matrix</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer);<link linkend="PangoLayout">PangoLayout</link>* <link linkend="pango-renderer-get-layout">pango_renderer_get_layout</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer);<link linkend="PangoLayoutLine">PangoLayoutLine</link>* <link linkend="pango-renderer-get-layout-line">pango_renderer_get_layout_line</link> (<link linkend="PangoRenderer">PangoRenderer</link> *renderer);</synopsis></refsynopsisdiv><refsect1 id="PangoRenderer.object-hierarchy" role="object_hierarchy"><title role="object_hierarchy.title">Object Hierarchy</title><synopsis> <link linkend="GObject">GObject</link> +----PangoRenderer +----<link linkend="PangoXftRenderer">PangoXftRenderer</link></synopsis></refsect1><refsect1 id="PangoRenderer.description" role="desc"><title role="desc.title">Description</title><para><link linkend="PangoRenderer"><type>PangoRenderer</type></link> is a base class that contains the necessary logic forrendering a <link linkend="PangoLayout"><type>PangoLayout</type></link> or <link linkend="PangoLayoutLine"><type>PangoLayoutLine</type></link>. By subclassing<link linkend="PangoRenderer"><type>PangoRenderer</type></link> and overriding operations such as <parameter>draw_glyphs</parameter> and<parameter>draw_rectangle</parameter>, renderers for particular font backends anddestinations can be created.</para></refsect1><refsect1 id="PangoRenderer.details" role="details"><title role="details.title">Details</title><refsect2 id="PangoRenderer-struct" role="struct"><title>PangoRenderer</title><indexterm zone="PangoRenderer-struct" role="1.8"><primary>PangoRenderer</primary></indexterm><programlisting>typedef struct { PangoMatrix *matrix; /* May be NULL */} PangoRenderer;</programlisting><para><link linkend="PangoRenderer"><type>PangoRenderer</type></link> is a base class for objects that are used torender Pango objects such as <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link> and<link linkend="PangoLayout"><type>PangoLayout</type></link>.</para><para></para><variablelist role="struct"><varlistentry><term><link linkend="PangoMatrix">PangoMatrix</link> *<structfield>matrix</structfield>;</term><listitem><simpara> the current transformation matrix for the Renderer; may be <link linkend="NULL:CAPS"><literal>NULL</literal></link>, which should be treated the same as the identity matrix.</simpara></listitem></varlistentry></variablelist><para role="since">Since 1.8</para></refsect2><refsect2 id="PangoRenderPart" role="enum" condition="since:1.8"><title>enum PangoRenderPart</title><indexterm zone="PangoRenderPart" role="1.8"><primary>PangoRenderPart</primary></indexterm><programlisting>typedef enum{ PANGO_RENDER_PART_FOREGROUND, PANGO_RENDER_PART_BACKGROUND, PANGO_RENDER_PART_UNDERLINE, PANGO_RENDER_PART_STRIKETHROUGH} PangoRenderPart;</programlisting><para><link linkend="PangoRenderPart"><type>PangoRenderPart</type></link> defines different items to render for suchpurposes as setting colors.</para><para></para><variablelist role="enum"><varlistentry id="PANGO-RENDER-PART-FOREGROUND:CAPS" role="constant"><term><literal>PANGO_RENDER_PART_FOREGROUND</literal></term><listitem><simpara> the text itself</simpara></listitem></varlistentry><varlistentry id="PANGO-RENDER-PART-BACKGROUND:CAPS" role="constant"><term><literal>PANGO_RENDER_PART_BACKGROUND</literal></term><listitem><simpara> the area behind the text</simpara></listitem></varlistentry><varlistentry id="PANGO-RENDER-PART-UNDERLINE:CAPS" role="constant"><term><literal>PANGO_RENDER_PART_UNDERLINE</literal></term><listitem><simpara> underlines</simpara></listitem></varlistentry><varlistentry id="PANGO-RENDER-PART-STRIKETHROUGH:CAPS" role="constant"><term><literal>PANGO_RENDER_PART_STRIKETHROUGH</literal></term><listitem><simpara> strikethrough lines</simpara></listitem></varlistentry></variablelist><para role="since">Since 1.8</para></refsect2><refsect2 id="PANGO-TYPE-RENDER-PART:CAPS" role="macro"><title>PANGO_TYPE_RENDER_PART</title><indexterm zone="PANGO-TYPE-RENDER-PART:CAPS"><primary>PANGO_TYPE_RENDER_PART</primary></indexterm><programlisting>#define PANGO_TYPE_RENDER_PART (pango_render_part_get_type())</programlisting><para>The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoRenderPart"><type>PangoRenderPart</type></link>.</para></refsect2><refsect2 id="PangoRendererClass" role="struct" condition="since:1.8"><title>PangoRendererClass</title><indexterm zone="PangoRendererClass" role="1.8"><primary>PangoRendererClass</primary></indexterm><programlisting>typedef struct { /* All of the following have default implementations * and take as coordinates user coordinates in Pango units */ void (*draw_glyphs) (PangoRenderer *renderer, PangoFont *font, PangoGlyphString *glyphs, int x, int y); void (*draw_rectangle) (PangoRenderer *renderer, PangoRenderPart part, int x, int y, int width, int height); void (*draw_error_underline) (PangoRenderer *renderer, int x, int y, int width, int height); /* Nothing is drawn for shaped glyphs unless this is implemented */ void (*draw_shape) (PangoRenderer *renderer, PangoAttrShape *attr, int x, int y); /* These two must be implemented and take coordinates in * device space as doubles. */ void (*draw_trapezoid) (PangoRenderer *renderer, PangoRenderPart part, double y1_, double x11, double x21, double y2, double x12, double x22); void (*draw_glyph) (PangoRenderer *renderer, PangoFont *font, PangoGlyph glyph, double x, double y); /* Notification of change in rendering attributes */ void (*part_changed) (PangoRenderer *renderer, PangoRenderPart part); /* Paired around drawing operations */ void (*begin) (PangoRenderer *renderer); void (*end) (PangoRenderer *renderer); /* Hooks into the details of layout rendering */ void (*prepare_run) (PangoRenderer *renderer, PangoLayoutRun *run);} PangoRendererClass;</programlisting><para>Class structure for <link linkend="PangoRenderer"><type>PangoRenderer</type></link>.</para><para></para><variablelist role="struct"><varlistentry><term><structfield>draw_glyphs</structfield> ()</term><listitem><simpara> draws a <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link></simpara></listitem>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -