1 /*
2  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
3  *
4  * All Rights Reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining
7  * a copy of this software and associated documentation files (the
8  * "Software"), to deal in the Software without restriction, including
9  * without limitation on the rights to use, copy, modify, merge,
10  * publish, distribute, sublicense, and/or sell copies of the Software,
11  * and to permit persons to whom the Software is furnished to do so,
12  * subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the
15  * next paragraph) shall be included in all copies or substantial
16  * portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
22  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25  * SOFTWARE.
26  */
27 
28 /*
29  * Authors:
30  *   Kevin E. Martin <kem@redhat.com>
31  *
32  */
33 
34 /** \file
35  * Interface for gcops support.  \see dmxgcops.c */
36 
37 #ifndef DMXGCOPS_H
38 #define DMXGCOPS_H
39 
40 extern void dmxFillSpans(DrawablePtr pDrawable, GCPtr pGC,
41                          int nInit, DDXPointPtr pptInit, int *pwidthInit,
42                          int fSorted);
43 extern void dmxSetSpans(DrawablePtr pDrawable, GCPtr pGC,
44                         char *psrc, DDXPointPtr ppt, int *pwidth, int nspans,
45                         int fSorted);
46 extern void dmxPutImage(DrawablePtr pDrawable, GCPtr pGC,
47                         int depth, int x, int y, int w, int h,
48                         int leftPad, int format, char *pBits);
49 extern RegionPtr dmxCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
50                              int srcx, int srcy, int w, int h,
51                              int dstx, int dsty);
52 extern RegionPtr dmxCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
53                               int srcx, int srcy, int width, int height,
54                               int dstx, int dsty, unsigned long bitPlane);
55 extern void dmxPolyPoint(DrawablePtr pDrawable, GCPtr pGC,
56                          int mode, int npt, DDXPointPtr pptInit);
57 extern void dmxPolylines(DrawablePtr pDrawable, GCPtr pGC,
58                          int mode, int npt, DDXPointPtr pptInit);
59 extern void dmxPolySegment(DrawablePtr pDrawable, GCPtr pGC,
60                            int nseg, xSegment * pSegs);
61 extern void dmxPolyRectangle(DrawablePtr pDrawable, GCPtr pGC,
62                              int nrects, xRectangle *pRects);
63 extern void dmxPolyArc(DrawablePtr pDrawable, GCPtr pGC,
64                        int narcs, xArc * parcs);
65 extern void dmxFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
66                            int shape, int mode, int count, DDXPointPtr pPts);
67 extern void dmxPolyFillRect(DrawablePtr pDrawable, GCPtr pGC,
68                             int nrectFill, xRectangle *prectInit);
69 extern void dmxPolyFillArc(DrawablePtr pDrawable, GCPtr pGC,
70                            int narcs, xArc * parcs);
71 extern int dmxPolyText8(DrawablePtr pDrawable, GCPtr pGC,
72                         int x, int y, int count, char *chars);
73 extern int dmxPolyText16(DrawablePtr pDrawable, GCPtr pGC,
74                          int x, int y, int count, unsigned short *chars);
75 extern void dmxImageText8(DrawablePtr pDrawable, GCPtr pGC,
76                           int x, int y, int count, char *chars);
77 extern void dmxImageText16(DrawablePtr pDrawable, GCPtr pGC,
78                            int x, int y, int count, unsigned short *chars);
79 extern void dmxImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
80                              int x, int y, unsigned int nglyph,
81                              CharInfoPtr * ppci, void *pglyphBase);
82 extern void dmxPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
83                             int x, int y, unsigned int nglyph,
84                             CharInfoPtr * ppci, void *pglyphBase);
85 extern void dmxPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
86                           int w, int h, int x, int y);
87 
88 extern void dmxGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h,
89                         unsigned int format, unsigned long planeMask,
90                         char *pdstLine);
91 extern void dmxGetSpans(DrawablePtr pDrawable, int wMax,
92                         DDXPointPtr ppt, int *pwidth, int nspans,
93                         char *pdstStart);
94 
95 #endif                          /* DMXGCOPS_H */
96