类
PangoRenderer
自:1.8 起
描述 [src]
abstract class Pango.Renderer : GObject.Object
{
PangoMatrix* matrix
}
PangoRenderer
是可呈现作为 PangoGlyphString
或 PangoLayout
文本的对象的基本类。
通过对 PangoRenderer
进行子类化并覆盖 draw_glyphs
和 draw_rectangle
等操作,可创建特定字体后端和目标的渲染器。
自以下版本提供:1.8
实例方法
pango_renderer_draw_glyph_item
使用指定的 PangoRenderer
绘制 glyph_item
中的字形,如果输出格式支持,则在输出中嵌入与字形关联的文本。
自:1.22 起
信号
从 GObject(1)继承的信号
GObject::notify
当某个属性通过 g_object_set_property()、g_object_set() 等设置其值时,将在对象上发出 notify 信号。
类结构
struct PangoRendererClass {
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
);
void (* draw_shape) (
PangoRenderer* renderer,
PangoAttrShape* attr,
int x,
int y
);
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
);
void (* part_changed) (
PangoRenderer* renderer,
PangoRenderPart part
);
void (* begin) (
PangoRenderer* renderer
);
void (* end) (
PangoRenderer* renderer
);
void (* prepare_run) (
PangoRenderer* renderer,
PangoLayoutRun* run
);
void (* draw_glyph_item) (
PangoRenderer* renderer,
const char* text,
PangoGlyphItem* glyph_item,
int x,
int y
);
void (* _pango_reserved2) (
void
);
void (* _pango_reserved3) (
void
);
void (* _pango_reserved4) (
void
);
}
PangoRenderer
的类结构。
以下 vfunc 使用 Pango 单位中的用户空间坐标,并具有默认实现: - draw_glyphs - draw_rectangle - draw_error_underline - draw_shape - draw_glyph_item
默认 draw_shape 实现不绘制任何内容。
以下 vfunc 使用浮点数参数作为设备空间坐标,且必须实现: - draw_trapezoid - draw_glyph。
成员
draw_glyphs: void (* draw_glyphs) ( PangoRenderer* renderer, PangoFont* font, PangoGlyphString* glyphs, int x, int y )
绘制
PangoGlyphString
。draw_rectangle: void (* draw_rectangle) ( PangoRenderer* renderer, PangoRenderPart part, int x, int y, int width, int height )
绘制一块矩形。
draw_error_underline: void (* draw_error_underline) ( PangoRenderer* renderer, int x, int y, int width, int height )
绘制一条曲线,用以大致覆盖给定矩形,其样式类似于用于指示拼写错误的下划线。
draw_shape: void (* draw_shape) ( PangoRenderer* renderer, PangoAttrShape* attr, int x, int y )
绘制使用
PangoAttrShape
成形的字形内容x
、y
是基线左边缘的坐标,以用户坐标表示。draw_trapezoid: void (* draw_trapezoid) ( PangoRenderer* renderer, PangoRenderPart part, double y1_, double x11, double x21, double y2, double x12, double x22 )
绘制梯形的填充区域。
draw_glyph: void (* draw_glyph) ( PangoRenderer* renderer, PangoFont* font, PangoGlyph glyph, double x, double y )
绘制单个字形。
part_changed: void (* part_changed) ( PangoRenderer* renderer, PangoRenderPart part )
在渲染属性更改时执行渲染器特定处理。
begin: void (* begin) ( PangoRenderer* renderer )
在绘制之前执行渲染器特定的初始化。
end: void (* end) ( PangoRenderer* renderer )
在绘制之后执行渲染器特定的清理。
prepare_run: void (* prepare_run) ( PangoRenderer* renderer, PangoLayoutRun* run )
针对新 run 更新渲染器。
draw_glyph_item: void (* draw_glyph_item) ( PangoRenderer* renderer, const char* text, PangoGlyphItem* glyph_item, int x, int y )
绘制
PangoGlyphItem
。_pango_reserved2: void (* _pango_reserved2) ( void )
无可用说明。
_pango_reserved3: void (* _pango_reserved3) ( void )
无可用说明。
_pango_reserved4: void (* _pango_reserved4) ( void )
无可用说明。
虚拟方法
Pango.RendererClass.draw_glyph_item
使用指定的 PangoRenderer
绘制 glyph_item
中的字形,如果输出格式支持,则在输出中嵌入与字形关联的文本。
自:1.22 起