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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  *
  3.  * Copyright © 2000 SuSE, Inc.
  4.  *
  5.  * Permission to use, copy, modify, distribute, and sell this software and its
  6.  * documentation for any purpose is hereby granted without fee, provided that
  7.  * the above copyright notice appear in all copies and that both that
  8.  * copyright notice and this permission notice appear in supporting
  9.  * documentation, and that the name of SuSE not be used in advertising or
  10.  * publicity pertaining to distribution of the software without specific,
  11.  * written prior permission.  SuSE makes no representations about the
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  16.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
  17.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  18.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  19.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  20.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21.  *
  22.  * Author:  Keith Packard, SuSE, Inc.
  23.  */
  24. #ifndef _XRENDER_H_
  25. #define _XRENDER_H_
  26. #include <X11/Xlib.h>
  27. #include <X11/Xfuncproto.h>
  28. #include <X11/Xosdefs.h>
  29. #include <X11/Xutil.h>
  30. #include <X11/extensions/render.h>
  31. typedef struct {
  32.     short   red;
  33.     short   redMask;
  34.     short   green;
  35.     short   greenMask;
  36.     short   blue;
  37.     short   blueMask;
  38.     short   alpha;
  39.     short   alphaMask;
  40. } XRenderDirectFormat;
  41. typedef struct {
  42.     PictFormat id;
  43.     int type;
  44.     int depth;
  45.     XRenderDirectFormat direct;
  46.     Colormap colormap;
  47. } XRenderPictFormat;
  48. #define PictFormatID     (1 << 0)
  49. #define PictFormatType     (1 << 1)
  50. #define PictFormatDepth     (1 << 2)
  51. #define PictFormatRed     (1 << 3)
  52. #define PictFormatRedMask   (1 << 4)
  53. #define PictFormatGreen     (1 << 5)
  54. #define PictFormatGreenMask (1 << 6)
  55. #define PictFormatBlue     (1 << 7)
  56. #define PictFormatBlueMask  (1 << 8)
  57. #define PictFormatAlpha     (1 << 9)
  58. #define PictFormatAlphaMask (1 << 10)
  59. #define PictFormatColormap  (1 << 11)
  60. typedef struct _XRenderPictureAttributes {
  61.     int  repeat;
  62.     Picture alpha_map;
  63.     int alpha_x_origin;
  64.     int alpha_y_origin;
  65.     int clip_x_origin;
  66.     int clip_y_origin;
  67.     Pixmap clip_mask;
  68.     Bool graphics_exposures;
  69.     int subwindow_mode;
  70.     int poly_edge;
  71.     int poly_mode;
  72.     Atom dither;
  73.     Bool component_alpha;
  74. } XRenderPictureAttributes;
  75. typedef struct {
  76.     unsigned short   red;
  77.     unsigned short   green;
  78.     unsigned short   blue;
  79.     unsigned short   alpha;
  80. } XRenderColor;
  81. typedef struct _XGlyphInfo {
  82.     unsigned short  width;
  83.     unsigned short  height;
  84.     short     x;
  85.     short     y;
  86.     short     xOff;
  87.     short     yOff;
  88. } XGlyphInfo;
  89. typedef struct _XGlyphElt8 {
  90.     GlyphSet     glyphset;
  91.     _Xconst char     *chars;
  92.     int     nchars;
  93.     int     xOff;
  94.     int     yOff;
  95. } XGlyphElt8;
  96. typedef struct _XGlyphElt16 {
  97.     GlyphSet     glyphset;
  98.     _Xconst unsigned short  *chars;
  99.     int     nchars;
  100.     int     xOff;
  101.     int     yOff;
  102. } XGlyphElt16;
  103. typedef struct _XGlyphElt32 {
  104.     GlyphSet     glyphset;
  105.     _Xconst unsigned int    *chars;
  106.     int     nchars;
  107.     int     xOff;
  108.     int     yOff;
  109. } XGlyphElt32;
  110. typedef double XDouble;
  111. typedef struct _XPointDouble {
  112.     XDouble  x, y;
  113. } XPointDouble;
  114. #define XDoubleToFixed(f)    ((XFixed) ((f) * 65536))
  115. #define XFixedToDouble(f)    (((XDouble) (f)) / 65536)
  116. typedef int XFixed;
  117. typedef struct _XPointFixed {
  118.     XFixed  x, y;
  119. } XPointFixed;
  120. typedef struct _XLineFixed {
  121.     XPointFixed p1, p2;
  122. } XLineFixed;
  123. typedef struct _XTriangle {
  124.     XPointFixed p1, p2, p3;
  125. } XTriangle;
  126. typedef struct _XCircle {
  127.     XFixed x;
  128.     XFixed y;
  129.     XFixed radius;
  130. } XCircle;
  131. typedef struct _XTrapezoid {
  132.     XFixed  top, bottom;
  133.     XLineFixed left, right;
  134. } XTrapezoid;
  135. typedef struct _XTransform {
  136.     XFixed  matrix[3][3];
  137. } XTransform;
  138. typedef struct _XFilters {
  139.     int     nfilter;
  140.     char    **filter;
  141.     int     nalias;
  142.     short   *alias;
  143. } XFilters;
  144. typedef struct _XIndexValue {
  145.     unsigned long    pixel;
  146.     unsigned short   red, green, blue, alpha;
  147. } XIndexValue;
  148. typedef struct _XAnimCursor {
  149.     Cursor     cursor;
  150.     unsigned long   delay;
  151. } XAnimCursor;
  152. typedef struct _XSpanFix {
  153.     XFixed     left, right, y;
  154. } XSpanFix;
  155. typedef struct _XTrap {
  156.     XSpanFix     top, bottom;
  157. } XTrap;
  158. typedef struct _XLinearGradient {
  159.     XPointFixed p1;
  160.     XPointFixed p2;
  161. } XLinearGradient;
  162. typedef struct _XRadialGradient {
  163.     XCircle inner;
  164.     XCircle outer;
  165. } XRadialGradient;
  166. typedef struct _XConicalGradient {
  167.     XPointFixed center;
  168.     XFixed angle; /* in degrees */
  169. } XConicalGradient;
  170. _XFUNCPROTOBEGIN
  171. Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
  172. Status XRenderQueryVersion (Display *dpy,
  173.     int     *major_versionp,
  174.     int     *minor_versionp);
  175. Status XRenderQueryFormats (Display *dpy);
  176. int XRenderQuerySubpixelOrder (Display *dpy, int screen);
  177. Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
  178. XRenderPictFormat *
  179. XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
  180. XRenderPictFormat *
  181. XRenderFindFormat (Display *dpy,
  182.    unsigned long mask,
  183.    _Xconst XRenderPictFormat *templ,
  184.    int count);
  185.     
  186. #define PictStandardARGB32  0
  187. #define PictStandardRGB24   1
  188. #define PictStandardA8     2
  189. #define PictStandardA4     3
  190. #define PictStandardA1     4
  191. #define PictStandardNUM     5
  192. XRenderPictFormat *
  193. XRenderFindStandardFormat (Display *dpy,
  194.    int format);
  195. XIndexValue *
  196. XRenderQueryPictIndexValues(Display *dpy,
  197.     _Xconst XRenderPictFormat *format,
  198.     int *num);
  199. Picture
  200. XRenderCreatePicture (Display *dpy,
  201.       Drawable drawable,
  202.       _Xconst XRenderPictFormat *format,
  203.       unsigned long valuemask,
  204.       _Xconst XRenderPictureAttributes *attributes);
  205. void
  206. XRenderChangePicture (Display *dpy,
  207.       Picture picture,
  208.       unsigned long valuemask,
  209.       _Xconst XRenderPictureAttributes  *attributes);
  210. void
  211. XRenderSetPictureClipRectangles (Display     *dpy,
  212.  Picture     picture,
  213.  int     xOrigin,
  214.  int     yOrigin,
  215.  _Xconst XRectangle *rects,
  216.  int     n);
  217. void
  218. XRenderSetPictureClipRegion (Display     *dpy,
  219.      Picture     picture,
  220.      Region     r);
  221. void
  222. XRenderSetPictureTransform (Display     *dpy,
  223.     Picture     picture,
  224.     XTransform     *transform);
  225. void
  226. XRenderFreePicture (Display                   *dpy,
  227.     Picture                   picture);
  228. void
  229. XRenderComposite (Display   *dpy,
  230.   int     op,
  231.   Picture   src,
  232.   Picture   mask,
  233.   Picture   dst,
  234.   int     src_x,
  235.   int     src_y,
  236.   int     mask_x,
  237.   int     mask_y,
  238.   int     dst_x,
  239.   int     dst_y,
  240.   unsigned int width,
  241.   unsigned int height);
  242. GlyphSet
  243. XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
  244. GlyphSet
  245. XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
  246. void
  247. XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
  248. void
  249. XRenderAddGlyphs (Display *dpy,
  250.   GlyphSet glyphset,
  251.   _Xconst Glyph *gids,
  252.   _Xconst XGlyphInfo *glyphs,
  253.   int nglyphs,
  254.   _Xconst char *images,
  255.   int nbyte_images);
  256. void
  257. XRenderFreeGlyphs (Display     *dpy,
  258.    GlyphSet     glyphset,
  259.    _Xconst Glyph    *gids,
  260.    int     nglyphs);
  261. void
  262. XRenderCompositeString8 (Display     *dpy,
  263.  int     op,
  264.  Picture     src,
  265.  Picture     dst,
  266.  _Xconst XRenderPictFormat  *maskFormat,
  267.  GlyphSet     glyphset,
  268.  int     xSrc,
  269.  int     ySrc,
  270.  int     xDst,
  271.  int     yDst,
  272.  _Xconst char     *string,
  273.  int     nchar);
  274. void
  275. XRenderCompositeString16 (Display     *dpy,
  276.   int     op,
  277.   Picture     src,
  278.   Picture     dst,
  279.   _Xconst XRenderPictFormat *maskFormat,
  280.   GlyphSet     glyphset,
  281.   int     xSrc,
  282.   int     ySrc,
  283.   int     xDst,
  284.   int     yDst,
  285.   _Xconst unsigned short    *string,
  286.   int     nchar);
  287. void
  288. XRenderCompositeString32 (Display     *dpy,
  289.   int     op,
  290.   Picture     src,
  291.   Picture     dst,
  292.   _Xconst XRenderPictFormat *maskFormat,
  293.   GlyphSet     glyphset,
  294.   int     xSrc,
  295.   int     ySrc,
  296.   int     xDst,
  297.   int     yDst,
  298.   _Xconst unsigned int     *string,
  299.   int     nchar);
  300. void
  301. XRenderCompositeText8 (Display     *dpy,
  302.        int     op,
  303.        Picture     src,
  304.        Picture     dst,
  305.        _Xconst XRenderPictFormat    *maskFormat,
  306.        int     xSrc,
  307.        int     ySrc,
  308.        int     xDst,
  309.        int     yDst,
  310.        _Xconst XGlyphElt8     *elts,
  311.        int     nelt);
  312. void
  313. XRenderCompositeText16 (Display     *dpy,
  314. int     op,
  315. Picture     src,
  316. Picture     dst,
  317. _Xconst XRenderPictFormat   *maskFormat,
  318. int     xSrc,
  319. int     ySrc,
  320. int     xDst,
  321. int     yDst,
  322. _Xconst XGlyphElt16     *elts,
  323. int     nelt);
  324. void
  325. XRenderCompositeText32 (Display     *dpy,
  326. int     op,
  327. Picture     src,
  328. Picture     dst,
  329. _Xconst XRenderPictFormat   *maskFormat,
  330. int     xSrc,
  331. int     ySrc,
  332. int     xDst,
  333. int     yDst,
  334. _Xconst XGlyphElt32     *elts,
  335. int     nelt);
  336. void
  337. XRenderFillRectangle (Display     *dpy,
  338.       int     op,
  339.       Picture     dst,
  340.       _Xconst XRenderColor  *color,
  341.       int     x,
  342.       int     y,
  343.       unsigned int     width,
  344.       unsigned int     height);
  345. void
  346. XRenderFillRectangles (Display     *dpy,
  347.        int     op,
  348.        Picture     dst,
  349.        _Xconst XRenderColor *color,
  350.        _Xconst XRectangle   *rectangles,
  351.        int     n_rects);
  352. void
  353. XRenderCompositeTrapezoids (Display *dpy,
  354.     int op,
  355.     Picture src,
  356.     Picture dst,
  357.     _Xconst XRenderPictFormat *maskFormat,
  358.     int xSrc,
  359.     int ySrc,
  360.     _Xconst XTrapezoid *traps,
  361.     int ntrap);
  362. void
  363. XRenderCompositeTriangles (Display *dpy,
  364.    int op,
  365.    Picture src,
  366.    Picture dst,
  367.     _Xconst XRenderPictFormat *maskFormat,
  368.    int xSrc,
  369.    int ySrc,
  370.    _Xconst XTriangle *triangles,
  371.    int ntriangle);
  372. void
  373. XRenderCompositeTriStrip (Display *dpy,
  374.   int op,
  375.   Picture src,
  376.   Picture dst,
  377.     _Xconst XRenderPictFormat *maskFormat,
  378.   int xSrc,
  379.   int ySrc,
  380.   _Xconst XPointFixed *points,
  381.   int npoint);
  382. void
  383. XRenderCompositeTriFan (Display *dpy,
  384. int op,
  385. Picture src,
  386. Picture dst,
  387. _Xconst XRenderPictFormat *maskFormat,
  388. int xSrc,
  389. int ySrc,
  390. _Xconst XPointFixed *points,
  391. int npoint);
  392. void
  393. XRenderCompositeDoublePoly (Display     *dpy,
  394.     int     op,
  395.     Picture     src,
  396.     Picture     dst,
  397.     _Xconst XRenderPictFormat *maskFormat,
  398.     int     xSrc,
  399.     int     ySrc,
  400.     int     xDst,
  401.     int     yDst,
  402.     _Xconst XPointDouble    *fpoints,
  403.     int     npoints,
  404.     int     winding);
  405. Status
  406. XRenderParseColor(Display *dpy, 
  407.   char *spec,
  408.   XRenderColor *def);
  409. Cursor
  410. XRenderCreateCursor (Display     *dpy,
  411.      Picture     source,
  412.      unsigned int   x,
  413.      unsigned int   y);
  414. XFilters *
  415. XRenderQueryFilters (Display *dpy, Drawable drawable);
  416. void
  417. XRenderSetPictureFilter (Display    *dpy,
  418.  Picture    picture,
  419.  const char *filter,
  420.  XFixed     *params,
  421.  int     nparams);
  422. Cursor
  423. XRenderCreateAnimCursor (Display *dpy,
  424.  int ncursor,
  425.  XAnimCursor *cursors);
  426. void
  427. XRenderAddTraps (Display     *dpy,
  428.  Picture     picture,
  429.  int     xOff,
  430.  int     yOff,
  431.  _Xconst XTrap     *traps,
  432.  int     ntrap);
  433. Picture XRenderCreateSolidFill (Display *dpy,
  434.                                 const XRenderColor *color);
  435. Picture XRenderCreateLinearGradient (Display *dpy,
  436.                                      const XLinearGradient *gradient,
  437.                                      const XFixed *stops,
  438.                                      const XRenderColor *colors,
  439.                                      int nstops);
  440. Picture XRenderCreateRadialGradient (Display *dpy,
  441.                                      const XRadialGradient *gradient,
  442.                                      const XFixed *stops,
  443.                                      const XRenderColor *colors,
  444.                                      int nstops);
  445. Picture XRenderCreateConicalGradient (Display *dpy,
  446.                                       const XConicalGradient *gradient,
  447.                                       const XFixed *stops,
  448.                                       const XRenderColor *colors,
  449.                                       int nstops);
  450. _XFUNCPROTOEND
  451. #endif /* _XRENDER_H_ */