Win32 Fonts and Rendering

Name

Win32 Fonts and Rendering -- 

Synopsis



#define     PANGO_RENDER_TYPE_WIN32
PangoContext* pango_win32_get_context       (void);
PangoFont*  pango_win32_load_font           (LOGFONT *lfps,
                                             int n_fonts);
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);
enum        PangoWin32UnicodeSubrange;
PangoWin32UnicodeSubrange pango_win32_unicode_classify
                                            (wchar_t wc);
typedef     PangoWin32Subfont;
#define     PANGO_WIN32_MAKE_GLYPH          (subfont,index)
#define     PANGO_WIN32_GLYPH_SUBFONT       (glyph)
#define     PANGO_WIN32_GLYPH_INDEX         (glyph)
int         pango_win32_list_subfonts       (PangoFont *font,
                                             PangoWin32UnicodeSubrange subrange,
                                             PangoWin32Subfont **subfont_ids);
gboolean    pango_win32_has_glyph           (PangoFont *font,
                                             PangoGlyph glyph);
PangoGlyph  pango_win32_get_unknown_glyph   (PangoFont *font);
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_subfont_logfont
                                            (PangoFont *font,
                                             PangoWin32Subfont subfont_id);
void        pango_win32_fontmap_dump        (int indent,
                                             PangoFontMap *fontmap);

Description

Details

PANGO_RENDER_TYPE_WIN32

#define PANGO_RENDER_TYPE_WIN32 "PangoRenderWin32"


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_load_font ()

PangoFont*  pango_win32_load_font           (LOGFONT *lfps,
                                             int n_fonts);

Loads a logical font based on a "fontset" style specification.

lfps : an array of LOGFONTs
n_fonts : the number of LOGFONTS
Returns :a new PangoFont


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)


enum PangoWin32UnicodeSubrange

typedef enum
{
  PANGO_WIN32_U_BASIC_LATIN = 0,
  PANGO_WIN32_U_LATIN_1_SUPPLEMENT = 1,
  PANGO_WIN32_U_LATIN_EXTENDED_A = 2,
  PANGO_WIN32_U_LATIN_EXTENDED_B = 3,
  PANGO_WIN32_U_IPA_EXTENSIONS = 4,
  PANGO_WIN32_U_SPACING_MODIFIER_LETTERS = 5,
  PANGO_WIN32_U_COMBINING_DIACRITICAL_MARKS = 6,
  PANGO_WIN32_U_BASIC_GREEK = 7,
  PANGO_WIN32_U_GREEK_SYMBOLS_AND_COPTIC = 8,
  PANGO_WIN32_U_CYRILLIC = 9,
  PANGO_WIN32_U_ARMENIAN = 10,
  PANGO_WIN32_U_HEBREW_EXTENDED = 12,
  PANGO_WIN32_U_BASIC_HEBREW = 11,
  PANGO_WIN32_U_BASIC_ARABIC = 13,
  PANGO_WIN32_U_ARABIC_EXTENDED = 14,
  PANGO_WIN32_U_DEVANAGARI = 15,
  PANGO_WIN32_U_BENGALI = 16,
  PANGO_WIN32_U_GURMUKHI = 17,
  PANGO_WIN32_U_GUJARATI = 18,
  PANGO_WIN32_U_ORIYA = 19,
  PANGO_WIN32_U_TAMIL = 20,
  PANGO_WIN32_U_TELUGU = 21,
  PANGO_WIN32_U_KANNADA = 22,
  PANGO_WIN32_U_MALAYALAM = 23,
  PANGO_WIN32_U_THAI = 24,
  PANGO_WIN32_U_LAO = 25,
  PANGO_WIN32_U_GEORGIAN_EXTENDED = 27,
  PANGO_WIN32_U_BASIC_GEORGIAN = 26,
  PANGO_WIN32_U_HANGUL_JAMO = 28,
  PANGO_WIN32_U_LATIN_EXTENDED_ADDITIONAL = 29,
  PANGO_WIN32_U_GREEK_EXTENDED = 30,
  PANGO_WIN32_U_GENERAL_PUNCTUATION = 31,
  PANGO_WIN32_U_SUPERSCRIPTS_AND_SUBSCRIPTS = 32,
  PANGO_WIN32_U_CURRENCY_SYMBOLS = 33,
  PANGO_WIN32_U_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34,
  PANGO_WIN32_U_LETTERLIKE_SYMBOLS = 35,
  PANGO_WIN32_U_NUMBER_FORMS = 36,
  PANGO_WIN32_U_ARROWS = 37,
  PANGO_WIN32_U_MATHEMATICAL_OPERATORS = 38,
  PANGO_WIN32_U_MISCELLANEOUS_TECHNICAL = 39,
  PANGO_WIN32_U_CONTROL_PICTURES = 40,
  PANGO_WIN32_U_OPTICAL_CHARACTER_RECOGNITION = 41,
  PANGO_WIN32_U_ENCLOSED_ALPHANUMERICS = 42,
  PANGO_WIN32_U_BOX_DRAWING = 43,
  PANGO_WIN32_U_BLOCK_ELEMENTS = 44,
  PANGO_WIN32_U_GEOMETRIC_SHAPES = 45,
  PANGO_WIN32_U_MISCELLANEOUS_SYMBOLS = 46,
  PANGO_WIN32_U_DINGBATS = 47,
  PANGO_WIN32_U_CJK_SYMBOLS_AND_PUNCTUATION = 48,
  PANGO_WIN32_U_HIRAGANA = 49,
  PANGO_WIN32_U_KATAKANA = 50,
  PANGO_WIN32_U_BOPOMOFO = 51,
  PANGO_WIN32_U_HANGUL_COMPATIBILITY_JAMO = 52,
  PANGO_WIN32_U_CJK_MISCELLANEOUS = 53,
  PANGO_WIN32_U_ENCLOSED_CJK = 54,
  PANGO_WIN32_U_CJK_COMPATIBILITY = 55,
  PANGO_WIN32_U_HANGUL = 56,
  PANGO_WIN32_U_HANGUL_SUPPLEMENTARY_A = 57,
  PANGO_WIN32_U_HANGUL_SUPPLEMENTARY_B = 58,
  PANGO_WIN32_U_CJK_UNIFIED_IDEOGRAPHS = 59,
  PANGO_WIN32_U_PRIVATE_USE_AREA = 60,
  PANGO_WIN32_U_CJK_COMPATIBILITY_IDEOGRAPHS = 61,
  PANGO_WIN32_U_ALPHABETIC_PRESENTATION_FORMS = 62,
  PANGO_WIN32_U_ARABIC_PRESENTATION_FORMS_A = 63,
  PANGO_WIN32_U_COMBINING_HALF_MARKS = 64,
  PANGO_WIN32_U_CJK_COMPATIBILITY_FORMS = 65,
  PANGO_WIN32_U_SMALL_FORM_VARIANTS = 66,
  PANGO_WIN32_U_ARABIC_PRESENTATION_FORMS_B = 67,
  PANGO_WIN32_U_SPECIALS = 69,
  PANGO_WIN32_U_HALFWIDTH_AND_FULLWIDTH_FORMS = 68,
  PANGO_WIN32_U_LAST_PLUS_ONE
} PangoWin32UnicodeSubrange;


