xref: /OK3568_Linux_fs/external/xserver/mi/mi.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /***********************************************************
2*4882a593Smuzhiyun 
3*4882a593Smuzhiyun Copyright 1987, 1998  The Open Group
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun Permission to use, copy, modify, distribute, and sell this software and its
6*4882a593Smuzhiyun documentation for any purpose is hereby granted without fee, provided that
7*4882a593Smuzhiyun the above copyright notice appear in all copies and that both that
8*4882a593Smuzhiyun copyright notice and this permission notice appear in supporting
9*4882a593Smuzhiyun documentation.
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun The above copyright notice and this permission notice shall be included in
12*4882a593Smuzhiyun all copies or substantial portions of the Software.
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*4882a593Smuzhiyun IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*4882a593Smuzhiyun FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17*4882a593Smuzhiyun OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18*4882a593Smuzhiyun AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19*4882a593Smuzhiyun CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun Except as contained in this notice, the name of The Open Group shall not be
22*4882a593Smuzhiyun used in advertising or otherwise to promote the sale, use or other dealings
23*4882a593Smuzhiyun in this Software without prior written authorization from The Open Group.
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun                         All Rights Reserved
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun Permission to use, copy, modify, and distribute this software and its
30*4882a593Smuzhiyun documentation for any purpose and without fee is hereby granted,
31*4882a593Smuzhiyun provided that the above copyright notice appear in all copies and that
32*4882a593Smuzhiyun both that copyright notice and this permission notice appear in
33*4882a593Smuzhiyun supporting documentation, and that the name of Digital not be
34*4882a593Smuzhiyun used in advertising or publicity pertaining to distribution of the
35*4882a593Smuzhiyun software without specific, written prior permission.
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
38*4882a593Smuzhiyun ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
39*4882a593Smuzhiyun DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
40*4882a593Smuzhiyun ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
41*4882a593Smuzhiyun WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
42*4882a593Smuzhiyun ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
43*4882a593Smuzhiyun SOFTWARE.
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun ******************************************************************/
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #ifndef MI_H
48*4882a593Smuzhiyun #define MI_H
49*4882a593Smuzhiyun #include <X11/X.h>
50*4882a593Smuzhiyun #include "region.h"
51*4882a593Smuzhiyun #include "validate.h"
52*4882a593Smuzhiyun #include "window.h"
53*4882a593Smuzhiyun #include "gc.h"
54*4882a593Smuzhiyun #include <X11/fonts/font.h>
55*4882a593Smuzhiyun #include "input.h"
56*4882a593Smuzhiyun #include "cursor.h"
57*4882a593Smuzhiyun #include "privates.h"
58*4882a593Smuzhiyun #include "colormap.h"
59*4882a593Smuzhiyun #include "events.h"
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #define MiBits	CARD32
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun typedef struct _miDash *miDashPtr;
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun #define EVEN_DASH	0
66*4882a593Smuzhiyun #define ODD_DASH	~0
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun /* miarc.c */
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun extern _X_EXPORT void miWideArc(DrawablePtr pDraw,
71*4882a593Smuzhiyun                                 GCPtr pGC,
72*4882a593Smuzhiyun                                 int narcs,
73*4882a593Smuzhiyun                                 xArc * parcs);
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun extern _X_EXPORT void miPolyArc(DrawablePtr /*pDraw */ ,
76*4882a593Smuzhiyun                                 GCPtr /*pGC */ ,
77*4882a593Smuzhiyun                                 int /*narcs */ ,
78*4882a593Smuzhiyun                                 xArc *  /*parcs */
79*4882a593Smuzhiyun     );
80*4882a593Smuzhiyun 
81*4882a593Smuzhiyun /* mibitblt.c */
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun extern _X_EXPORT RegionPtr miCopyArea(DrawablePtr /*pSrcDrawable */ ,
84*4882a593Smuzhiyun                                       DrawablePtr /*pDstDrawable */ ,
85*4882a593Smuzhiyun                                       GCPtr /*pGC */ ,
86*4882a593Smuzhiyun                                       int /*xIn */ ,
87*4882a593Smuzhiyun                                       int /*yIn */ ,
88*4882a593Smuzhiyun                                       int /*widthSrc */ ,
89*4882a593Smuzhiyun                                       int /*heightSrc */ ,
90*4882a593Smuzhiyun                                       int /*xOut */ ,
91*4882a593Smuzhiyun                                       int       /*yOut */
92*4882a593Smuzhiyun     );
93*4882a593Smuzhiyun 
94*4882a593Smuzhiyun extern _X_EXPORT RegionPtr miCopyPlane(DrawablePtr /*pSrcDrawable */ ,
95*4882a593Smuzhiyun                                        DrawablePtr /*pDstDrawable */ ,
96*4882a593Smuzhiyun                                        GCPtr /*pGC */ ,
97*4882a593Smuzhiyun                                        int /*srcx */ ,
98*4882a593Smuzhiyun                                        int /*srcy */ ,
99*4882a593Smuzhiyun                                        int /*width */ ,
100*4882a593Smuzhiyun                                        int /*height */ ,
101*4882a593Smuzhiyun                                        int /*dstx */ ,
102*4882a593Smuzhiyun                                        int /*dsty */ ,
103*4882a593Smuzhiyun                                        unsigned long    /*bitPlane */
104*4882a593Smuzhiyun     );
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun extern _X_EXPORT void miGetImage(DrawablePtr /*pDraw */ ,
107*4882a593Smuzhiyun                                  int /*sx */ ,
108*4882a593Smuzhiyun                                  int /*sy */ ,
109*4882a593Smuzhiyun                                  int /*w */ ,
110*4882a593Smuzhiyun                                  int /*h */ ,
111*4882a593Smuzhiyun                                  unsigned int /*format */ ,
112*4882a593Smuzhiyun                                  unsigned long /*planeMask */ ,
113*4882a593Smuzhiyun                                  char * /*pdstLine */
114*4882a593Smuzhiyun     );
115*4882a593Smuzhiyun 
116*4882a593Smuzhiyun extern _X_EXPORT void miPutImage(DrawablePtr /*pDraw */ ,
117*4882a593Smuzhiyun                                  GCPtr /*pGC */ ,
118*4882a593Smuzhiyun                                  int /*depth */ ,
119*4882a593Smuzhiyun                                  int /*x */ ,
120*4882a593Smuzhiyun                                  int /*y */ ,
121*4882a593Smuzhiyun                                  int /*w */ ,
122*4882a593Smuzhiyun                                  int /*h */ ,
123*4882a593Smuzhiyun                                  int /*leftPad */ ,
124*4882a593Smuzhiyun                                  int /*format */ ,
125*4882a593Smuzhiyun                                  char * /*pImage */
126*4882a593Smuzhiyun     );
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun /* micopy.c  */
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun #define miGetCompositeClip(pGC) ((pGC)->pCompositeClip)
131*4882a593Smuzhiyun 
132*4882a593Smuzhiyun typedef void (*miCopyProc) (DrawablePtr pSrcDrawable,
133*4882a593Smuzhiyun                             DrawablePtr pDstDrawable,
134*4882a593Smuzhiyun                             GCPtr pGC,
135*4882a593Smuzhiyun                             BoxPtr pDstBox,
136*4882a593Smuzhiyun                             int nbox,
137*4882a593Smuzhiyun                             int dx,
138*4882a593Smuzhiyun                             int dy,
139*4882a593Smuzhiyun                             Bool reverse,
140*4882a593Smuzhiyun                             Bool upsidedown, Pixel bitplane, void *closure);
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun extern _X_EXPORT void
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun miCopyRegion(DrawablePtr pSrcDrawable,
145*4882a593Smuzhiyun              DrawablePtr pDstDrawable,
146*4882a593Smuzhiyun              GCPtr pGC,
147*4882a593Smuzhiyun              RegionPtr pDstRegion,
148*4882a593Smuzhiyun              int dx,
149*4882a593Smuzhiyun              int dy, miCopyProc copyProc, Pixel bitPlane, void *closure);
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun extern _X_EXPORT RegionPtr
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun miDoCopy(DrawablePtr pSrcDrawable,
154*4882a593Smuzhiyun          DrawablePtr pDstDrawable,
155*4882a593Smuzhiyun          GCPtr pGC,
156*4882a593Smuzhiyun          int xIn,
157*4882a593Smuzhiyun          int yIn,
158*4882a593Smuzhiyun          int widthSrc,
159*4882a593Smuzhiyun          int heightSrc,
160*4882a593Smuzhiyun          int xOut,
161*4882a593Smuzhiyun          int yOut, miCopyProc copyProc, Pixel bitplane, void *closure);
162*4882a593Smuzhiyun 
163*4882a593Smuzhiyun /* micursor.c */
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun extern _X_EXPORT void miRecolorCursor(DeviceIntPtr /* pDev */ ,
166*4882a593Smuzhiyun                                       ScreenPtr /*pScr */ ,
167*4882a593Smuzhiyun                                       CursorPtr /*pCurs */ ,
168*4882a593Smuzhiyun                                       Bool      /*displayed */
169*4882a593Smuzhiyun     );
170*4882a593Smuzhiyun 
171*4882a593Smuzhiyun /* midash.c */
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun extern _X_EXPORT void miStepDash(int /*dist */ ,
174*4882a593Smuzhiyun                                  int * /*pDashIndex */ ,
175*4882a593Smuzhiyun                                  unsigned char * /*pDash */ ,
176*4882a593Smuzhiyun                                  int /*numInDashList */ ,
177*4882a593Smuzhiyun                                  int *  /*pDashOffset */
178*4882a593Smuzhiyun     );
179*4882a593Smuzhiyun 
180*4882a593Smuzhiyun /* mieq.c */
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun #ifndef INPUT_H
183*4882a593Smuzhiyun typedef struct _DeviceRec *DevicePtr;
184*4882a593Smuzhiyun #endif
185*4882a593Smuzhiyun 
186*4882a593Smuzhiyun extern _X_EXPORT Bool mieqInit(void
187*4882a593Smuzhiyun     );
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun extern _X_EXPORT void mieqFini(void);
190*4882a593Smuzhiyun 
191*4882a593Smuzhiyun extern _X_EXPORT void mieqEnqueue(DeviceIntPtr /*pDev */ ,
192*4882a593Smuzhiyun                                   InternalEvent *       /*e */
193*4882a593Smuzhiyun     );
194*4882a593Smuzhiyun 
195*4882a593Smuzhiyun extern _X_EXPORT void mieqSwitchScreen(DeviceIntPtr /* pDev */ ,
196*4882a593Smuzhiyun                                        ScreenPtr /*pScreen */ ,
197*4882a593Smuzhiyun                                        Bool     /*set_dequeue_screen */
198*4882a593Smuzhiyun     );
199*4882a593Smuzhiyun 
200*4882a593Smuzhiyun extern _X_EXPORT void mieqProcessDeviceEvent(DeviceIntPtr /* dev */ ,
201*4882a593Smuzhiyun                                              InternalEvent * /* event */ ,
202*4882a593Smuzhiyun                                              ScreenPtr  /* screen */
203*4882a593Smuzhiyun     );
204*4882a593Smuzhiyun 
205*4882a593Smuzhiyun extern _X_EXPORT void mieqProcessInputEvents(void
206*4882a593Smuzhiyun     );
207*4882a593Smuzhiyun 
208*4882a593Smuzhiyun extern DeviceIntPtr CopyGetMasterEvent(DeviceIntPtr /* sdev */ ,
209*4882a593Smuzhiyun                                        InternalEvent * /* original */ ,
210*4882a593Smuzhiyun                                        InternalEvent *  /* copy */
211*4882a593Smuzhiyun     );
212*4882a593Smuzhiyun 
213*4882a593Smuzhiyun /**
214*4882a593Smuzhiyun  * Custom input event handler. If you need to process input events in some
215*4882a593Smuzhiyun  * other way than the default path, register an input event handler for the
216*4882a593Smuzhiyun  * given internal event type.
217*4882a593Smuzhiyun  */
218*4882a593Smuzhiyun typedef void (*mieqHandler) (int screen, InternalEvent *event,
219*4882a593Smuzhiyun                              DeviceIntPtr dev);
220*4882a593Smuzhiyun void _X_EXPORT mieqSetHandler(int event, mieqHandler handler);
221*4882a593Smuzhiyun 
222*4882a593Smuzhiyun /* miexpose.c */
223*4882a593Smuzhiyun 
224*4882a593Smuzhiyun extern _X_EXPORT RegionPtr miHandleExposures(DrawablePtr /*pSrcDrawable */ ,
225*4882a593Smuzhiyun                                              DrawablePtr /*pDstDrawable */ ,
226*4882a593Smuzhiyun                                              GCPtr /*pGC */ ,
227*4882a593Smuzhiyun                                              int /*srcx */ ,
228*4882a593Smuzhiyun                                              int /*srcy */ ,
229*4882a593Smuzhiyun                                              int /*width */ ,
230*4882a593Smuzhiyun                                              int /*height */ ,
231*4882a593Smuzhiyun                                              int /*dstx */ ,
232*4882a593Smuzhiyun                                              int /*dsty */
233*4882a593Smuzhiyun     );
234*4882a593Smuzhiyun 
235*4882a593Smuzhiyun extern _X_EXPORT void miSendExposures(WindowPtr /*pWin */ ,
236*4882a593Smuzhiyun                                       RegionPtr /*pRgn */ ,
237*4882a593Smuzhiyun                                       int /*dx */ ,
238*4882a593Smuzhiyun                                       int       /*dy */
239*4882a593Smuzhiyun     );
240*4882a593Smuzhiyun 
241*4882a593Smuzhiyun extern _X_EXPORT void miWindowExposures(WindowPtr /*pWin */ ,
242*4882a593Smuzhiyun                                         RegionPtr /*prgn */);
243*4882a593Smuzhiyun 
244*4882a593Smuzhiyun extern _X_EXPORT void miPaintWindow(WindowPtr /*pWin */ ,
245*4882a593Smuzhiyun                                     RegionPtr /*prgn */ ,
246*4882a593Smuzhiyun                                     int /*what */
247*4882a593Smuzhiyun     );
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun extern _X_EXPORT void miClearDrawable(DrawablePtr /*pDraw */ ,
250*4882a593Smuzhiyun                                       GCPtr     /*pGC */
251*4882a593Smuzhiyun     );
252*4882a593Smuzhiyun 
253*4882a593Smuzhiyun /* mifillrct.c */
254*4882a593Smuzhiyun 
255*4882a593Smuzhiyun extern _X_EXPORT void miPolyFillRect(DrawablePtr /*pDrawable */ ,
256*4882a593Smuzhiyun                                      GCPtr /*pGC */ ,
257*4882a593Smuzhiyun                                      int /*nrectFill */ ,
258*4882a593Smuzhiyun                                      xRectangle *       /*prectInit */
259*4882a593Smuzhiyun     );
260*4882a593Smuzhiyun 
261*4882a593Smuzhiyun /* miglblt.c */
262*4882a593Smuzhiyun 
263*4882a593Smuzhiyun extern _X_EXPORT void miPolyGlyphBlt(DrawablePtr pDrawable,
264*4882a593Smuzhiyun                                      GCPtr pGC,
265*4882a593Smuzhiyun                                      int x,
266*4882a593Smuzhiyun                                      int y,
267*4882a593Smuzhiyun                                      unsigned int nglyph,
268*4882a593Smuzhiyun                                      CharInfoPtr *ppci,
269*4882a593Smuzhiyun                                      void *pglyphBase
270*4882a593Smuzhiyun     );
271*4882a593Smuzhiyun 
272*4882a593Smuzhiyun extern _X_EXPORT void miImageGlyphBlt(DrawablePtr pDrawable,
273*4882a593Smuzhiyun                                       GCPtr pGC,
274*4882a593Smuzhiyun                                       int x,
275*4882a593Smuzhiyun                                       int y,
276*4882a593Smuzhiyun                                       unsigned int nglyph,
277*4882a593Smuzhiyun                                       CharInfoPtr *ppci,
278*4882a593Smuzhiyun                                       void *pglyphBase
279*4882a593Smuzhiyun     );
280*4882a593Smuzhiyun 
281*4882a593Smuzhiyun /* mipoly.c */
282*4882a593Smuzhiyun 
283*4882a593Smuzhiyun extern _X_EXPORT void miFillPolygon(DrawablePtr /*dst */ ,
284*4882a593Smuzhiyun                                     GCPtr /*pgc */ ,
285*4882a593Smuzhiyun                                     int /*shape */ ,
286*4882a593Smuzhiyun                                     int /*mode */ ,
287*4882a593Smuzhiyun                                     int /*count */ ,
288*4882a593Smuzhiyun                                     DDXPointPtr /*pPts */
289*4882a593Smuzhiyun     );
290*4882a593Smuzhiyun 
291*4882a593Smuzhiyun /* mipolypnt.c */
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun extern _X_EXPORT void miPolyPoint(DrawablePtr /*pDrawable */ ,
294*4882a593Smuzhiyun                                   GCPtr /*pGC */ ,
295*4882a593Smuzhiyun                                   int /*mode */ ,
296*4882a593Smuzhiyun                                   int /*npt */ ,
297*4882a593Smuzhiyun                                   xPoint *      /*pptInit */
298*4882a593Smuzhiyun     );
299*4882a593Smuzhiyun 
300*4882a593Smuzhiyun /* mipolyrect.c */
301*4882a593Smuzhiyun 
302*4882a593Smuzhiyun extern _X_EXPORT void miPolyRectangle(DrawablePtr /*pDraw */ ,
303*4882a593Smuzhiyun                                       GCPtr /*pGC */ ,
304*4882a593Smuzhiyun                                       int /*nrects */ ,
305*4882a593Smuzhiyun                                       xRectangle *      /*pRects */
306*4882a593Smuzhiyun     );
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun /* mipolyseg.c */
309*4882a593Smuzhiyun 
310*4882a593Smuzhiyun extern _X_EXPORT void miPolySegment(DrawablePtr /*pDraw */ ,
311*4882a593Smuzhiyun                                     GCPtr /*pGC */ ,
312*4882a593Smuzhiyun                                     int /*nseg */ ,
313*4882a593Smuzhiyun                                     xSegment *  /*pSegs */
314*4882a593Smuzhiyun     );
315*4882a593Smuzhiyun 
316*4882a593Smuzhiyun /* mipolytext.c */
317*4882a593Smuzhiyun 
318*4882a593Smuzhiyun extern _X_EXPORT int miPolyText8(DrawablePtr /*pDraw */ ,
319*4882a593Smuzhiyun                                  GCPtr /*pGC */ ,
320*4882a593Smuzhiyun                                  int /*x */ ,
321*4882a593Smuzhiyun                                  int /*y */ ,
322*4882a593Smuzhiyun                                  int /*count */ ,
323*4882a593Smuzhiyun                                  char * /*chars */
324*4882a593Smuzhiyun     );
325*4882a593Smuzhiyun 
326*4882a593Smuzhiyun extern _X_EXPORT int miPolyText16(DrawablePtr /*pDraw */ ,
327*4882a593Smuzhiyun                                   GCPtr /*pGC */ ,
328*4882a593Smuzhiyun                                   int /*x */ ,
329*4882a593Smuzhiyun                                   int /*y */ ,
330*4882a593Smuzhiyun                                   int /*count */ ,
331*4882a593Smuzhiyun                                   unsigned short *      /*chars */
332*4882a593Smuzhiyun     );
333*4882a593Smuzhiyun 
334*4882a593Smuzhiyun extern _X_EXPORT void miImageText8(DrawablePtr /*pDraw */ ,
335*4882a593Smuzhiyun                                    GCPtr /*pGC */ ,
336*4882a593Smuzhiyun                                    int /*x */ ,
337*4882a593Smuzhiyun                                    int /*y */ ,
338*4882a593Smuzhiyun                                    int /*count */ ,
339*4882a593Smuzhiyun                                    char *       /*chars */
340*4882a593Smuzhiyun     );
341*4882a593Smuzhiyun 
342*4882a593Smuzhiyun extern _X_EXPORT void miImageText16(DrawablePtr /*pDraw */ ,
343*4882a593Smuzhiyun                                     GCPtr /*pGC */ ,
344*4882a593Smuzhiyun                                     int /*x */ ,
345*4882a593Smuzhiyun                                     int /*y */ ,
346*4882a593Smuzhiyun                                     int /*count */ ,
347*4882a593Smuzhiyun                                     unsigned short *    /*chars */
348*4882a593Smuzhiyun     );
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun /* mipushpxl.c */
351*4882a593Smuzhiyun 
352*4882a593Smuzhiyun extern _X_EXPORT void miPushPixels(GCPtr /*pGC */ ,
353*4882a593Smuzhiyun                                    PixmapPtr /*pBitMap */ ,
354*4882a593Smuzhiyun                                    DrawablePtr /*pDrawable */ ,
355*4882a593Smuzhiyun                                    int /*dx */ ,
356*4882a593Smuzhiyun                                    int /*dy */ ,
357*4882a593Smuzhiyun                                    int /*xOrg */ ,
358*4882a593Smuzhiyun                                    int  /*yOrg */
359*4882a593Smuzhiyun     );
360*4882a593Smuzhiyun 
361*4882a593Smuzhiyun /* miscrinit.c */
362*4882a593Smuzhiyun 
363*4882a593Smuzhiyun extern _X_EXPORT void
364*4882a593Smuzhiyun miSourceValidate(DrawablePtr pDrawable, int x, int y, int w, int h,
365*4882a593Smuzhiyun                  unsigned int subWindowMode);
366*4882a593Smuzhiyun 
367*4882a593Smuzhiyun extern _X_EXPORT Bool miModifyPixmapHeader(PixmapPtr pPixmap,
368*4882a593Smuzhiyun                                            int width,
369*4882a593Smuzhiyun                                            int height,
370*4882a593Smuzhiyun                                            int depth,
371*4882a593Smuzhiyun                                            int bitsPerPixel,
372*4882a593Smuzhiyun                                            int devKind,
373*4882a593Smuzhiyun                                            void *pPixData
374*4882a593Smuzhiyun     );
375*4882a593Smuzhiyun 
376*4882a593Smuzhiyun extern _X_EXPORT Bool miCreateScreenResources(ScreenPtr /*pScreen */
377*4882a593Smuzhiyun     );
378*4882a593Smuzhiyun 
379*4882a593Smuzhiyun extern _X_EXPORT Bool miScreenDevPrivateInit(ScreenPtr pScreen,
380*4882a593Smuzhiyun                                              int width,
381*4882a593Smuzhiyun                                              void *pbits
382*4882a593Smuzhiyun     );
383*4882a593Smuzhiyun 
384*4882a593Smuzhiyun extern _X_EXPORT Bool miScreenInit(ScreenPtr pScreen,
385*4882a593Smuzhiyun                                    void *pbits,
386*4882a593Smuzhiyun                                    int xsize,
387*4882a593Smuzhiyun                                    int ysize,
388*4882a593Smuzhiyun                                    int dpix,
389*4882a593Smuzhiyun                                    int dpiy,
390*4882a593Smuzhiyun                                    int width,
391*4882a593Smuzhiyun                                    int rootDepth,
392*4882a593Smuzhiyun                                    int numDepths,
393*4882a593Smuzhiyun                                    DepthPtr depths,
394*4882a593Smuzhiyun                                    VisualID rootVisual,
395*4882a593Smuzhiyun                                    int numVisuals,
396*4882a593Smuzhiyun                                    VisualPtr visuals
397*4882a593Smuzhiyun     );
398*4882a593Smuzhiyun 
399*4882a593Smuzhiyun /* mivaltree.c */
400*4882a593Smuzhiyun 
401*4882a593Smuzhiyun extern _X_EXPORT int miShapedWindowIn(RegionPtr /*universe */ ,
402*4882a593Smuzhiyun                                       RegionPtr /*bounding */ ,
403*4882a593Smuzhiyun                                       BoxPtr /*rect */ ,
404*4882a593Smuzhiyun                                       int /*x */ ,
405*4882a593Smuzhiyun                                       int       /*y */
406*4882a593Smuzhiyun     );
407*4882a593Smuzhiyun 
408*4882a593Smuzhiyun extern _X_EXPORT int miValidateTree(WindowPtr /*pParent */ ,
409*4882a593Smuzhiyun                                     WindowPtr /*pChild */ ,
410*4882a593Smuzhiyun                                     VTKind      /*kind */
411*4882a593Smuzhiyun     );
412*4882a593Smuzhiyun 
413*4882a593Smuzhiyun extern _X_EXPORT void miWideLine(DrawablePtr /*pDrawable */ ,
414*4882a593Smuzhiyun                                  GCPtr /*pGC */ ,
415*4882a593Smuzhiyun                                  int /*mode */ ,
416*4882a593Smuzhiyun                                  int /*npt */ ,
417*4882a593Smuzhiyun                                  DDXPointPtr    /*pPts */
418*4882a593Smuzhiyun     );
419*4882a593Smuzhiyun 
420*4882a593Smuzhiyun extern _X_EXPORT void miWideDash(DrawablePtr /*pDrawable */ ,
421*4882a593Smuzhiyun                                  GCPtr /*pGC */ ,
422*4882a593Smuzhiyun                                  int /*mode */ ,
423*4882a593Smuzhiyun                                  int /*npt */ ,
424*4882a593Smuzhiyun                                  DDXPointPtr    /*pPts */
425*4882a593Smuzhiyun     );
426*4882a593Smuzhiyun 
427*4882a593Smuzhiyun extern _X_EXPORT void miPolylines(DrawablePtr pDrawable,
428*4882a593Smuzhiyun                                   GCPtr pGC,
429*4882a593Smuzhiyun                                   int mode,
430*4882a593Smuzhiyun                                   int npt,
431*4882a593Smuzhiyun                                   DDXPointPtr pPts);
432*4882a593Smuzhiyun 
433*4882a593Smuzhiyun /* miwindow.c */
434*4882a593Smuzhiyun 
435*4882a593Smuzhiyun extern _X_EXPORT void miClearToBackground(WindowPtr /*pWin */ ,
436*4882a593Smuzhiyun                                           int /*x */ ,
437*4882a593Smuzhiyun                                           int /*y */ ,
438*4882a593Smuzhiyun                                           int /*w */ ,
439*4882a593Smuzhiyun                                           int /*h */ ,
440*4882a593Smuzhiyun                                           Bool  /*generateExposures */
441*4882a593Smuzhiyun     );
442*4882a593Smuzhiyun 
443*4882a593Smuzhiyun extern _X_EXPORT void miMarkWindow(WindowPtr    /*pWin */
444*4882a593Smuzhiyun     );
445*4882a593Smuzhiyun 
446*4882a593Smuzhiyun extern _X_EXPORT Bool miMarkOverlappedWindows(WindowPtr /*pWin */ ,
447*4882a593Smuzhiyun                                               WindowPtr /*pFirst */ ,
448*4882a593Smuzhiyun                                               WindowPtr *       /*ppLayerWin */
449*4882a593Smuzhiyun     );
450*4882a593Smuzhiyun 
451*4882a593Smuzhiyun extern _X_EXPORT void miHandleValidateExposures(WindowPtr       /*pWin */
452*4882a593Smuzhiyun     );
453*4882a593Smuzhiyun 
454*4882a593Smuzhiyun extern _X_EXPORT void miMoveWindow(WindowPtr /*pWin */ ,
455*4882a593Smuzhiyun                                    int /*x */ ,
456*4882a593Smuzhiyun                                    int /*y */ ,
457*4882a593Smuzhiyun                                    WindowPtr /*pNextSib */ ,
458*4882a593Smuzhiyun                                    VTKind       /*kind */
459*4882a593Smuzhiyun     );
460*4882a593Smuzhiyun 
461*4882a593Smuzhiyun extern _X_EXPORT void miResizeWindow(WindowPtr /*pWin */ ,
462*4882a593Smuzhiyun                                      int /*x */ ,
463*4882a593Smuzhiyun                                      int /*y */ ,
464*4882a593Smuzhiyun                                      unsigned int /*w */ ,
465*4882a593Smuzhiyun                                      unsigned int /*h */ ,
466*4882a593Smuzhiyun                                      WindowPtr    /*pSib */
467*4882a593Smuzhiyun     );
468*4882a593Smuzhiyun 
469*4882a593Smuzhiyun extern _X_EXPORT WindowPtr miGetLayerWindow(WindowPtr   /*pWin */
470*4882a593Smuzhiyun     );
471*4882a593Smuzhiyun 
472*4882a593Smuzhiyun extern _X_EXPORT void miSetShape(WindowPtr /*pWin */ ,
473*4882a593Smuzhiyun                                  int    /*kind */
474*4882a593Smuzhiyun     );
475*4882a593Smuzhiyun 
476*4882a593Smuzhiyun extern _X_EXPORT void miChangeBorderWidth(WindowPtr /*pWin */ ,
477*4882a593Smuzhiyun                                           unsigned int  /*width */
478*4882a593Smuzhiyun     );
479*4882a593Smuzhiyun 
480*4882a593Smuzhiyun extern _X_EXPORT void miMarkUnrealizedWindow(WindowPtr /*pChild */ ,
481*4882a593Smuzhiyun                                              WindowPtr /*pWin */ ,
482*4882a593Smuzhiyun                                              Bool       /*fromConfigure */
483*4882a593Smuzhiyun     );
484*4882a593Smuzhiyun 
485*4882a593Smuzhiyun extern _X_EXPORT WindowPtr miSpriteTrace(SpritePtr pSprite, int x, int y);
486*4882a593Smuzhiyun 
487*4882a593Smuzhiyun extern _X_EXPORT WindowPtr miXYToWindow(ScreenPtr pScreen, SpritePtr pSprite, int x, int y);
488*4882a593Smuzhiyun 
489*4882a593Smuzhiyun /* mizerarc.c */
490*4882a593Smuzhiyun 
491*4882a593Smuzhiyun extern _X_EXPORT void miZeroPolyArc(DrawablePtr /*pDraw */ ,
492*4882a593Smuzhiyun                                     GCPtr /*pGC */ ,
493*4882a593Smuzhiyun                                     int /*narcs */ ,
494*4882a593Smuzhiyun                                     xArc *      /*parcs */
495*4882a593Smuzhiyun     );
496*4882a593Smuzhiyun 
497*4882a593Smuzhiyun /* mizerline.c */
498*4882a593Smuzhiyun 
499*4882a593Smuzhiyun extern _X_EXPORT void miZeroLine(DrawablePtr /*dst */ ,
500*4882a593Smuzhiyun                                  GCPtr /*pgc */ ,
501*4882a593Smuzhiyun                                  int /*mode */ ,
502*4882a593Smuzhiyun                                  int /*nptInit */ ,
503*4882a593Smuzhiyun                                  DDXPointRec *  /*pptInit */
504*4882a593Smuzhiyun     );
505*4882a593Smuzhiyun 
506*4882a593Smuzhiyun extern _X_EXPORT void miZeroDashLine(DrawablePtr /*dst */ ,
507*4882a593Smuzhiyun                                      GCPtr /*pgc */ ,
508*4882a593Smuzhiyun                                      int /*mode */ ,
509*4882a593Smuzhiyun                                      int /*nptInit */ ,
510*4882a593Smuzhiyun                                      DDXPointRec *      /*pptInit */
511*4882a593Smuzhiyun     );
512*4882a593Smuzhiyun 
513*4882a593Smuzhiyun extern _X_EXPORT void miPolyFillArc(DrawablePtr /*pDraw */ ,
514*4882a593Smuzhiyun                                     GCPtr /*pGC */ ,
515*4882a593Smuzhiyun                                     int /*narcs */ ,
516*4882a593Smuzhiyun                                     xArc *      /*parcs */
517*4882a593Smuzhiyun     );
518*4882a593Smuzhiyun 
519*4882a593Smuzhiyun #endif                          /* MI_H */
520