10d590c07Smrg/*
2de3c0529Smrg * Copyright © 2022 Thomas E. Dickey
30d590c07Smrg * Copyright © 2000 Keith Packard
40d590c07Smrg *
50d590c07Smrg * Permission to use, copy, modify, distribute, and sell this software and its
60d590c07Smrg * documentation for any purpose is hereby granted without fee, provided that
7de3c0529Smrg * the above copyright notice appear in all copies and that both that copyright
8de3c0529Smrg * notice and this permission notice appear in supporting documentation, and
9de3c0529Smrg * that the name of the above copyright holders not be used in advertising or
10de3c0529Smrg * publicity pertaining to distribution of the software without specific,
11de3c0529Smrg * written prior permission.  The above copyright holders make no
120d590c07Smrg * representations about the suitability of this software for any purpose.  It
130d590c07Smrg * is provided "as is" without express or implied warranty.
140d590c07Smrg *
15de3c0529Smrg * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD TO
16de3c0529Smrg * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17de3c0529Smrg * FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE
18de3c0529Smrg * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
19de3c0529Smrg * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
20de3c0529Smrg * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
21de3c0529Smrg * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
220d590c07Smrg */
230d590c07Smrg
240d590c07Smrg#ifndef _XFT_H_
250d590c07Smrg#define _XFT_H_
260d590c07Smrg
270d590c07Smrg/*
280d590c07Smrg * Current Xft version number, set from version in the Xft configure.ac file.
290d590c07Smrg */
30c2939121Smrg/* #undef will be substituted by configure */
31c2939121Smrg#undef XFT_MAJOR
32c2939121Smrg#undef XFT_MINOR
33c2939121Smrg#undef XFT_REVISION
340d590c07Smrg
350d590c07Smrg#define XFT_VERSION	((XFT_MAJOR * 10000) + (XFT_MINOR * 100) + (XFT_REVISION))
360d590c07Smrg#define XftVersion	XFT_VERSION
370d590c07Smrg
380d590c07Smrg#include <stdarg.h>
390d590c07Smrg#include <ft2build.h>
400d590c07Smrg#include FT_FREETYPE_H
410d590c07Smrg#include <fontconfig/fontconfig.h>
420d590c07Smrg#include <X11/extensions/Xrender.h>
430d590c07Smrg
440d590c07Smrg#include <X11/Xfuncproto.h>
450d590c07Smrg
460d590c07Smrg#ifndef _XFT_NO_COMPAT_
470d590c07Smrg#include <X11/Xft/XftCompat.h>
480d590c07Smrg#endif
490d590c07Smrg
500d590c07Smrg#define XFT_CORE		"core"
510d590c07Smrg#define XFT_RENDER		"render"
520d590c07Smrg#define XFT_XLFD		"xlfd"
530d590c07Smrg#define XFT_MAX_GLYPH_MEMORY	"maxglyphmemory"
540d590c07Smrg#define XFT_MAX_UNREF_FONTS	"maxunreffonts"
55de3c0529Smrg#define XFT_TRACK_MEM_USAGE	"trackmemusage"
560d590c07Smrg
570d590c07Smrgextern FT_Library	_XftFTlibrary;
580d590c07Smrg
590d590c07Smrgtypedef struct _XftFontInfo XftFontInfo;
600d590c07Smrg
610d590c07Smrgtypedef struct _XftFont {
620d590c07Smrg    int		ascent;
630d590c07Smrg    int		descent;
640d590c07Smrg    int		height;
650d590c07Smrg    int		max_advance_width;
660d590c07Smrg    FcCharSet	*charset;
670d590c07Smrg    FcPattern	*pattern;
680d590c07Smrg} XftFont;
690d590c07Smrg
700d590c07Smrgtypedef struct _XftDraw XftDraw;
710d590c07Smrg
720d590c07Smrgtypedef struct _XftColor {
730d590c07Smrg    unsigned long   pixel;
740d590c07Smrg    XRenderColor    color;
750d590c07Smrg} XftColor;
760d590c07Smrg
770d590c07Smrgtypedef struct _XftCharSpec {
780d590c07Smrg    FcChar32	    ucs4;
790d590c07Smrg    short	    x;
800d590c07Smrg    short	    y;
810d590c07Smrg} XftCharSpec;
820d590c07Smrg
830d590c07Smrgtypedef struct _XftCharFontSpec {
840d590c07Smrg    XftFont	    *font;
850d590c07Smrg    FcChar32	    ucs4;
860d590c07Smrg    short	    x;
870d590c07Smrg    short	    y;
880d590c07Smrg} XftCharFontSpec;
890d590c07Smrg
900d590c07Smrgtypedef struct _XftGlyphSpec {
910d590c07Smrg    FT_UInt	    glyph;
920d590c07Smrg    short	    x;
930d590c07Smrg    short	    y;
940d590c07Smrg} XftGlyphSpec;
950d590c07Smrg
960d590c07Smrgtypedef struct _XftGlyphFontSpec {
970d590c07Smrg    XftFont	    *font;
980d590c07Smrg    FT_UInt	    glyph;
990d590c07Smrg    short	    x;
1000d590c07Smrg    short	    y;
1010d590c07Smrg} XftGlyphFontSpec;
1020d590c07Smrg
1030d590c07Smrg_XFUNCPROTOBEGIN
1040d590c07Smrg
1052836776bSmrg
1060d590c07Smrg/* xftcolor.c */
1070d590c07SmrgBool
1080d590c07SmrgXftColorAllocName (Display  *dpy,
1090d590c07Smrg		   _Xconst Visual   *visual,
1100d590c07Smrg		   Colormap cmap,
1110d590c07Smrg		   _Xconst char	    *name,
1120d590c07Smrg		   XftColor *result);
1130d590c07Smrg
1140d590c07SmrgBool
1150d590c07SmrgXftColorAllocValue (Display	    *dpy,
1160d590c07Smrg		    Visual	    *visual,
1170d590c07Smrg		    Colormap	    cmap,
1180d590c07Smrg		    _Xconst XRenderColor    *color,
1190d590c07Smrg		    XftColor	    *result);
1200d590c07Smrg
1210d590c07Smrgvoid
1220d590c07SmrgXftColorFree (Display	*dpy,
1230d590c07Smrg	      Visual	*visual,
1240d590c07Smrg	      Colormap	cmap,
1250d590c07Smrg	      XftColor	*color);
1260d590c07Smrg
1270d590c07Smrg/* xftdpy.c */
1280d590c07SmrgBool
1290d590c07SmrgXftDefaultHasRender (Display *dpy);
1302836776bSmrg
1310d590c07SmrgBool
1320d590c07SmrgXftDefaultSet (Display *dpy, FcPattern *defaults);
1330d590c07Smrg
1340d590c07Smrgvoid
1350d590c07SmrgXftDefaultSubstitute (Display *dpy, int screen, FcPattern *pattern);
1362836776bSmrg
1370d590c07Smrg/* xftdraw.c */
1380d590c07Smrg
1390d590c07SmrgXftDraw *
1400d590c07SmrgXftDrawCreate (Display   *dpy,
1410d590c07Smrg	       Drawable  drawable,
1420d590c07Smrg	       Visual    *visual,
1430d590c07Smrg	       Colormap  colormap);
1440d590c07Smrg
1450d590c07SmrgXftDraw *
1460d590c07SmrgXftDrawCreateBitmap (Display  *dpy,
1470d590c07Smrg		     Pixmap   bitmap);
1480d590c07Smrg
1490d590c07SmrgXftDraw *
1502836776bSmrgXftDrawCreateAlpha (Display *dpy,
1510d590c07Smrg		    Pixmap  pixmap,
1520d590c07Smrg		    int	    depth);
1530d590c07Smrg
1540d590c07Smrgvoid
1550d590c07SmrgXftDrawChange (XftDraw	*draw,
1560d590c07Smrg	       Drawable	drawable);
1570d590c07Smrg
1580d590c07SmrgDisplay *
1590d590c07SmrgXftDrawDisplay (XftDraw *draw);
1600d590c07Smrg
1610d590c07SmrgDrawable
1620d590c07SmrgXftDrawDrawable (XftDraw *draw);
1630d590c07Smrg
1640d590c07SmrgColormap
1650d590c07SmrgXftDrawColormap (XftDraw *draw);
1660d590c07Smrg
1670d590c07SmrgVisual *
1680d590c07SmrgXftDrawVisual (XftDraw *draw);
1690d590c07Smrg
1700d590c07Smrgvoid
1710d590c07SmrgXftDrawDestroy (XftDraw	*draw);
1720d590c07Smrg
1730d590c07SmrgPicture
1740d590c07SmrgXftDrawPicture (XftDraw *draw);
1750d590c07Smrg
1760d590c07SmrgPicture
1770d590c07SmrgXftDrawSrcPicture (XftDraw *draw, _Xconst XftColor *color);
1780d590c07Smrg
1790d590c07Smrgvoid
1800d590c07SmrgXftDrawGlyphs (XftDraw		*draw,
1810d590c07Smrg	       _Xconst XftColor	*color,
1820d590c07Smrg	       XftFont		*pub,
1830d590c07Smrg	       int		x,
1840d590c07Smrg	       int		y,
1850d590c07Smrg	       _Xconst FT_UInt	*glyphs,
1860d590c07Smrg	       int		nglyphs);
1870d590c07Smrg
1880d590c07Smrgvoid
1890d590c07SmrgXftDrawString8 (XftDraw		    *draw,
1900d590c07Smrg		_Xconst XftColor    *color,
1910d590c07Smrg		XftFont		    *pub,
1922836776bSmrg		int		    x,
1930d590c07Smrg		int		    y,
1940d590c07Smrg		_Xconst FcChar8	    *string,
1950d590c07Smrg		int		    len);
1960d590c07Smrg
1970d590c07Smrgvoid
1980d590c07SmrgXftDrawString16 (XftDraw	    *draw,
1990d590c07Smrg		 _Xconst XftColor   *color,
2000d590c07Smrg		 XftFont	    *pub,
2010d590c07Smrg		 int		    x,
2020d590c07Smrg		 int		    y,
2030d590c07Smrg		 _Xconst FcChar16   *string,
2040d590c07Smrg		 int		    len);
2050d590c07Smrg
2060d590c07Smrgvoid
2070d590c07SmrgXftDrawString32 (XftDraw	    *draw,
2080d590c07Smrg		 _Xconst XftColor   *color,
2090d590c07Smrg		 XftFont	    *pub,
2100d590c07Smrg		 int		    x,
2110d590c07Smrg		 int		    y,
2120d590c07Smrg		 _Xconst FcChar32   *string,
2130d590c07Smrg		 int		    len);
2140d590c07Smrg
2150d590c07Smrgvoid
2160d590c07SmrgXftDrawStringUtf8 (XftDraw	    *draw,
2170d590c07Smrg		   _Xconst XftColor *color,
2180d590c07Smrg		   XftFont	    *pub,
2192836776bSmrg		   int		    x,
2200d590c07Smrg		   int		    y,
2210d590c07Smrg		   _Xconst FcChar8  *string,
2220d590c07Smrg		   int		    len);
2230d590c07Smrg
2240d590c07Smrgvoid
2250d590c07SmrgXftDrawStringUtf16 (XftDraw		*draw,
2260d590c07Smrg		    _Xconst XftColor	*color,
2270d590c07Smrg		    XftFont		*pub,
2280d590c07Smrg		    int			x,
2290d590c07Smrg		    int			y,
2300d590c07Smrg		    _Xconst FcChar8	*string,
2310d590c07Smrg		    FcEndian		endian,
2320d590c07Smrg		    int			len);
2330d590c07Smrg
2340d590c07Smrgvoid
2350d590c07SmrgXftDrawCharSpec (XftDraw		*draw,
2360d590c07Smrg		 _Xconst XftColor	*color,
2370d590c07Smrg		 XftFont		*pub,
2380d590c07Smrg		 _Xconst XftCharSpec	*chars,
2390d590c07Smrg		 int			len);
2400d590c07Smrg
2410d590c07Smrgvoid
2420d590c07SmrgXftDrawCharFontSpec (XftDraw			*draw,
2430d590c07Smrg		     _Xconst XftColor		*color,
2440d590c07Smrg		     _Xconst XftCharFontSpec	*chars,
2450d590c07Smrg		     int			len);
2460d590c07Smrg
2470d590c07Smrgvoid
2480d590c07SmrgXftDrawGlyphSpec (XftDraw		*draw,
2490d590c07Smrg		  _Xconst XftColor	*color,
2500d590c07Smrg		  XftFont		*pub,
2510d590c07Smrg		  _Xconst XftGlyphSpec	*glyphs,
2520d590c07Smrg		  int			len);
2530d590c07Smrg
2540d590c07Smrgvoid
2550d590c07SmrgXftDrawGlyphFontSpec (XftDraw			*draw,
2560d590c07Smrg		      _Xconst XftColor		*color,
2570d590c07Smrg		      _Xconst XftGlyphFontSpec	*glyphs,
2580d590c07Smrg		      int			len);
2590d590c07Smrg
2600d590c07Smrgvoid
2610d590c07SmrgXftDrawRect (XftDraw		*draw,
2620d590c07Smrg	     _Xconst XftColor	*color,
2632836776bSmrg	     int		x,
2640d590c07Smrg	     int		y,
2650d590c07Smrg	     unsigned int	width,
2660d590c07Smrg	     unsigned int	height);
2670d590c07Smrg
2680d590c07Smrg
2690d590c07SmrgBool
2700d590c07SmrgXftDrawSetClip (XftDraw	    *draw,
2710d590c07Smrg		Region	    r);
2720d590c07Smrg
2730d590c07Smrg
2740d590c07SmrgBool
2750d590c07SmrgXftDrawSetClipRectangles (XftDraw		*draw,
2760d590c07Smrg			  int			xOrigin,
2770d590c07Smrg			  int			yOrigin,
2780d590c07Smrg			  _Xconst XRectangle	*rects,
2790d590c07Smrg			  int			n);
2800d590c07Smrg
2810d590c07Smrgvoid
2820d590c07SmrgXftDrawSetSubwindowMode (XftDraw    *draw,
2830d590c07Smrg			 int	    mode);
2840d590c07Smrg
2850d590c07Smrg/* xftextent.c */
2860d590c07Smrg
2870d590c07Smrgvoid
2880d590c07SmrgXftGlyphExtents (Display	    *dpy,
2890d590c07Smrg		 XftFont	    *pub,
2900d590c07Smrg		 _Xconst FT_UInt    *glyphs,
2910d590c07Smrg		 int		    nglyphs,
2920d590c07Smrg		 XGlyphInfo	    *extents);
2930d590c07Smrg
2940d590c07Smrgvoid
2950d590c07SmrgXftTextExtents8 (Display	    *dpy,
2960d590c07Smrg		 XftFont	    *pub,
2972836776bSmrg		 _Xconst FcChar8    *string,
2980d590c07Smrg		 int		    len,
2990d590c07Smrg		 XGlyphInfo	    *extents);
3000d590c07Smrg
3010d590c07Smrgvoid
3020d590c07SmrgXftTextExtents16 (Display	    *dpy,
3030d590c07Smrg		  XftFont	    *pub,
3042836776bSmrg		  _Xconst FcChar16  *string,
3050d590c07Smrg		  int		    len,
3060d590c07Smrg		  XGlyphInfo	    *extents);
3070d590c07Smrg
3080d590c07Smrgvoid
3090d590c07SmrgXftTextExtents32 (Display	    *dpy,
3100d590c07Smrg		  XftFont	    *pub,
3112836776bSmrg		  _Xconst FcChar32  *string,
3120d590c07Smrg		  int		    len,
3130d590c07Smrg		  XGlyphInfo	    *extents);
3142836776bSmrg
3150d590c07Smrgvoid
3160d590c07SmrgXftTextExtentsUtf8 (Display	    *dpy,
3170d590c07Smrg		    XftFont	    *pub,
3182836776bSmrg		    _Xconst FcChar8 *string,
3190d590c07Smrg		    int		    len,
3200d590c07Smrg		    XGlyphInfo	    *extents);
3210d590c07Smrg
3220d590c07Smrgvoid
3230d590c07SmrgXftTextExtentsUtf16 (Display		*dpy,
3240d590c07Smrg		     XftFont		*pub,
3252836776bSmrg		     _Xconst FcChar8	*string,
3260d590c07Smrg		     FcEndian		endian,
3270d590c07Smrg		     int		len,
3280d590c07Smrg		     XGlyphInfo		*extents);
3290d590c07Smrg
3300d590c07Smrg/* xftfont.c */
3310d590c07SmrgFcPattern *
3320d590c07SmrgXftFontMatch (Display		*dpy,
3330d590c07Smrg	      int		screen,
3340d590c07Smrg	      _Xconst FcPattern *pattern,
3350d590c07Smrg	      FcResult		*result);
3360d590c07Smrg
3370d590c07SmrgXftFont *
3380d590c07SmrgXftFontOpen (Display *dpy, int screen, ...) _X_SENTINEL(0);
3390d590c07Smrg
3400d590c07SmrgXftFont *
3410d590c07SmrgXftFontOpenName (Display *dpy, int screen, _Xconst char *name);
3420d590c07Smrg
3430d590c07SmrgXftFont *
3440d590c07SmrgXftFontOpenXlfd (Display *dpy, int screen, _Xconst char *xlfd);
3450d590c07Smrg
3460d590c07Smrg/* xftfreetype.c */
3470d590c07Smrg
3480d590c07SmrgFT_Face
3490d590c07SmrgXftLockFace (XftFont *pub);
3500d590c07Smrg
3510d590c07Smrgvoid
3520d590c07SmrgXftUnlockFace (XftFont *pub);
3530d590c07Smrg
3540d590c07SmrgXftFontInfo *
3550d590c07SmrgXftFontInfoCreate (Display *dpy, _Xconst FcPattern *pattern);
3560d590c07Smrg
3570d590c07Smrgvoid
3580d590c07SmrgXftFontInfoDestroy (Display *dpy, XftFontInfo *fi);
3590d590c07Smrg
3600d590c07SmrgFcChar32
3610d590c07SmrgXftFontInfoHash (_Xconst XftFontInfo *fi);
3620d590c07Smrg
3630d590c07SmrgFcBool
3640d590c07SmrgXftFontInfoEqual (_Xconst XftFontInfo *a, _Xconst XftFontInfo *b);
3650d590c07Smrg
3660d590c07SmrgXftFont *
3672836776bSmrgXftFontOpenInfo (Display	*dpy,
3682836776bSmrg		 FcPattern	*pattern,
3690d590c07Smrg		 XftFontInfo	*fi);
3700d590c07Smrg
3710d590c07SmrgXftFont *
3720d590c07SmrgXftFontOpenPattern (Display *dpy, FcPattern *pattern);
3730d590c07Smrg
3740d590c07SmrgXftFont *
3750d590c07SmrgXftFontCopy (Display *dpy, XftFont *pub);
3760d590c07Smrg
3770d590c07Smrgvoid
3780d590c07SmrgXftFontClose (Display *dpy, XftFont *pub);
3790d590c07Smrg
3800d590c07SmrgFcBool
3810d590c07SmrgXftInitFtLibrary(void);
3820d590c07Smrg
3830d590c07Smrg/* xftglyphs.c */
3840d590c07Smrgvoid
3850d590c07SmrgXftFontLoadGlyphs (Display	    *dpy,
3860d590c07Smrg		   XftFont	    *pub,
3870d590c07Smrg		   FcBool	    need_bitmaps,
3880d590c07Smrg		   _Xconst FT_UInt  *glyphs,
3890d590c07Smrg		   int		    nglyph);
3900d590c07Smrg
3910d590c07Smrgvoid
3920d590c07SmrgXftFontUnloadGlyphs (Display		*dpy,
3930d590c07Smrg		     XftFont		*pub,
3940d590c07Smrg		     _Xconst FT_UInt	*glyphs,
3950d590c07Smrg		     int		nglyph);
3960d590c07Smrg
3970d590c07Smrg#define XFT_NMISSING		256
3980d590c07Smrg
3990d590c07SmrgFcBool
4000d590c07SmrgXftFontCheckGlyph (Display  *dpy,
4010d590c07Smrg		   XftFont  *pub,
4020d590c07Smrg		   FcBool   need_bitmaps,
4030d590c07Smrg		   FT_UInt  glyph,
4040d590c07Smrg		   FT_UInt  *missing,
4050d590c07Smrg		   int	    *nmissing);
4060d590c07Smrg
4070d590c07SmrgFcBool
4080d590c07SmrgXftCharExists (Display	    *dpy,
4090d590c07Smrg	       XftFont	    *pub,
4100d590c07Smrg	       FcChar32    ucs4);
4112836776bSmrg
4120d590c07SmrgFT_UInt
4132836776bSmrgXftCharIndex (Display	    *dpy,
4140d590c07Smrg	      XftFont	    *pub,
4150d590c07Smrg	      FcChar32	    ucs4);
4162836776bSmrg
4170d590c07Smrg/* xftinit.c */
4180d590c07SmrgFcBool
4190d590c07SmrgXftInit (_Xconst char *config);
4200d590c07Smrg
4210d590c07Smrgint
4220d590c07SmrgXftGetVersion (void);
4230d590c07Smrg
4240d590c07Smrg/* xftlist.c */
4250d590c07Smrg
4260d590c07SmrgFcFontSet *
4270d590c07SmrgXftListFonts (Display	*dpy,
4280d590c07Smrg	      int	screen,
4290d590c07Smrg	      ...) _X_SENTINEL(0);
4300d590c07Smrg
4310d590c07Smrg/* xftname.c */
4322836776bSmrgFcPattern
4330d590c07Smrg*XftNameParse (_Xconst char *name);
4340d590c07Smrg
435de3c0529SmrgFcBool
436de3c0529SmrgXftNameUnparse (FcPattern *pat, char *dest, int len);
437de3c0529Smrg
4380d590c07Smrg/* xftrender.c */
4390d590c07Smrgvoid
4400d590c07SmrgXftGlyphRender (Display		*dpy,
4410d590c07Smrg		int		op,
4420d590c07Smrg		Picture		src,
4430d590c07Smrg		XftFont		*pub,
4440d590c07Smrg		Picture		dst,
4450d590c07Smrg		int		srcx,
4460d590c07Smrg		int		srcy,
4470d590c07Smrg		int		x,
4480d590c07Smrg		int		y,
4490d590c07Smrg		_Xconst FT_UInt	*glyphs,
4500d590c07Smrg		int		nglyphs);
4510d590c07Smrg
4520d590c07Smrgvoid
4530d590c07SmrgXftGlyphSpecRender (Display		    *dpy,
4540d590c07Smrg		    int			    op,
4550d590c07Smrg		    Picture		    src,
4560d590c07Smrg		    XftFont		    *pub,
4570d590c07Smrg		    Picture		    dst,
4580d590c07Smrg		    int			    srcx,
4590d590c07Smrg		    int			    srcy,
4600d590c07Smrg		    _Xconst XftGlyphSpec    *glyphs,
4610d590c07Smrg		    int			    nglyphs);
4620d590c07Smrg
4630d590c07Smrgvoid
4640d590c07SmrgXftCharSpecRender (Display		*dpy,
4650d590c07Smrg		   int			op,
4660d590c07Smrg		   Picture		src,
4670d590c07Smrg		   XftFont		*pub,
4680d590c07Smrg		   Picture		dst,
4692836776bSmrg		   int			srcx,
4700d590c07Smrg		   int			srcy,
4710d590c07Smrg		   _Xconst XftCharSpec	*chars,
4720d590c07Smrg		   int			len);
4730d590c07Smrg
4740d590c07Smrgvoid
4750d590c07SmrgXftGlyphFontSpecRender (Display			    *dpy,
4760d590c07Smrg			int			    op,
4770d590c07Smrg			Picture			    src,
4780d590c07Smrg			Picture			    dst,
4790d590c07Smrg			int			    srcx,
4800d590c07Smrg			int			    srcy,
4810d590c07Smrg			_Xconst XftGlyphFontSpec    *glyphs,
4820d590c07Smrg			int			    nglyphs);
4830d590c07Smrg
4840d590c07Smrgvoid
4850d590c07SmrgXftCharFontSpecRender (Display			*dpy,
4860d590c07Smrg		       int			op,
4870d590c07Smrg		       Picture			src,
4880d590c07Smrg		       Picture			dst,
4890d590c07Smrg		       int			srcx,
4900d590c07Smrg		       int			srcy,
4910d590c07Smrg		       _Xconst XftCharFontSpec	*chars,
4920d590c07Smrg		       int			len);
4930d590c07Smrg
4940d590c07Smrgvoid
4950d590c07SmrgXftTextRender8 (Display		*dpy,
4960d590c07Smrg		int		op,
4970d590c07Smrg		Picture		src,
4980d590c07Smrg		XftFont		*pub,
4990d590c07Smrg		Picture		dst,
5000d590c07Smrg		int		srcx,
5010d590c07Smrg		int		srcy,
5020d590c07Smrg		int		x,
5030d590c07Smrg		int		y,
5040d590c07Smrg		_Xconst FcChar8	*string,
5050d590c07Smrg		int		len);
5060d590c07Smrg
5070d590c07Smrgvoid
5080d590c07SmrgXftTextRender16 (Display	    *dpy,
5090d590c07Smrg		 int		    op,
5100d590c07Smrg		 Picture	    src,
5110d590c07Smrg		 XftFont	    *pub,
5120d590c07Smrg		 Picture	    dst,
5130d590c07Smrg		 int		    srcx,
5140d590c07Smrg		 int		    srcy,
5150d590c07Smrg		 int		    x,
5160d590c07Smrg		 int		    y,
5170d590c07Smrg		 _Xconst FcChar16   *string,
5180d590c07Smrg		 int		    len);
5190d590c07Smrg
5200d590c07Smrgvoid
5210d590c07SmrgXftTextRender16BE (Display	    *dpy,
5220d590c07Smrg		   int		    op,
5230d590c07Smrg		   Picture	    src,
5240d590c07Smrg		   XftFont	    *pub,
5250d590c07Smrg		   Picture	    dst,
5260d590c07Smrg		   int		    srcx,
5270d590c07Smrg		   int		    srcy,
5280d590c07Smrg		   int		    x,
5290d590c07Smrg		   int		    y,
5300d590c07Smrg		   _Xconst FcChar8  *string,
5310d590c07Smrg		   int		    len);
5320d590c07Smrg
5330d590c07Smrgvoid
5340d590c07SmrgXftTextRender16LE (Display	    *dpy,
5350d590c07Smrg		   int		    op,
5360d590c07Smrg		   Picture	    src,
5370d590c07Smrg		   XftFont	    *pub,
5380d590c07Smrg		   Picture	    dst,
5390d590c07Smrg		   int		    srcx,
5400d590c07Smrg		   int		    srcy,
5410d590c07Smrg		   int		    x,
5420d590c07Smrg		   int		    y,
5430d590c07Smrg		   _Xconst FcChar8  *string,
5440d590c07Smrg		   int		    len);
5450d590c07Smrg
5460d590c07Smrgvoid
5470d590c07SmrgXftTextRender32 (Display	    *dpy,
5480d590c07Smrg		 int		    op,
5490d590c07Smrg		 Picture	    src,
5500d590c07Smrg		 XftFont	    *pub,
5510d590c07Smrg		 Picture	    dst,
5520d590c07Smrg		 int		    srcx,
5530d590c07Smrg		 int		    srcy,
5540d590c07Smrg		 int		    x,
5550d590c07Smrg		 int		    y,
5560d590c07Smrg		 _Xconst FcChar32   *string,
5570d590c07Smrg		 int		    len);
5580d590c07Smrg
5590d590c07Smrgvoid
5600d590c07SmrgXftTextRender32BE (Display	    *dpy,
5610d590c07Smrg		   int		    op,
5620d590c07Smrg		   Picture	    src,
5630d590c07Smrg		   XftFont	    *pub,
5640d590c07Smrg		   Picture	    dst,
5650d590c07Smrg		   int		    srcx,
5660d590c07Smrg		   int		    srcy,
5670d590c07Smrg		   int		    x,
5680d590c07Smrg		   int		    y,
5690d590c07Smrg		   _Xconst FcChar8  *string,
5700d590c07Smrg		   int		    len);
5710d590c07Smrg
5720d590c07Smrgvoid
5730d590c07SmrgXftTextRender32LE (Display	    *dpy,
5740d590c07Smrg		   int		    op,
5750d590c07Smrg		   Picture	    src,
5760d590c07Smrg		   XftFont	    *pub,
5770d590c07Smrg		   Picture	    dst,
5780d590c07Smrg		   int		    srcx,
5790d590c07Smrg		   int		    srcy,
5800d590c07Smrg		   int		    x,
5810d590c07Smrg		   int		    y,
5820d590c07Smrg		   _Xconst FcChar8  *string,
5830d590c07Smrg		   int		    len);
5840d590c07Smrg
5850d590c07Smrgvoid
5860d590c07SmrgXftTextRenderUtf8 (Display	    *dpy,
5870d590c07Smrg		   int		    op,
5880d590c07Smrg		   Picture	    src,
5890d590c07Smrg		   XftFont	    *pub,
5900d590c07Smrg		   Picture	    dst,
5910d590c07Smrg		   int		    srcx,
5920d590c07Smrg		   int		    srcy,
5930d590c07Smrg		   int		    x,
5940d590c07Smrg		   int		    y,
5950d590c07Smrg		   _Xconst FcChar8  *string,
5960d590c07Smrg		   int		    len);
5970d590c07Smrg
5980d590c07Smrgvoid
5990d590c07SmrgXftTextRenderUtf16 (Display	    *dpy,
6000d590c07Smrg		    int		    op,
6010d590c07Smrg		    Picture	    src,
6020d590c07Smrg		    XftFont	    *pub,
6030d590c07Smrg		    Picture	    dst,
6040d590c07Smrg		    int		    srcx,
6050d590c07Smrg		    int		    srcy,
6060d590c07Smrg		    int		    x,
6070d590c07Smrg		    int		    y,
6080d590c07Smrg		    _Xconst FcChar8 *string,
6090d590c07Smrg		    FcEndian	    endian,
6100d590c07Smrg		    int		    len);
6110d590c07Smrg
6120d590c07Smrg/* xftxlfd.c */
6130d590c07SmrgFcPattern *
6140d590c07SmrgXftXlfdParse (_Xconst char *xlfd_orig, Bool ignore_scalable, Bool complete);
6152836776bSmrg
6160d590c07Smrg_XFUNCPROTOEND
6170d590c07Smrg
6180d590c07Smrg#endif /* _XFT_H_ */
619