pango_win32_unicode_classify ()

PangoWin32UnicodeSubrange pango_win32_unicode_classify
                                            (wchar_t wc);

wc : 
Returns : 


PangoWin32Subfont

typedef guint16 PangoWin32Subfont;


PANGO_WIN32_MAKE_GLYPH()

#define PANGO_WIN32_MAKE_GLYPH(subfont,index) ((subfont)<<16 | (index))

subfont : 
index : 


PANGO_WIN32_GLYPH_SUBFONT()

#define PANGO_WIN32_GLYPH_SUBFONT(glyph) ((glyph)>>16)

glyph : 


PANGO_WIN32_GLYPH_INDEX()

#define PANGO_WIN32_GLYPH_INDEX(glyph) ((glyph) & 0xffff)

glyph : 


pango_win32_list_subfonts ()

int         pango_win32_list_subfonts       (PangoFont *font,
                                             PangoWin32UnicodeSubrange subrange,
                                             PangoWin32Subfont **subfont_ids);

font : a PangoFont
subrange : the Unicode subrange to list subfonts for
subfont_ids : location to store a pointer to an array of subfont IDs for each found subfont the result must be freed using g_free()
Returns :number of subfonts found


pango_win32_has_glyph ()

gboolean    pango_win32_has_glyph           (PangoFont *font,
                                             PangoGlyph glyph);

Check if the given glyph is present in a Win32 font.

font : a PangoFont which must be from the Win32 backend.
glyph : the index of a glyph in the font. (Formed using the PANGO_WIN32_MAKE_GLYPH macro)
Returns : TRUE if the glyph is present.


pango_win32_get_unknown_glyph ()

PangoGlyph  pango_win32_get_unknown_glyph   (PangoFont *font);

Return the index of a glyph suitable for drawing unknown characters.

font : a PangoFont
Returns : a glyph index into font


struct PangoWin32FontCache

struct PangoWin32FontCache;


pango_win32_font_cache_new ()

PangoWin32FontCache* pango_win32_font_cache_new
                                            (void);

Create 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);

Free 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);

Create 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);

Free 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 : 


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);

font_map : 
Returns : 


pango_win32_font_subfont_logfont ()

LOGFONT*    pango_win32_font_subfont_logfont
                                            (PangoFont *font,
                                             PangoWin32Subfont subfont_id);

Determine the LOGFONT struct for the specified subfont.

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


pango_win32_fontmap_dump ()

void        pango_win32_fontmap_dump        (int indent,
                                             PangoFontMap *fontmap);

indent : 
fontmap :