summaryrefslogtreecommitdiff
path: root/pango/mini-xft/minixftfont.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/mini-xft/minixftfont.c')
-rw-r--r--pango/mini-xft/minixftfont.c111
1 files changed, 111 insertions, 0 deletions
diff --git a/pango/mini-xft/minixftfont.c b/pango/mini-xft/minixftfont.c
new file mode 100644
index 00000000..46665c43
--- /dev/null
+++ b/pango/mini-xft/minixftfont.c
@@ -0,0 +1,111 @@
+/*
+ * $XFree86: xc/lib/MiniXft/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 "minixftint.h"
+
+MiniXftPattern *
+MiniXftFontMatch (Display *dpy, int screen, MiniXftPattern *pattern, MiniXftResult *result)
+{
+ MiniXftPattern *new;
+ MiniXftPattern *match;
+ MiniXftFontSet *sets[2];
+ int nsets;
+ Bool render, core;
+
+ if (!MiniXftInit (0))
+ return 0;
+
+ new = MiniXftPatternDuplicate (pattern);
+ if (!new)
+ return 0;
+
+ if (_MiniXftFontDebug () & XFT_DBG_OPENV)
+ {
+ printf ("MiniXftFontMatch pattern ");
+ MiniXftPatternPrint (new);
+ }
+ MiniXftConfigSubstitute (new);
+ if (_MiniXftFontDebug () & XFT_DBG_OPENV)
+ {
+ printf ("MiniXftFontMatch after MiniXftConfig substitutions ");
+ MiniXftPatternPrint (new);
+ }
+ MiniXftDefaultSubstitute (dpy, screen, new);
+ if (_MiniXftFontDebug () & XFT_DBG_OPENV)
+ {
+ printf ("MiniXftFontMatch after X resource substitutions ");
+ MiniXftPatternPrint (new);
+ }
+ nsets = 0;
+
+ render = True;
+ core = False;
+ (void) MiniXftPatternGetBool (new, XFT_RENDER, 0, &render);
+ (void) MiniXftPatternGetBool (new, XFT_CORE, 0, &core);
+ if (_MiniXftFontDebug () & XFT_DBG_OPENV)
+ {
+ printf ("MiniXftFontMatch: use core fonts \"%s\", use render fonts \"%s\"\n",
+ core ? "True" : "False", render ? "True" : "False");
+ }
+
+ if (render)
+ {
+ if (MiniXftInitFtLibrary ())
+ {
+ sets[nsets] = _MiniXftFontSet;
+ if (sets[nsets])
+ nsets++;
+ }
+ }
+
+ match = MiniXftFontSetMatch (sets, nsets, new, result);
+ MiniXftPatternDestroy (new);
+ return match;
+}
+
+int
+_MiniXftFontDebug (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;
+}
+