1 /* $Xorg: mi.h,v 1.4 2001/02/09 02:05:20 xorgcvs Exp $ */
2 /***********************************************************
4 Copyright 1987, 1998 The Open Group
6 Permission to use, copy, modify, distribute, and sell this software and its
7 documentation for any purpose is hereby granted without fee, provided that
8 the above copyright notice appear in all copies and that both that
9 copyright notice and this permission notice appear in supporting
12 The above copyright notice and this permission notice shall be included in
13 all copies or substantial portions of the Software.
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 Except as contained in this notice, the name of The Open Group shall not be
23 used in advertising or otherwise to promote the sale, use or other dealings
24 in this Software without prior written authorization from The Open Group.
27 Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
31 Permission to use, copy, modify, and distribute this software and its
32 documentation for any purpose and without fee is hereby granted,
33 provided that the above copyright notice appear in all copies and that
34 both that copyright notice and this permission notice appear in
35 supporting documentation, and that the name of Digital not be
36 used in advertising or publicity pertaining to distribution of the
37 software without specific, written prior permission.
39 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
40 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
41 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
42 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
43 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
44 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
47 ******************************************************************/
48 /* $XFree86: xc/programs/Xserver/mi/mi.h,v 3.9 2001/08/06 20:51:16 dawes Exp $ */
57 #include <X11/fonts/font.h>
63 typedef struct _miDash *miDashPtr;
69 extern void miPolyArc(
70 DrawablePtr /*pDraw*/,
78 extern RegionPtr miCopyArea(
79 DrawablePtr /*pSrcDrawable*/,
80 DrawablePtr /*pDstDrawable*/,
90 extern void miOpqStipDrawable(
91 DrawablePtr /*pDraw*/,
93 RegionPtr /*prgnSrc*/,
102 extern RegionPtr miCopyPlane(
103 DrawablePtr /*pSrcDrawable*/,
104 DrawablePtr /*pDstDrawable*/,
112 unsigned long /*bitPlane*/
115 extern void miGetImage(
116 DrawablePtr /*pDraw*/,
121 unsigned int /*format*/,
122 unsigned long /*planeMask*/,
126 extern void miPutImage(
127 DrawablePtr /*pDraw*/,
141 extern void miRecolorCursor(
149 extern miDashPtr miDashLine(
152 unsigned int /*nDash*/,
153 unsigned char * /*pDash*/,
154 unsigned int /*offset*/,
158 extern void miStepDash(
160 int * /*pDashIndex*/,
161 unsigned char * /*pDash*/,
162 int /*numInDashList*/,
163 int * /*pDashOffset*/
170 typedef struct _DeviceRec *DevicePtr;
173 extern Bool mieqInit(
178 extern void mieqEnqueue(
182 extern void mieqSwitchScreen(
183 ScreenPtr /*pScreen*/,
187 extern void mieqProcessInputEvents(
193 extern RegionPtr miHandleExposures(
194 DrawablePtr /*pSrcDrawable*/,
195 DrawablePtr /*pDstDrawable*/,
203 unsigned long /*plane*/
206 extern void miSendGraphicsExpose(
207 ClientPtr /*client*/,
214 extern void miSendExposures(
221 extern void miWindowExposures(
224 RegionPtr /*other_exposed*/
227 extern void miPaintWindow(
233 extern void miClearDrawable(
234 DrawablePtr /*pDraw*/,
240 extern void miPolyFillRect(
241 DrawablePtr /*pDrawable*/,
244 xRectangle * /*prectInit*/
249 extern void miPolyGlyphBlt(
250 DrawablePtr /*pDrawable*/,
254 unsigned int /*nglyph*/,
255 CharInfoPtr * /*ppci*/,
256 pointer /*pglyphBase*/
259 extern void miImageGlyphBlt(
260 DrawablePtr /*pDrawable*/,
264 unsigned int /*nglyph*/,
265 CharInfoPtr * /*ppci*/,
266 pointer /*pglyphBase*/
271 extern void miFillPolygon(
282 extern Bool miFillConvexPoly(
286 DDXPointPtr /*ptsIn*/
291 extern Bool miFillGeneralPoly(
295 DDXPointPtr /*ptsIn*/
300 extern void miPolyPoint(
301 DrawablePtr /*pDrawable*/,
310 extern void miPolyRectangle(
311 DrawablePtr /*pDraw*/,
314 xRectangle * /*pRects*/
319 extern void miPolySegment(
320 DrawablePtr /*pDraw*/,
328 extern int miPolyText(
329 DrawablePtr /*pDraw*/,
335 FontEncoding /*fontEncoding*/
338 extern int miPolyText8(
339 DrawablePtr /*pDraw*/,
347 extern int miPolyText16(
348 DrawablePtr /*pDraw*/,
353 unsigned short * /*chars*/
356 extern int miImageText(
357 DrawablePtr /*pDraw*/,
363 FontEncoding /*fontEncoding*/
366 extern void miImageText8(
367 DrawablePtr /*pDraw*/,
375 extern void miImageText16(
376 DrawablePtr /*pDraw*/,
381 unsigned short * /*chars*/
386 extern void miPushPixels(
388 PixmapPtr /*pBitMap*/,
389 DrawablePtr /*pDrawable*/,
398 /* see also region.h */
400 extern Bool miRectAlloc(
405 extern void miSetExtents(
409 extern int miFindMaxBand(
414 extern Bool miValidRegion(
419 extern Bool miRegionDataCopy(RegionPtr dst, RegionPtr src);
420 extern Bool miRegionBroken(RegionPtr pReg);
424 extern Bool miModifyPixmapHeader(
425 PixmapPtr /*pPixmap*/,
429 int /*bitsPerPixel*/,
434 extern Bool miCloseScreen(
436 ScreenPtr /*pScreen*/
439 extern Bool miCreateScreenResources(
440 ScreenPtr /*pScreen*/
443 extern Bool miScreenDevPrivateInit(
444 ScreenPtr /*pScreen*/,
449 extern Bool miScreenInit(
450 ScreenPtr /*pScreen*/,
460 VisualID /*rootVisual*/,
462 VisualPtr /*visuals*/
465 extern int miAllocateGCPrivateIndex(
469 extern PixmapPtr miGetScreenPixmap(
473 extern void miSetScreenPixmap(
479 extern int miShapedWindowIn(
480 ScreenPtr /*pScreen*/,
481 RegionPtr /*universe*/,
482 RegionPtr /*bounding*/,
489 (*SetRedirectBorderClipProcPtr) (WindowPtr pWindow, RegionPtr pRegion);
492 (*GetRedirectBorderClipProcPtr) (WindowPtr pWindow);
495 miRegisterRedirectBorderClipProc (SetRedirectBorderClipProcPtr setBorderClip,
496 GetRedirectBorderClipProcPtr getBorderClip);
498 extern int miValidateTree(
499 WindowPtr /*pParent*/,
500 WindowPtr /*pChild*/,
504 extern void miWideLine(
505 DrawablePtr /*pDrawable*/,
512 extern void miWideDash(
513 DrawablePtr /*pDrawable*/,
524 extern void miNotMiter(
530 extern void miClearToBackground(
536 Bool /*generateExposures*/
539 extern Bool miChangeSaveUnder(
544 extern void miPostChangeSaveUnder(
549 extern void miMarkWindow(
553 extern Bool miMarkOverlappedWindows(
555 WindowPtr /*pFirst*/,
556 WindowPtr * /*ppLayerWin*/
559 extern void miHandleValidateExposures(
563 extern void miMoveWindow(
567 WindowPtr /*pNextSib*/,
571 extern void miSlideAndSizeWindow(
580 extern WindowPtr miGetLayerWindow(
584 extern void miSetShape(
588 extern void miChangeBorderWidth(
590 unsigned int /*width*/
593 extern void miMarkUnrealizedWindow(
594 WindowPtr /*pChild*/,
596 Bool /*fromConfigure*/
599 extern void miSegregateChildren(WindowPtr pWin, RegionPtr pReg, int depth);
603 extern void miZeroPolyArc(
604 DrawablePtr /*pDraw*/,
612 extern void miZeroLine(
617 DDXPointRec * /*pptInit*/
620 extern void miZeroDashLine(
625 DDXPointRec * /*pptInit*/
628 extern void miPolyFillArc(
629 DrawablePtr /*pDraw*/,