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