diff options
Diffstat (limited to 'nx-X11/lib/Xft1/xftfont.c')
-rw-r--r-- | nx-X11/lib/Xft1/xftfont.c | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/nx-X11/lib/Xft1/xftfont.c b/nx-X11/lib/Xft1/xftfont.c deleted file mode 100644 index ab393af81..000000000 --- a/nx-X11/lib/Xft1/xftfont.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * $XFree86: xc/lib/Xft/xftfont.c,v 1.8 2000/12/20 00:20:48 keithp Exp $ - * - * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#include <stdio.h> -#include <stdlib.h> -#include "xftint.h" - -XftPattern * -XftFontMatch (Display *dpy, int screen, XftPattern *pattern, XftResult *result) -{ - XftPattern *new; - XftPattern *match; - XftFontSet *sets[2]; - int nsets; -#ifdef FREETYPE2 - Bool render, core; -#endif - - if (!XftInit (0)) - return 0; - - new = XftPatternDuplicate (pattern); - if (!new) - return 0; - - if (_XftFontDebug () & XFT_DBG_OPENV) - { - printf ("XftFontMatch pattern "); - XftPatternPrint (new); - } - XftConfigSubstitute (new); - if (_XftFontDebug () & XFT_DBG_OPENV) - { - printf ("XftFontMatch after XftConfig substitutions "); - XftPatternPrint (new); - } - XftDefaultSubstitute (dpy, screen, new); - if (_XftFontDebug () & XFT_DBG_OPENV) - { - printf ("XftFontMatch after X resource substitutions "); - XftPatternPrint (new); - } - nsets = 0; - -#ifdef FREETYPE2 - render = False; - core = True; - (void) XftPatternGetBool (new, XFT_RENDER, 0, &render); - (void) XftPatternGetBool (new, XFT_CORE, 0, &core); - if (_XftFontDebug () & XFT_DBG_OPENV) - { - printf ("XftFontMatch: use core fonts \"%s\", use render fonts \"%s\"\n", - core ? "True" : "False", render ? "True" : "False"); - } - - if (render) - { - if (XftInitFtLibrary()) - { - sets[nsets] = _XftFontSet; - if (sets[nsets]) - nsets++; - } - } - if (core) -#endif - { - sets[nsets] = XftDisplayGetFontSet (dpy); - if (sets[nsets]) - nsets++; - } - - match = XftFontSetMatch (sets, nsets, new, result); - XftPatternDestroy (new); - return match; -} - -XftFont * -XftFontOpenPattern (Display *dpy, XftPattern *pattern) -{ - Bool core = True; - XFontStruct *xfs = 0; - XftFont *font; -#ifdef FREETYPE2 - XftFontStruct *fs = 0; - - if (XftPatternGetBool (pattern, XFT_CORE, 0, &core) != XftResultMatch) - return 0; - if (core) -#endif - { - xfs = XftCoreOpen (dpy, pattern); - if (!xfs) return 0; - } -#ifdef FREETYPE2 - else - { - fs = XftFreeTypeOpen (dpy, pattern); - if (!fs) return 0; - } -#endif - font = (XftFont *) malloc (sizeof (XftFont)); - font->core = core; - font->pattern = pattern; -#ifdef FREETYPE2 - if (core) -#endif - { - font->u.core.font = xfs; - font->ascent = xfs->ascent; - font->descent = xfs->descent; - font->height = xfs->ascent + xfs->descent; - font->max_advance_width = xfs->max_bounds.width; - } -#ifdef FREETYPE2 - else - { - font->u.ft.font = fs; - font->ascent = fs->ascent; - font->descent = fs->descent; - font->height = fs->height; - font->max_advance_width = fs->max_advance_width; - } -#endif - return font; -} - -int -_XftFontDebug (void) -{ - static int initialized; - static int debug; - - if (!initialized) - { - char *e; - - initialized = 1; - e = getenv ("XFT_DEBUG"); - if (e) - { - printf ("XFT_DEBUG=%s\n", e); - debug = atoi (e); - if (debug <= 0) - debug = 1; - } - } - return debug; -} - -XftFont * -XftFontOpen (Display *dpy, int screen, ...) -{ - va_list va; - XftPattern *pat; - XftPattern *match; - XftResult result; - XftFont *font; - - va_start (va, screen); - pat = XftPatternVaBuild (0, va); - va_end (va); - if (!pat) - { - if (_XftFontDebug () & XFT_DBG_OPEN) - printf ("XftFontOpen: Invalid pattern argument\n"); - return 0; - } - match = XftFontMatch (dpy, screen, pat, &result); - if (_XftFontDebug () & XFT_DBG_OPEN) - { - printf ("Pattern "); - XftPatternPrint (pat); - if (match) - { - printf ("Match "); - XftPatternPrint (match); - } - else - printf ("No Match\n"); - } - XftPatternDestroy (pat); - if (!match) - return 0; - - font = XftFontOpenPattern (dpy, match); - if (!font) - { - if (_XftFontDebug () & XFT_DBG_OPEN) - printf ("No Font\n"); - XftPatternDestroy (match); - } - - return font; -} - -XftFont * -XftFontOpenName (Display *dpy, int screen, const char *name) -{ - XftPattern *pat; - XftPattern *match; - XftResult result; - XftFont *font; - - pat = XftNameParse (name); - if (_XftFontDebug () & XFT_DBG_OPEN) - { - printf ("XftFontOpenName \"%s\": ", name); - if (pat) - XftPatternPrint (pat); - else - printf ("Invalid name\n"); - } - - if (!pat) - return 0; - match = XftFontMatch (dpy, screen, pat, &result); - if (_XftFontDebug () & XFT_DBG_OPEN) - { - if (match) - { - printf ("Match "); - XftPatternPrint (match); - } - else - printf ("No Match\n"); - } - XftPatternDestroy (pat); - if (!match) - return 0; - - font = XftFontOpenPattern (dpy, match); - if (!font) - XftPatternDestroy (match); - - return font; -} - -XftFont * -XftFontOpenXlfd (Display *dpy, int screen, const char *xlfd) -{ - XftPattern *pat; - XftPattern *match; - XftResult result; - XftFont *font; - - pat = XftXlfdParse (xlfd, False, False); - if (_XftFontDebug () & XFT_DBG_OPEN) - { - printf ("XftFontOpenXlfd \"%s\": ", xlfd); - if (pat) - printf ("Invalid xlfd\n"); - else - XftPatternPrint (pat); - } - - if (!pat) - return 0; - match = XftFontMatch (dpy, screen, pat, &result); - if (_XftFontDebug () & XFT_DBG_OPEN) - { - if (match) - { - printf ("Match "); - XftPatternPrint (match); - } - else - printf ("No Match\n"); - } - XftPatternDestroy (pat); - if (!match) - return 0; - - font = XftFontOpenPattern (dpy, match); - if (!font) - XftPatternDestroy (match); - - return font; -} - -void -XftFontClose (Display *dpy, XftFont *font) -{ - if (font->core) - XftCoreClose (dpy, font->u.core.font); -#ifdef FREETYPE2 - else - XftFreeTypeClose (dpy, font->u.ft.font); -#endif - if (font->pattern) - XftPatternDestroy (font->pattern); - free (font); -} - -Bool -XftGlyphExists (Display *dpy, XftFont *font, XftChar32 glyph) -{ - if (font->core) - return XftCoreGlyphExists (dpy, font->u.core.font, glyph); - else -#ifdef FREETYPE2 - return XftFreeTypeGlyphExists (dpy, font->u.ft.font, glyph); -#else - return False; -#endif -} |