Win32 Fonts and Rendering

Win32 Fonts and Rendering — Functions for shape engines to manipulate Win32 fonts

Synopsis




#define     PANGO_RENDER_TYPE_WIN32
PangoContext* pango_win32_get_context       (void);
void        pango_win32_render              (HDC hdc,
                                             PangoFont *font,
                                             PangoGlyphString *glyphs,
                                             gint x,
                                             gint y);
void        pango_win32_render_layout_line  (HDC hdc,
                                             PangoLayoutLine *line,
                                             int x,
                                             int y);
void        pango_win32_render_layout       (HDC hdc,
                                             PangoLayout *layout,
                                             int x,
                                             int y);
PangoGlyph  pango_win32_get_unknown_glyph   (PangoFont *font,
                                             gunichar wc);
gint        pango_win32_font_get_glyph_index
                                            (PangoFont *font,
                                             gunichar wc);
gboolean    pango_win32_get_debug_flag      (void);
HDC         pango_win32_get_dc              (void);
struct      PangoWin32FontCache;
PangoWin32FontCache* pango_win32_font_cache_new
                                            (void);
void        pango_win32_font_cache_free     (PangoWin32FontCache *cache);
HFONT       pango_win32_font_cache_load     (PangoWin32FontCache *cache,
                                             const LOGFONT *logfont);
void        pango_win32_font_cache_unload   (PangoWin32FontCache *cache,
                                             HFONT hfont);
PangoFontMap* pango_win32_font_map_for_display
                                            (void);
void        pango_win32_shutdown_display    (void);
PangoWin32FontCache* pango_win32_font_map_get_font_cache
                                            (PangoFontMap *font_map);
LOGFONT*    pango_win32_font_logfont        (PangoFont *font);

Description

Details

PANGO_RENDER_TYPE_WIN32

#define PANGO_RENDER_TYPE_WIN32 "PangoRenderWin32"

A string constant identifying the Win32 renderer. The associated quark (see g_quark_from_string()) is used to identify the renderer in pango_find_map().


pango_win32_get_context ()

PangoContext* pango_win32_get_context       (void);

Retrieves a PangoContext appropriate for rendering with Windows fonts.

Returns : the new PangoContext

pango_win32_render ()

void        pango_win32_render              (HDC hdc,
                                             PangoFont *font,
                                             PangoGlyphString *glyphs,
                                             gint x,
                                             gint y);

Render a PangoGlyphString onto a Windows DC

hdc : the device context
font : the font in which to draw the string
glyphs : the glyph string to draw
x : the x position of start of string (in pixels)
y : the y position of baseline (in pixels)

pango_win32_render_layout_line ()

void        pango_win32_render_layout_line  (HDC hdc,
                                             PangoLayoutLine *line,
                                             int x,
                                             int y);

Render a PangoLayoutLine onto a device context

hdc : HDC to use for uncolored drawing
line : a PangoLayoutLine
x : the x position of start of string (in pixels)
y : the y position of baseline (in pixels)

pango_win32_render_layout ()

void        pango_win32_render_layout       (HDC hdc,
                                             PangoLayout *layout,
                                             int x,
                                             int y);

Render a PangoLayoutLine onto an X drawable

hdc : HDC to use for uncolored drawing
layout : a PangoLayout
x : the X position of the left of the layout (in pixels)
y : the Y position of the top of the layout (in pixels)

pango_win32_get_unknown_glyph ()

PangoGlyph  pango_win32_get_unknown_glyph   (PangoFont *font,
                                             gunichar wc);

Returns the index of a glyph suitable for drawing wc as an unknown character.

font : a PangoFont
wc : the Unicode character for which a glyph is needed.
Returns : a glyph index into font

pango_win32_font_get_glyph_index ()

gint        pango_win32_font_get_glyph_index
                                            (PangoFont *font,
                                             gunichar wc);

Obtains the index of the glyph for wc in font.

font : a PangoFont.
wc : a Unicode character.
Returns : the glyph index for wc.

pango_win32_get_debug_flag ()

gboolean    pango_win32_get_debug_flag      (void);

Returns wether debugging is turned on.

Returns : TRUE if debugging is turned on.

Since 1.2


pango_win32_get_dc ()

HDC         pango_win32_get_dc              (void);

Obtains a handle to the Windows device context that is used by Pango.

Returns : A handle to the Windows device context that is used by Pango.

struct PangoWin32FontCache

struct PangoWin32FontCache;

A PangoWin32FontCache caches HFONTs by their LOGFONT descriptions.


pango_win32_font_cache_new ()

PangoWin32FontCache* pango_win32_font_cache_new
                                            (void);

Creates a font cache.

Returns : The new font cache. This must be freed with pango_win32_font_cache_free().

pango_win32_font_cache_free ()

void        pango_win32_font_cache_free     (PangoWin32FontCache *cache);

Frees a PangoWin32FontCache and all associated memory. All fonts loaded through this font cache will be freed along with the cache.


pango_win32_font_cache_load ()

HFONT       pango_win32_font_cache_load     (PangoWin32FontCache *cache,
                                             const LOGFONT *logfont);

Creates a HFONT from a LOGFONT. The result may be newly loaded, or it may have been previously stored

cache : a PangoWin32FontCache
logfont : a pointer to a LOGFONT structure describing the font to load.
Returns : The font structure, or NULL if the font could not be loaded. In order to free this structure, you must call pango_win32_font_cache_unload().

pango_win32_font_cache_unload ()

void        pango_win32_font_cache_unload   (PangoWin32FontCache *cache,
                                             HFONT hfont);

Frees a font structure previously loaded with pango_win32_font_cache_load().

cache : a PangoWin32FontCache
hfont : the HFONT to unload

pango_win32_font_map_for_display ()

PangoFontMap* pango_win32_font_map_for_display
                                            (void);

Returns a PangoWin32FontMap. Font maps are cached and should not be freed. If the font map is no longer needed, it can be released with pango_win32_shutdown_display().

Returns : a PangoFontMap.

pango_win32_shutdown_display ()

void        pango_win32_shutdown_display    (void);

Free cached resources.


pango_win32_font_map_get_font_cache ()

PangoWin32FontCache* pango_win32_font_map_get_font_cache
                                            (PangoFontMap *font_map);

Obtains the font cache associated with the given font map.

font_map : a PangoWin32FontMap.
Returns : the PangoWin32FontCache of font_map.

pango_win32_font_logfont ()

LOGFONT*    pango_win32_font_logfont        (PangoFont *font);

Determine the LOGFONT struct for the specified bfont.

font : a PangoFont which must be from the Win32 backend
Returns : A newly allocated LOGFONT struct. It must be freed with g_free().