Xft.h
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:12k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * Copyright © 2000 Keith Packard
  3.  *
  4.  * Permission to use, copy, modify, distribute, and sell this software and its
  5.  * documentation for any purpose is hereby granted without fee, provided that
  6.  * the above copyright notice appear in all copies and that both that
  7.  * copyright notice and this permission notice appear in supporting
  8.  * documentation, and that the name of Keith Packard not be used in
  9.  * advertising or publicity pertaining to distribution of the software without
  10.  * specific, written prior permission.  Keith Packard makes no
  11.  * representations about the suitability of this software for any purpose.  It
  12.  * is provided "as is" without express or implied warranty.
  13.  *
  14.  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  15.  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  16.  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  17.  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  18.  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  19.  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  20.  * PERFORMANCE OF THIS SOFTWARE.
  21.  */
  22. #ifndef _XFT_H_
  23. #define _XFT_H_
  24. /*
  25.   * Current Xft version number.  This same number
  26.   * must appear in the Xft configure.ac file. Yes,
  27.   * it'a a pain to synchronize version numbers like this.
  28.   */
  29. #define XFT_MAJOR 2
  30. #define XFT_MINOR 1
  31. #define XFT_REVISION 13
  32. #define XFT_VERSION ((XFT_MAJOR * 10000) + (XFT_MINOR * 100) + (XFT_REVISION))
  33. #define XftVersion XFT_VERSION
  34. #include <stdarg.h>
  35. #include <ft2build.h>
  36. #include FT_FREETYPE_H
  37. #include <fontconfig/fontconfig.h>
  38. #include <X11/extensions/Xrender.h>
  39. #include <X11/Xfuncproto.h>
  40. /* #include <X11/Xosdefs.h>*/
  41. #ifndef _X_SENTINEL
  42. # define _X_SENTINEL(x)
  43. #endif
  44. #ifndef _XFT_NO_COMPAT_
  45. #include <X11/Xft/XftCompat.h>
  46. #endif
  47. #define XFT_CORE "core"
  48. #define XFT_RENDER "render"
  49. #define XFT_XLFD "xlfd"
  50. #define XFT_MAX_GLYPH_MEMORY "maxglyphmemory"
  51. #define XFT_MAX_UNREF_FONTS "maxunreffonts"
  52. extern FT_Library _XftFTlibrary;
  53. typedef struct _XftFontInfo XftFontInfo;
  54. typedef struct _XftFont {
  55.     int ascent;
  56.     int descent;
  57.     int height;
  58.     int max_advance_width;
  59.     FcCharSet *charset;
  60.     FcPattern *pattern;
  61. } XftFont;
  62. typedef struct _XftDraw XftDraw;
  63. typedef struct _XftColor {
  64.     unsigned long   pixel;
  65.     XRenderColor    color;
  66. } XftColor;
  67. typedef struct _XftCharSpec {
  68.     FcChar32     ucs4;
  69.     short     x;
  70.     short     y;
  71. } XftCharSpec;
  72. typedef struct _XftCharFontSpec {
  73.     XftFont     *font;
  74.     FcChar32     ucs4;
  75.     short     x;
  76.     short     y;
  77. } XftCharFontSpec;
  78. typedef struct _XftGlyphSpec {
  79.     FT_UInt     glyph;
  80.     short     x;
  81.     short     y;
  82. } XftGlyphSpec;
  83. typedef struct _XftGlyphFontSpec {
  84.     XftFont     *font;
  85.     FT_UInt     glyph;
  86.     short     x;
  87.     short     y;
  88. } XftGlyphFontSpec;
  89. _XFUNCPROTOBEGIN
  90.     
  91. /* xftcolor.c */
  92. Bool
  93. XftColorAllocName (Display  *dpy,
  94.    _Xconst Visual   *visual,
  95.    Colormap cmap,
  96.    _Xconst char     *name,
  97.    XftColor *result);
  98. Bool
  99. XftColorAllocValue (Display     *dpy,
  100.     Visual     *visual,
  101.     Colormap     cmap,
  102.     _Xconst XRenderColor    *color,
  103.     XftColor     *result);
  104. void
  105. XftColorFree (Display *dpy,
  106.       Visual *visual,
  107.       Colormap cmap,
  108.       XftColor *color);
  109. /* xftcore.c */
  110. /* xftdir.c */
  111. FcBool
  112. XftDirScan (FcFontSet *set, _Xconst char *dir, FcBool force);
  113. FcBool
  114. XftDirSave (FcFontSet *set, _Xconst char *dir);
  115. /* xftdpy.c */
  116. Bool
  117. XftDefaultHasRender (Display *dpy);
  118.     
  119. Bool
  120. XftDefaultSet (Display *dpy, FcPattern *defaults);
  121. void
  122. XftDefaultSubstitute (Display *dpy, int screen, FcPattern *pattern);
  123.     
  124. /* xftdraw.c */
  125. XftDraw *
  126. XftDrawCreate (Display   *dpy,
  127.        Drawable  drawable,
  128.        Visual    *visual,
  129.        Colormap  colormap);
  130. XftDraw *
  131. XftDrawCreateBitmap (Display  *dpy,
  132.      Pixmap   bitmap);
  133. XftDraw *
  134. XftDrawCreateAlpha (Display *dpy, 
  135.     Pixmap  pixmap,
  136.     int     depth);
  137. void
  138. XftDrawChange (XftDraw *draw,
  139.        Drawable drawable);
  140. Display *
  141. XftDrawDisplay (XftDraw *draw);
  142. Drawable
  143. XftDrawDrawable (XftDraw *draw);
  144. Colormap
  145. XftDrawColormap (XftDraw *draw);
  146. Visual *
  147. XftDrawVisual (XftDraw *draw);
  148. void
  149. XftDrawDestroy (XftDraw *draw);
  150. Picture
  151. XftDrawPicture (XftDraw *draw);
  152. Picture
  153. XftDrawSrcPicture (XftDraw *draw, _Xconst XftColor *color);
  154. void
  155. XftDrawGlyphs (XftDraw *draw,
  156.        _Xconst XftColor *color,
  157.        XftFont *pub,
  158.        int x,
  159.        int y,
  160.        _Xconst FT_UInt *glyphs,
  161.        int nglyphs);
  162. void
  163. XftDrawString8 (XftDraw     *draw,
  164. _Xconst XftColor    *color,
  165. XftFont     *pub,
  166. int     x, 
  167. int     y,
  168. _Xconst FcChar8     *string,
  169. int     len);
  170. void
  171. XftDrawString16 (XftDraw     *draw,
  172.  _Xconst XftColor   *color,
  173.  XftFont     *pub,
  174.  int     x,
  175.  int     y,
  176.  _Xconst FcChar16   *string,
  177.  int     len);
  178. void
  179. XftDrawString32 (XftDraw     *draw,
  180.  _Xconst XftColor   *color,
  181.  XftFont     *pub,
  182.  int     x,
  183.  int     y,
  184.  _Xconst FcChar32   *string,
  185.  int     len);
  186. void
  187. XftDrawStringUtf8 (XftDraw     *draw,
  188.    _Xconst XftColor *color,
  189.    XftFont     *pub,
  190.    int     x, 
  191.    int     y,
  192.    _Xconst FcChar8  *string,
  193.    int     len);
  194. void
  195. XftDrawStringUtf16 (XftDraw *draw,
  196.     _Xconst XftColor *color,
  197.     XftFont *pub,
  198.     int x,
  199.     int y,
  200.     _Xconst FcChar8 *string,
  201.     FcEndian endian,
  202.     int len);
  203. void
  204. XftDrawCharSpec (XftDraw *draw,
  205.  _Xconst XftColor *color,
  206.  XftFont *pub,
  207.  _Xconst XftCharSpec *chars,
  208.  int len);
  209. void
  210. XftDrawCharFontSpec (XftDraw *draw,
  211.      _Xconst XftColor *color,
  212.      _Xconst XftCharFontSpec *chars,
  213.      int len);
  214. void
  215. XftDrawGlyphSpec (XftDraw *draw,
  216.   _Xconst XftColor *color,
  217.   XftFont *pub,
  218.   _Xconst XftGlyphSpec *glyphs,
  219.   int len);
  220. void
  221. XftDrawGlyphFontSpec (XftDraw *draw,
  222.       _Xconst XftColor *color,
  223.       _Xconst XftGlyphFontSpec *glyphs,
  224.       int len);
  225. void
  226. XftDrawRect (XftDraw *draw,
  227.      _Xconst XftColor *color,
  228.      int x, 
  229.      int y,
  230.      unsigned int width,
  231.      unsigned int height);
  232. Bool
  233. XftDrawSetClip (XftDraw     *draw,
  234. Region     r);
  235. Bool
  236. XftDrawSetClipRectangles (XftDraw *draw,
  237.   int xOrigin,
  238.   int yOrigin,
  239.   _Xconst XRectangle *rects,
  240.   int n);
  241. void
  242. XftDrawSetSubwindowMode (XftDraw    *draw,
  243.  int     mode);
  244. /* xftextent.c */
  245. void
  246. XftGlyphExtents (Display     *dpy,
  247.  XftFont     *pub,
  248.  _Xconst FT_UInt    *glyphs,
  249.  int     nglyphs,
  250.  XGlyphInfo     *extents);
  251. void
  252. XftTextExtents8 (Display     *dpy,
  253.  XftFont     *pub,
  254.  _Xconst FcChar8    *string, 
  255.  int     len,
  256.  XGlyphInfo     *extents);
  257. void
  258. XftTextExtents16 (Display     *dpy,
  259.   XftFont     *pub,
  260.   _Xconst FcChar16  *string, 
  261.   int     len,
  262.   XGlyphInfo     *extents);
  263. void
  264. XftTextExtents32 (Display     *dpy,
  265.   XftFont     *pub,
  266.   _Xconst FcChar32  *string, 
  267.   int     len,
  268.   XGlyphInfo     *extents);
  269.     
  270. void
  271. XftTextExtentsUtf8 (Display     *dpy,
  272.     XftFont     *pub,
  273.     _Xconst FcChar8 *string, 
  274.     int     len,
  275.     XGlyphInfo     *extents);
  276. void
  277. XftTextExtentsUtf16 (Display *dpy,
  278.      XftFont *pub,
  279.      _Xconst FcChar8 *string, 
  280.      FcEndian endian,
  281.      int len,
  282.      XGlyphInfo *extents);
  283. /* xftfont.c */
  284. FcPattern *
  285. XftFontMatch (Display *dpy,
  286.       int screen,
  287.       _Xconst FcPattern *pattern,
  288.       FcResult *result);
  289. XftFont *
  290. XftFontOpen (Display *dpy, int screen, ...) _X_SENTINEL(0);
  291. XftFont *
  292. XftFontOpenName (Display *dpy, int screen, _Xconst char *name);
  293. XftFont *
  294. XftFontOpenXlfd (Display *dpy, int screen, _Xconst char *xlfd);
  295. /* xftfreetype.c */
  296. FT_Face
  297. XftLockFace (XftFont *pub);
  298. void
  299. XftUnlockFace (XftFont *pub);
  300. XftFontInfo *
  301. XftFontInfoCreate (Display *dpy, _Xconst FcPattern *pattern);
  302. void
  303. XftFontInfoDestroy (Display *dpy, XftFontInfo *fi);
  304. FcChar32
  305. XftFontInfoHash (_Xconst XftFontInfo *fi);
  306. FcBool
  307. XftFontInfoEqual (_Xconst XftFontInfo *a, _Xconst XftFontInfo *b);
  308. XftFont *
  309. XftFontOpenInfo (Display *dpy, 
  310.  FcPattern *pattern, 
  311.  XftFontInfo *fi);
  312. XftFont *
  313. XftFontOpenPattern (Display *dpy, FcPattern *pattern);
  314. XftFont *
  315. XftFontCopy (Display *dpy, XftFont *pub);
  316. void
  317. XftFontClose (Display *dpy, XftFont *pub);
  318. FcBool
  319. XftInitFtLibrary(void);
  320. /* xftglyphs.c */
  321. void
  322. XftFontLoadGlyphs (Display     *dpy,
  323.    XftFont     *pub,
  324.    FcBool     need_bitmaps,
  325.    _Xconst FT_UInt  *glyphs,
  326.    int     nglyph);
  327. void
  328. XftFontUnloadGlyphs (Display *dpy,
  329.      XftFont *pub,
  330.      _Xconst FT_UInt *glyphs,
  331.      int nglyph);
  332. #define XFT_NMISSING 256
  333. FcBool
  334. XftFontCheckGlyph (Display  *dpy,
  335.    XftFont  *pub,
  336.    FcBool   need_bitmaps,
  337.    FT_UInt  glyph,
  338.    FT_UInt  *missing,
  339.    int     *nmissing);
  340. FcBool
  341. XftCharExists (Display     *dpy,
  342.        XftFont     *pub,
  343.        FcChar32    ucs4);
  344.     
  345. FT_UInt
  346. XftCharIndex (Display     *dpy, 
  347.       XftFont     *pub,
  348.       FcChar32     ucs4);
  349.     
  350. /* xftinit.c */
  351. FcBool
  352. XftInit (_Xconst char *config);
  353. int
  354. XftGetVersion (void);
  355. /* xftlist.c */
  356. FcFontSet *
  357. XftListFonts (Display *dpy,
  358.       int screen,
  359.       ...) _X_SENTINEL(0);
  360. /* xftname.c */
  361. FcPattern 
  362. *XftNameParse (_Xconst char *name);
  363. /* xftrender.c */
  364. void
  365. XftGlyphRender (Display *dpy,
  366. int op,
  367. Picture src,
  368. XftFont *pub,
  369. Picture dst,
  370. int srcx,
  371. int srcy,
  372. int x,
  373. int y,
  374. _Xconst FT_UInt *glyphs,
  375. int nglyphs);
  376. void
  377. XftGlyphSpecRender (Display     *dpy,
  378.     int     op,
  379.     Picture     src,
  380.     XftFont     *pub,
  381.     Picture     dst,
  382.     int     srcx,
  383.     int     srcy,
  384.     _Xconst XftGlyphSpec    *glyphs,
  385.     int     nglyphs);
  386. void
  387. XftCharSpecRender (Display *dpy,
  388.    int op,
  389.    Picture src,
  390.    XftFont *pub,
  391.    Picture dst,
  392.    int srcx, 
  393.    int srcy,
  394.    _Xconst XftCharSpec *chars,
  395.    int len);
  396. void
  397. XftGlyphFontSpecRender (Display     *dpy,
  398. int     op,
  399. Picture     src,
  400. Picture     dst,
  401. int     srcx,
  402. int     srcy,
  403. _Xconst XftGlyphFontSpec    *glyphs,
  404. int     nglyphs);
  405. void
  406. XftCharFontSpecRender (Display *dpy,
  407.        int op,
  408.        Picture src,
  409.        Picture dst,
  410.        int srcx,
  411.        int srcy,
  412.        _Xconst XftCharFontSpec *chars,
  413.        int len);
  414. void
  415. XftTextRender8 (Display *dpy,
  416. int op,
  417. Picture src,
  418. XftFont *pub,
  419. Picture dst,
  420. int srcx,
  421. int srcy,
  422. int x,
  423. int y,
  424. _Xconst FcChar8 *string,
  425. int len);
  426. void
  427. XftTextRender16 (Display     *dpy,
  428.  int     op,
  429.  Picture     src,
  430.  XftFont     *pub,
  431.  Picture     dst,
  432.  int     srcx,
  433.  int     srcy,
  434.  int     x,
  435.  int     y,
  436.  _Xconst FcChar16   *string,
  437.  int     len);
  438. void
  439. XftTextRender16BE (Display     *dpy,
  440.    int     op,
  441.    Picture     src,
  442.    XftFont     *pub,
  443.    Picture     dst,
  444.    int     srcx,
  445.    int     srcy,
  446.    int     x,
  447.    int     y,
  448.    _Xconst FcChar8  *string,
  449.    int     len);
  450. void
  451. XftTextRender16LE (Display     *dpy,
  452.    int     op,
  453.    Picture     src,
  454.    XftFont     *pub,
  455.    Picture     dst,
  456.    int     srcx,
  457.    int     srcy,
  458.    int     x,
  459.    int     y,
  460.    _Xconst FcChar8  *string,
  461.    int     len);
  462. void
  463. XftTextRender32 (Display     *dpy,
  464.  int     op,
  465.  Picture     src,
  466.  XftFont     *pub,
  467.  Picture     dst,
  468.  int     srcx,
  469.  int     srcy,
  470.  int     x,
  471.  int     y,
  472.  _Xconst FcChar32   *string,
  473.  int     len);
  474. void
  475. XftTextRender32BE (Display     *dpy,
  476.    int     op,
  477.    Picture     src,
  478.    XftFont     *pub,
  479.    Picture     dst,
  480.    int     srcx,
  481.    int     srcy,
  482.    int     x,
  483.    int     y,
  484.    _Xconst FcChar8  *string,
  485.    int     len);
  486. void
  487. XftTextRender32LE (Display     *dpy,
  488.    int     op,
  489.    Picture     src,
  490.    XftFont     *pub,
  491.    Picture     dst,
  492.    int     srcx,
  493.    int     srcy,
  494.    int     x,
  495.    int     y,
  496.    _Xconst FcChar8  *string,
  497.    int     len);
  498. void
  499. XftTextRenderUtf8 (Display     *dpy,
  500.    int     op,
  501.    Picture     src,
  502.    XftFont     *pub,
  503.    Picture     dst,
  504.    int     srcx,
  505.    int     srcy,
  506.    int     x,
  507.    int     y,
  508.    _Xconst FcChar8  *string,
  509.    int     len);
  510. void
  511. XftTextRenderUtf16 (Display     *dpy,
  512.     int     op,
  513.     Picture     src,
  514.     XftFont     *pub,
  515.     Picture     dst,
  516.     int     srcx,
  517.     int     srcy,
  518.     int     x,
  519.     int     y,
  520.     _Xconst FcChar8 *string,
  521.     FcEndian     endian,
  522.     int     len);
  523. /* xftstr.c */
  524. /* xftxlfd.c */
  525. FcPattern *
  526. XftXlfdParse (_Xconst char *xlfd_orig, Bool ignore_scalable, Bool complete);
  527.     
  528. _XFUNCPROTOEND
  529. #endif /* _XFT_H_ */