xftint.h revision 2836776b
1c76ae52dSmrg/* 2c76ae52dSmrg * Copyright © 2000 Keith Packard 3c76ae52dSmrg * 4c76ae52dSmrg * Permission to use, copy, modify, distribute, and sell this software and its 5c76ae52dSmrg * documentation for any purpose is hereby granted without fee, provided that 6c76ae52dSmrg * the above copyright notice appear in all copies and that both that 7c76ae52dSmrg * copyright notice and this permission notice appear in supporting 8c76ae52dSmrg * documentation, and that the name of Keith Packard not be used in 9c76ae52dSmrg * advertising or publicity pertaining to distribution of the software without 10c76ae52dSmrg * specific, written prior permission. Keith Packard makes no 11c76ae52dSmrg * representations about the suitability of this software for any purpose. It 12c76ae52dSmrg * is provided "as is" without express or implied warranty. 13c76ae52dSmrg * 14c76ae52dSmrg * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 15c76ae52dSmrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 16c76ae52dSmrg * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR 17c76ae52dSmrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 18c76ae52dSmrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 19c76ae52dSmrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 20c76ae52dSmrg * PERFORMANCE OF THIS SOFTWARE. 21c76ae52dSmrg */ 22c76ae52dSmrg 23c76ae52dSmrg/* 24c76ae52dSmrg * These definitions are solely for use by the implementation of Xft 25c76ae52dSmrg * and constitute no kind of standard. If you need any of these functions, 26c76ae52dSmrg * please drop me a note. Either the library needs new functionality, 27c76ae52dSmrg * or there's a way to do what you need using the existing published 28c76ae52dSmrg * interfaces. keithp@freedesktop.org 29c76ae52dSmrg */ 30c76ae52dSmrg 31c76ae52dSmrg#ifndef _XFTINT_H_ 32c76ae52dSmrg#define _XFTINT_H_ 33c76ae52dSmrg 34c76ae52dSmrg#ifdef HAVE_CONFIG_H 35c76ae52dSmrg#include "config.h" 36c76ae52dSmrg#else /* X monolithic tree */ 37c76ae52dSmrg#define HAVE_STDLIB_H 1 /* assumed since all ANSI C platforms require it */ 38c76ae52dSmrg#include <X11/Xosdefs.h> /* get string.h or strings.h as appropriate */ 39c76ae52dSmrg#endif 40c76ae52dSmrg 41c76ae52dSmrg#include <stdio.h> 42c76ae52dSmrg#if HAVE_STDLIB_H 43c76ae52dSmrg#include <stdlib.h> 44c76ae52dSmrg#endif 45c76ae52dSmrg#if HAVE_STRING_H 46c76ae52dSmrg#include <string.h> 47c76ae52dSmrg#else 48c76ae52dSmrg#if HAVE_STRINGS_H 49c76ae52dSmrg#include <strings.h> 50c76ae52dSmrg#endif 51c76ae52dSmrg#endif 52c76ae52dSmrg#include <ctype.h> 53c76ae52dSmrg 54c76ae52dSmrg#include <X11/Xlib.h> 55c76ae52dSmrg#include <X11/Xutil.h> 56c76ae52dSmrg#include <X11/Xmd.h> 57c76ae52dSmrg#include <X11/Xlibint.h> 58c76ae52dSmrg#define _XFT_NO_COMPAT_ 59c76ae52dSmrg#include "Xft.h" 60c76ae52dSmrg#include <fontconfig/fcprivate.h> 61c76ae52dSmrg#include <fontconfig/fcfreetype.h> 62c76ae52dSmrg 63c76ae52dSmrg/* Added to <X11/Xfuncproto.h> in X11R6.9 and later */ 64c76ae52dSmrg#ifndef _X_HIDDEN 65c76ae52dSmrg# define _X_HIDDEN /**/ 66c76ae52dSmrg#endif 67c76ae52dSmrg#ifndef _X_EXPORT 68c76ae52dSmrg# define _X_EXPORT /**/ 69c76ae52dSmrg#endif 70c76ae52dSmrg 71c76ae52dSmrgtypedef struct _XftMatcher { 72c76ae52dSmrg char *object; 73c76ae52dSmrg double (*compare) (char *object, FcValue value1, FcValue value2); 74c76ae52dSmrg} XftMatcher; 75c76ae52dSmrg 76c76ae52dSmrgtypedef struct _XftSymbolic { 77c76ae52dSmrg const char *name; 78c76ae52dSmrg int value; 79c76ae52dSmrg} XftSymbolic; 80c76ae52dSmrg 81c76ae52dSmrg/* 82c76ae52dSmrg * Glyphs are stored in this structure 83c76ae52dSmrg */ 84c76ae52dSmrgtypedef struct _XftGlyph { 85c76ae52dSmrg XGlyphInfo metrics; 86c76ae52dSmrg void *bitmap; 87c76ae52dSmrg unsigned long glyph_memory; 88c76ae52dSmrg} XftGlyph; 89c76ae52dSmrg 90c76ae52dSmrg/* 91c76ae52dSmrg * A hash table translates Unicode values into glyph indicies 92c76ae52dSmrg */ 93c76ae52dSmrgtypedef struct _XftUcsHash { 94c76ae52dSmrg FcChar32 ucs4; 95c76ae52dSmrg FT_UInt glyph; 96c76ae52dSmrg} XftUcsHash; 97c76ae52dSmrg 98c76ae52dSmrg/* 99c76ae52dSmrg * Many fonts can share the same underlying face data; this 100c76ae52dSmrg * structure references that. Note that many faces may in fact 101c76ae52dSmrg * live in the same font file; that is irrelevant to this structure 102c76ae52dSmrg * which is concerned only with the individual faces themselves 103c76ae52dSmrg */ 104c76ae52dSmrg 105c76ae52dSmrgtypedef struct _XftFtFile { 106c76ae52dSmrg struct _XftFtFile *next; 107c76ae52dSmrg int ref; /* number of font infos using this file */ 1082836776bSmrg 109c76ae52dSmrg char *file; /* file name */ 110c76ae52dSmrg int id; /* font index within that file */ 111c76ae52dSmrg 112c76ae52dSmrg FT_F26Dot6 xsize; /* current xsize setting */ 113c76ae52dSmrg FT_F26Dot6 ysize; /* current ysize setting */ 114c76ae52dSmrg FT_Matrix matrix; /* current matrix setting */ 1152836776bSmrg 116c76ae52dSmrg int lock; /* lock count; can't unload unless 0 */ 117c76ae52dSmrg FT_Face face; /* pointer to face; only valid when lock */ 118c76ae52dSmrg} XftFtFile; 119c76ae52dSmrg 120c76ae52dSmrg/* 121c76ae52dSmrg * This structure holds the data extracted from a pattern 122c76ae52dSmrg * needed to create a unique font object. 123c76ae52dSmrg */ 124c76ae52dSmrg 125c76ae52dSmrgstruct _XftFontInfo { 126c76ae52dSmrg /* 127c76ae52dSmrg * Hash value (not include in hash value computation) 128c76ae52dSmrg */ 129c76ae52dSmrg FcChar32 hash; 130c76ae52dSmrg XftFtFile *file; /* face source */ 131c76ae52dSmrg /* 132c76ae52dSmrg * Rendering options 133c76ae52dSmrg */ 134c76ae52dSmrg FT_F26Dot6 xsize, ysize; /* pixel size */ 135c76ae52dSmrg FcBool antialias; /* doing antialiasing */ 136c76ae52dSmrg FcBool embolden; /* force emboldening */ 137c76ae52dSmrg int rgba; /* subpixel order */ 1382836776bSmrg int lcd_filter; /* lcd filter */ 139c76ae52dSmrg FT_Matrix matrix; /* glyph transformation matrix */ 140c76ae52dSmrg FcBool transform; /* non-identify matrix? */ 141c76ae52dSmrg FT_Int load_flags; /* glyph load flags */ 142c76ae52dSmrg FcBool render; /* whether to use the Render extension */ 143c76ae52dSmrg /* 144c76ae52dSmrg * Internal fields 145c76ae52dSmrg */ 146c76ae52dSmrg int spacing; 147c76ae52dSmrg FcBool minspace; 148c76ae52dSmrg int char_width; 149c76ae52dSmrg}; 150c76ae52dSmrg 151c76ae52dSmrg/* 152c76ae52dSmrg * Internal version of the font with private data 153c76ae52dSmrg */ 154c76ae52dSmrg 155c76ae52dSmrgtypedef struct _XftFontInt { 156c76ae52dSmrg XftFont public; /* public fields */ 157c76ae52dSmrg XftFont *next; /* all fonts on display */ 158c76ae52dSmrg XftFont *hash_next; /* fonts in this hash chain */ 159c76ae52dSmrg XftFontInfo info; /* Data from pattern */ 160c76ae52dSmrg int ref; /* reference count */ 161c76ae52dSmrg /* 162c76ae52dSmrg * Per-glyph information, indexed by glyph ID 163c76ae52dSmrg * This array follows the font in memory 164c76ae52dSmrg */ 165c76ae52dSmrg XftGlyph **glyphs; 166c76ae52dSmrg int num_glyphs; /* size of glyphs/bitmaps arrays */ 167c76ae52dSmrg /* 168c76ae52dSmrg * Hash table to get from Unicode value to glyph ID 169c76ae52dSmrg * This array follows the glyphs in memory 170c76ae52dSmrg */ 171c76ae52dSmrg XftUcsHash *hash_table; 172c76ae52dSmrg int hash_value; 173c76ae52dSmrg int rehash_value; 174c76ae52dSmrg /* 175c76ae52dSmrg * X specific fields 176c76ae52dSmrg */ 177c76ae52dSmrg GlyphSet glyphset; /* Render glyphset */ 178c76ae52dSmrg XRenderPictFormat *format; /* Render format for glyphs */ 179c76ae52dSmrg /* 180c76ae52dSmrg * Glyph memory management fields 181c76ae52dSmrg */ 182c76ae52dSmrg unsigned long glyph_memory; 183c76ae52dSmrg unsigned long max_glyph_memory; 184c76ae52dSmrg FcBool use_free_glyphs; /* Use XRenderFreeGlyphs */ 185c76ae52dSmrg} XftFontInt; 186c76ae52dSmrg 187c76ae52dSmrgtypedef enum _XftClipType { 188c76ae52dSmrg XftClipTypeNone, XftClipTypeRegion, XftClipTypeRectangles 189c76ae52dSmrg} XftClipType; 190c76ae52dSmrg 191c76ae52dSmrgtypedef struct _XftClipRect { 192c76ae52dSmrg int xOrigin; 193c76ae52dSmrg int yOrigin; 194c76ae52dSmrg int n; 195c76ae52dSmrg} XftClipRect; 196c76ae52dSmrg 197c76ae52dSmrg#define XftClipRects(cr) ((XRectangle *) ((cr) + 1)) 198c76ae52dSmrg 199c76ae52dSmrgtypedef union _XftClip { 200c76ae52dSmrg XftClipRect *rect; 201c76ae52dSmrg Region region; 202c76ae52dSmrg} XftClip; 203c76ae52dSmrg 204c76ae52dSmrgstruct _XftDraw { 205c76ae52dSmrg Display *dpy; 206c76ae52dSmrg int screen; 207c76ae52dSmrg unsigned int bits_per_pixel; 208c76ae52dSmrg unsigned int depth; 209c76ae52dSmrg Drawable drawable; 210c76ae52dSmrg Visual *visual; /* NULL for bitmaps */ 211c76ae52dSmrg Colormap colormap; 212c76ae52dSmrg XftClipType clip_type; 213c76ae52dSmrg XftClip clip; 214c76ae52dSmrg int subwindow_mode; 215c76ae52dSmrg struct { 216c76ae52dSmrg Picture pict; 217c76ae52dSmrg } render; 218c76ae52dSmrg struct { 219c76ae52dSmrg GC gc; 220c76ae52dSmrg int use_pixmap; 221c76ae52dSmrg } core; 222c76ae52dSmrg}; 223c76ae52dSmrg 224c76ae52dSmrg/* 225c76ae52dSmrg * Instead of taking two round trips for each blending request, 226c76ae52dSmrg * assume that if a particular drawable fails GetImage that it will 227c76ae52dSmrg * fail for a "while"; use temporary pixmaps to avoid the errors 228c76ae52dSmrg */ 229c76ae52dSmrg 230c76ae52dSmrg#define XFT_ASSUME_PIXMAP 20 231c76ae52dSmrg 232c76ae52dSmrgtypedef struct _XftSolidColor { 233c76ae52dSmrg XRenderColor color; 234c76ae52dSmrg int screen; 235c76ae52dSmrg Picture pict; 236c76ae52dSmrg} XftSolidColor; 237c76ae52dSmrg 238c76ae52dSmrg#define XFT_NUM_SOLID_COLOR 16 239c76ae52dSmrg 240c76ae52dSmrg#define XFT_NUM_FONT_HASH 127 241c76ae52dSmrg 242c76ae52dSmrgtypedef struct _XftDisplayInfo { 243c76ae52dSmrg struct _XftDisplayInfo *next; 244c76ae52dSmrg Display *display; 245c76ae52dSmrg XExtCodes *codes; 246c76ae52dSmrg FcPattern *defaults; 247c76ae52dSmrg FcBool hasRender; 248c76ae52dSmrg XftFont *fonts; 249c76ae52dSmrg XRenderPictFormat *solidFormat; 250c76ae52dSmrg unsigned long glyph_memory; 251c76ae52dSmrg unsigned long max_glyph_memory; 252c76ae52dSmrg FcBool use_free_glyphs; 253c76ae52dSmrg int num_unref_fonts; 254c76ae52dSmrg int max_unref_fonts; 255c76ae52dSmrg XftSolidColor colors[XFT_NUM_SOLID_COLOR]; 256c76ae52dSmrg XftFont *fontHash[XFT_NUM_FONT_HASH]; 257c76ae52dSmrg} XftDisplayInfo; 258c76ae52dSmrg 259c76ae52dSmrg/* 260c76ae52dSmrg * By default, use no more than 4 meg of server memory total, and no 261c76ae52dSmrg * more than 1 meg for any one font 262c76ae52dSmrg */ 263c76ae52dSmrg#define XFT_DPY_MAX_GLYPH_MEMORY (4 * 1024 * 1024) 264c76ae52dSmrg#define XFT_FONT_MAX_GLYPH_MEMORY (1024 * 1024) 265c76ae52dSmrg 266c76ae52dSmrg/* 267c76ae52dSmrg * By default, keep the last 16 unreferenced fonts around to 268c76ae52dSmrg * speed reopening them. Note that the glyph caching code 269c76ae52dSmrg * will keep the global memory usage reasonably limited 270c76ae52dSmrg */ 271c76ae52dSmrg#define XFT_DPY_MAX_UNREF_FONTS 16 272c76ae52dSmrg 273c76ae52dSmrgextern XftDisplayInfo *_XftDisplayInfo; 274c76ae52dSmrg 275c76ae52dSmrg#define XFT_DBG_OPEN 1 276c76ae52dSmrg#define XFT_DBG_OPENV 2 277c76ae52dSmrg#define XFT_DBG_RENDER 4 278c76ae52dSmrg#define XFT_DBG_DRAW 8 279c76ae52dSmrg#define XFT_DBG_REF 16 280c76ae52dSmrg#define XFT_DBG_GLYPH 32 281c76ae52dSmrg#define XFT_DBG_GLYPHV 64 282c76ae52dSmrg#define XFT_DBG_CACHE 128 283c76ae52dSmrg#define XFT_DBG_CACHEV 256 284c76ae52dSmrg#define XFT_DBG_MEMORY 512 285c76ae52dSmrg 286c76ae52dSmrg#define XFT_MEM_DRAW 0 287c76ae52dSmrg#define XFT_MEM_FONT 1 288c76ae52dSmrg#define XFT_MEM_FILE 2 289c76ae52dSmrg#define XFT_MEM_GLYPH 3 290c76ae52dSmrg#define XFT_MEM_NUM 4 291c76ae52dSmrg 292c76ae52dSmrg/* xftcompat.c */ 293c76ae52dSmrgvoid XftFontSetDestroy (FcFontSet *s); 294c76ae52dSmrgFcBool XftMatrixEqual (_Xconst FcMatrix *mat1, _Xconst FcMatrix *mat2); 295c76ae52dSmrgvoid XftMatrixMultiply (FcMatrix *result, FcMatrix *a, FcMatrix *b); 296c76ae52dSmrgvoid XftMatrixRotate (FcMatrix *m, double c, double s); 297c76ae52dSmrgvoid XftMatrixScale (FcMatrix *m, double sx, double sy); 298c76ae52dSmrgvoid XftMatrixShear (FcMatrix *m, double sh, double sv); 299c76ae52dSmrgFcPattern *XftPatternCreate (void); 300c76ae52dSmrgvoid XftValueDestroy (FcValue v); 301c76ae52dSmrgvoid XftPatternDestroy (FcPattern *p); 302c76ae52dSmrgFcBool XftPatternAdd (FcPattern *p, _Xconst char *object, FcValue value, FcBool append); 303c76ae52dSmrgFcBool XftPatternDel (FcPattern *p, _Xconst char *object); 304c76ae52dSmrgFcBool XftPatternAddInteger (FcPattern *p, _Xconst char *object, int i); 305c76ae52dSmrgFcBool XftPatternAddDouble (FcPattern *p, _Xconst char *object, double i); 306c76ae52dSmrgFcBool XftPatternAddMatrix (FcPattern *p, _Xconst char *object, FcMatrix *i); 307c76ae52dSmrgFcBool XftPatternAddString (FcPattern *p, _Xconst char *object, char *i); 308c76ae52dSmrgFcBool XftPatternAddBool (FcPattern *p, _Xconst char *object, FcBool i); 309c76ae52dSmrgFcResult XftPatternGet (FcPattern *p, _Xconst char *object, int id, FcValue *v); 310c76ae52dSmrgFcResult XftPatternGetInteger (FcPattern *p, _Xconst char *object, int id, int *i); 311c76ae52dSmrgFcResult XftPatternGetDouble (FcPattern *p, _Xconst char *object, int id, double *i); 312c76ae52dSmrgFcResult XftPatternGetString (FcPattern *p, _Xconst char *object, int id, char **i); 313c76ae52dSmrgFcResult XftPatternGetMatrix (FcPattern *p, _Xconst char *object, int id, FcMatrix **i); 314c76ae52dSmrgFcResult XftPatternGetBool (FcPattern *p, _Xconst char *object, int id, FcBool *i); 315c76ae52dSmrgFcPattern *XftPatternDuplicate (FcPattern *orig); 316c76ae52dSmrgFcPattern *XftPatternVaBuild (FcPattern *orig, va_list va); 317c76ae52dSmrgFcPattern *XftPatternBuild (FcPattern *orig, ...); 318c76ae52dSmrgFcBool XftNameUnparse (FcPattern *pat, char *dest, int len); 319c76ae52dSmrgFcBool XftGlyphExists (Display *dpy, XftFont *font, FcChar32 ucs4); 320c76ae52dSmrgFcObjectSet *XftObjectSetCreate (void); 321c76ae52dSmrgBool XftObjectSetAdd (FcObjectSet *os, _Xconst char *object); 322c76ae52dSmrgvoid XftObjectSetDestroy (FcObjectSet *os); 323c76ae52dSmrgFcObjectSet *XftObjectSetVaBuild (_Xconst char *first, va_list va); 324c76ae52dSmrgFcObjectSet *XftObjectSetBuild (_Xconst char *first, ...); 325c76ae52dSmrgFcFontSet *XftListFontSets (FcFontSet **sets, int nsets, FcPattern *p, FcObjectSet *os); 326c76ae52dSmrg 327c76ae52dSmrg/* xftcore.c */ 328c76ae52dSmrgvoid 329c76ae52dSmrgXftRectCore (XftDraw *draw, 330c76ae52dSmrg _Xconst XftColor *color, 3312836776bSmrg int x, 332c76ae52dSmrg int y, 333c76ae52dSmrg unsigned int width, 334c76ae52dSmrg unsigned int height); 335c76ae52dSmrg 336c76ae52dSmrgvoid 337c76ae52dSmrgXftGlyphCore (XftDraw *draw, 338c76ae52dSmrg _Xconst XftColor *color, 339c76ae52dSmrg XftFont *public, 340c76ae52dSmrg int x, 341c76ae52dSmrg int y, 342c76ae52dSmrg _Xconst FT_UInt *glyphs, 343c76ae52dSmrg int nglyphs); 344c76ae52dSmrg 345c76ae52dSmrgvoid 346c76ae52dSmrgXftGlyphSpecCore (XftDraw *draw, 347c76ae52dSmrg _Xconst XftColor *color, 348c76ae52dSmrg XftFont *public, 349c76ae52dSmrg _Xconst XftGlyphSpec *glyphs, 350c76ae52dSmrg int nglyphs); 351c76ae52dSmrg 352c76ae52dSmrgvoid 353c76ae52dSmrgXftGlyphFontSpecCore (XftDraw *draw, 354c76ae52dSmrg _Xconst XftColor *color, 355c76ae52dSmrg _Xconst XftGlyphFontSpec *glyphs, 356c76ae52dSmrg int nglyphs); 357c76ae52dSmrg 358c76ae52dSmrg/* xftdbg.c */ 359c76ae52dSmrgint 360c76ae52dSmrgXftDebug (void); 361c76ae52dSmrg 362c76ae52dSmrg/* xftdpy.c */ 363c76ae52dSmrgXftDisplayInfo * 364c76ae52dSmrg_XftDisplayInfoGet (Display *dpy, FcBool createIfNecessary); 365c76ae52dSmrg 366c76ae52dSmrgvoid 367c76ae52dSmrg_XftDisplayManageMemory (Display *dpy); 368c76ae52dSmrg 369c76ae52dSmrgint 3702836776bSmrgXftDefaultParseBool (const char *v); 371c76ae52dSmrg 372c76ae52dSmrgFcBool 373c76ae52dSmrgXftDefaultGetBool (Display *dpy, const char *object, int screen, FcBool def); 374c76ae52dSmrg 375c76ae52dSmrgint 376c76ae52dSmrgXftDefaultGetInteger (Display *dpy, const char *object, int screen, int def); 377c76ae52dSmrg 378c76ae52dSmrgdouble 379c76ae52dSmrgXftDefaultGetDouble (Display *dpy, const char *object, int screen, double def); 380c76ae52dSmrg 381c76ae52dSmrgFcFontSet * 382c76ae52dSmrgXftDisplayGetFontSet (Display *dpy); 383c76ae52dSmrg 384c76ae52dSmrg/* xftdraw.c */ 385c76ae52dSmrgunsigned int 386c76ae52dSmrgXftDrawDepth (XftDraw *draw); 387c76ae52dSmrg 388c76ae52dSmrgunsigned int 389c76ae52dSmrgXftDrawBitsPerPixel (XftDraw *draw); 390c76ae52dSmrg 391c76ae52dSmrgFcBool 392c76ae52dSmrgXftDrawRenderPrepare (XftDraw *draw); 393c76ae52dSmrg 394c76ae52dSmrg/* xftextent.c */ 3952836776bSmrg 396c76ae52dSmrg/* xftfont.c */ 397c76ae52dSmrg 398c76ae52dSmrg/* xftfreetype.c */ 399c76ae52dSmrgFcBool 400c76ae52dSmrg_XftSetFace (XftFtFile *f, FT_F26Dot6 xsize, FT_F26Dot6 ysize, FT_Matrix *matrix); 401c76ae52dSmrg 402c76ae52dSmrgvoid 403c76ae52dSmrgXftFontManageMemory (Display *dpy); 404c76ae52dSmrg 405c76ae52dSmrg/* xftglyph.c */ 406c76ae52dSmrgvoid 407c76ae52dSmrg_XftFontUncacheGlyph (Display *dpy, XftFont *public); 408c76ae52dSmrg 409c76ae52dSmrgvoid 410c76ae52dSmrg_XftFontManageMemory (Display *dpy, XftFont *public); 411c76ae52dSmrg 412c76ae52dSmrg/* xftinit.c */ 413c76ae52dSmrgvoid 414c76ae52dSmrgXftMemReport (void); 415c76ae52dSmrg 416c76ae52dSmrgvoid 417c76ae52dSmrgXftMemAlloc (int kind, int size); 418c76ae52dSmrg 419c76ae52dSmrgvoid 420c76ae52dSmrgXftMemFree (int kind, int size); 421c76ae52dSmrg 422c76ae52dSmrg/* xftlist.c */ 423c76ae52dSmrgFcFontSet * 424c76ae52dSmrgXftListFontsPatternObjects (Display *dpy, 425c76ae52dSmrg int screen, 426c76ae52dSmrg FcPattern *pattern, 427c76ae52dSmrg FcObjectSet *os); 428c76ae52dSmrg 429c76ae52dSmrg/* xftname.c */ 4302836776bSmrgvoid 431c76ae52dSmrg_XftNameInit (void); 432c76ae52dSmrg 433c76ae52dSmrg/* xftrender.c */ 434c76ae52dSmrg 435c76ae52dSmrg/* xftstr.c */ 436c76ae52dSmrgint 437c76ae52dSmrg_XftMatchSymbolic (XftSymbolic *s, int n, const char *name, int def); 438c76ae52dSmrg 439c76ae52dSmrg/* xftswap.c */ 440c76ae52dSmrgint 441c76ae52dSmrgXftNativeByteOrder (void); 442c76ae52dSmrg 443c76ae52dSmrgvoid 444c76ae52dSmrgXftSwapCARD32 (CARD32 *data, int n); 445c76ae52dSmrg 446c76ae52dSmrgvoid 447c76ae52dSmrgXftSwapCARD24 (CARD8 *data, int width, int height); 448c76ae52dSmrg 449c76ae52dSmrgvoid 450c76ae52dSmrgXftSwapCARD16 (CARD16 *data, int n); 451c76ae52dSmrg 452c76ae52dSmrgvoid 453c76ae52dSmrgXftSwapImage (XImage *image); 454c76ae52dSmrg 455c76ae52dSmrg/* xftxlfd.c */ 456c76ae52dSmrg#endif /* _XFT_INT_H_ */ 457