1 /***********************************************************
3 Copyright 1987, 1998 The Open Group
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
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 Except as contained in this notice, the name of The Open Group shall not be
22 used in advertising or otherwise to promote the sale, use or other dealings
23 in this Software without prior written authorization from The Open Group.
25 Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
29 Permission to use, copy, modify, and distribute this software and its
30 documentation for any purpose and without fee is hereby granted,
31 provided that the above copyright notice appear in all copies and that
32 both that copyright notice and this permission notice appear in
33 supporting documentation, and that the name of Digital not be
34 used in advertising or publicity pertaining to distribution of the
35 software without specific, written prior permission.
37 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
38 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
39 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
40 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
41 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
42 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
45 ******************************************************************/
54 #include <X11/fonts/font.h>
63 typedef struct _miDash
*miDashPtr
;
70 extern _X_EXPORT
void miPolyArc(DrawablePtr
/*pDraw */ ,
78 extern _X_EXPORT RegionPtr
miCopyArea(DrawablePtr
/*pSrcDrawable */ ,
79 DrawablePtr
/*pDstDrawable */ ,
89 extern _X_EXPORT RegionPtr
miCopyPlane(DrawablePtr
/*pSrcDrawable */ ,
90 DrawablePtr
/*pDstDrawable */ ,
98 unsigned long /*bitPlane */
101 extern _X_EXPORT
void miGetImage(DrawablePtr
/*pDraw */ ,
106 unsigned int /*format */ ,
107 unsigned long /*planeMask */ ,
111 extern _X_EXPORT
void miPutImage(DrawablePtr
/*pDraw */ ,
125 #define miGetCompositeClip(pGC) ((pGC)->pCompositeClip)
127 typedef void (*miCopyProc
) (DrawablePtr pSrcDrawable
,
128 DrawablePtr pDstDrawable
,
135 Bool upsidedown
, Pixel bitplane
, void *closure
);
137 extern _X_EXPORT
void
139 miCopyRegion(DrawablePtr pSrcDrawable
,
140 DrawablePtr pDstDrawable
,
142 RegionPtr pDstRegion
,
144 int dy
, miCopyProc copyProc
, Pixel bitPlane
, void *closure
);
146 extern _X_EXPORT RegionPtr
148 miDoCopy(DrawablePtr pSrcDrawable
,
149 DrawablePtr pDstDrawable
,
156 int yOut
, miCopyProc copyProc
, Pixel bitplane
, void *closure
);
160 extern _X_EXPORT
void miRecolorCursor(DeviceIntPtr
/* pDev */ ,
161 ScreenPtr
/*pScr */ ,
162 CursorPtr
/*pCurs */ ,
168 extern _X_EXPORT
void miStepDash(int /*dist */ ,
169 int * /*pDashIndex */ ,
170 unsigned char * /*pDash */ ,
171 int /*numInDashList */ ,
172 int * /*pDashOffset */
178 typedef struct _DeviceRec
*DevicePtr
;
181 extern _X_EXPORT Bool
mieqInit(void
184 extern _X_EXPORT
void mieqFini(void);
186 extern _X_EXPORT
void mieqEnqueue(DeviceIntPtr
/*pDev */ ,
187 InternalEvent
* /*e */
190 extern _X_EXPORT
void mieqSwitchScreen(DeviceIntPtr
/* pDev */ ,
191 ScreenPtr
/*pScreen */ ,
192 Bool
/*set_dequeue_screen */
195 extern _X_EXPORT
void mieqProcessDeviceEvent(DeviceIntPtr
/* dev */ ,
196 InternalEvent
* /* event */ ,
197 ScreenPtr
/* screen */
200 extern _X_EXPORT
void mieqProcessInputEvents(void
203 extern DeviceIntPtr
CopyGetMasterEvent(DeviceIntPtr
/* sdev */ ,
204 InternalEvent
* /* original */ ,
205 InternalEvent
* /* copy */
209 * Custom input event handler. If you need to process input events in some
210 * other way than the default path, register an input event handler for the
211 * given internal event type.
213 typedef void (*mieqHandler
) (int screen
, InternalEvent
*event
,
215 void _X_EXPORT
mieqSetHandler(int event
, mieqHandler handler
);
219 extern _X_EXPORT RegionPtr
miHandleExposures(DrawablePtr
/*pSrcDrawable */ ,
220 DrawablePtr
/*pDstDrawable */ ,
228 unsigned long /*plane */
231 extern _X_EXPORT
void miSendGraphicsExpose(ClientPtr
/*client */ ,
232 RegionPtr
/*pRgn */ ,
238 extern _X_EXPORT
void miSendExposures(WindowPtr
/*pWin */ ,
239 RegionPtr
/*pRgn */ ,
244 extern _X_EXPORT
void miWindowExposures(WindowPtr
/*pWin */ ,
245 RegionPtr
/*prgn */ ,
246 RegionPtr
/*other_exposed */
249 extern _X_EXPORT
void miPaintWindow(WindowPtr
/*pWin */ ,
250 RegionPtr
/*prgn */ ,
254 extern _X_EXPORT
void miClearDrawable(DrawablePtr
/*pDraw */ ,
260 extern _X_EXPORT
void miPolyFillRect(DrawablePtr
/*pDrawable */ ,
263 xRectangle
* /*prectInit */
268 extern _X_EXPORT
void miPolyGlyphBlt(DrawablePtr
/*pDrawable */ ,
272 unsigned int /*nglyph */ ,
273 CharInfoPtr
* /*ppci */ ,
274 pointer
/*pglyphBase */
277 extern _X_EXPORT
void miImageGlyphBlt(DrawablePtr
/*pDrawable */ ,
281 unsigned int /*nglyph */ ,
282 CharInfoPtr
* /*ppci */ ,
283 pointer
/*pglyphBase */
288 extern _X_EXPORT
void miFillPolygon(DrawablePtr
/*dst */ ,
293 DDXPointPtr
/*pPts */
298 extern _X_EXPORT Bool
miFillConvexPoly(DrawablePtr
/*dst */ ,
301 DDXPointPtr
/*ptsIn */
306 extern _X_EXPORT Bool
miFillGeneralPoly(DrawablePtr
/*dst */ ,
309 DDXPointPtr
/*ptsIn */
314 extern _X_EXPORT
void miPolyPoint(DrawablePtr
/*pDrawable */ ,
318 xPoint
* /*pptInit */
323 extern _X_EXPORT
void miPolyRectangle(DrawablePtr
/*pDraw */ ,
326 xRectangle
* /*pRects */
331 extern _X_EXPORT
void miPolySegment(DrawablePtr
/*pDraw */ ,
334 xSegment
* /*pSegs */
339 extern _X_EXPORT
int miPolyText8(DrawablePtr
/*pDraw */ ,
347 extern _X_EXPORT
int miPolyText16(DrawablePtr
/*pDraw */ ,
352 unsigned short * /*chars */
355 extern _X_EXPORT
void miImageText8(DrawablePtr
/*pDraw */ ,
363 extern _X_EXPORT
void miImageText16(DrawablePtr
/*pDraw */ ,
368 unsigned short * /*chars */
373 extern _X_EXPORT
void miPushPixels(GCPtr
/*pGC */ ,
374 PixmapPtr
/*pBitMap */ ,
375 DrawablePtr
/*pDrawable */ ,
384 extern _X_EXPORT Bool
miModifyPixmapHeader(PixmapPtr
/*pPixmap */ ,
388 int /*bitsPerPixel */ ,
390 pointer
/*pPixData */
393 extern _X_EXPORT Bool
miCreateScreenResources(ScreenPtr
/*pScreen */
396 extern _X_EXPORT Bool
miScreenDevPrivateInit(ScreenPtr
/*pScreen */ ,
401 extern _X_EXPORT Bool
miScreenInit(ScreenPtr
/*pScreen */ ,
410 DepthPtr
/*depths */ ,
411 VisualID
/*rootVisual */ ,
412 int /*numVisuals */ ,
413 VisualPtr
/*visuals */
418 extern _X_EXPORT
int miShapedWindowIn(RegionPtr
/*universe */ ,
419 RegionPtr
/*bounding */ ,
426 (*SetRedirectBorderClipProcPtr
) (WindowPtr pWindow
, RegionPtr pRegion
);
429 (*GetRedirectBorderClipProcPtr
) (WindowPtr pWindow
);
431 extern _X_EXPORT
void
433 miRegisterRedirectBorderClipProc(SetRedirectBorderClipProcPtr setBorderClip
,
434 GetRedirectBorderClipProcPtr getBorderClip
);
436 extern _X_EXPORT
int miValidateTree(WindowPtr
/*pParent */ ,
437 WindowPtr
/*pChild */ ,
441 extern _X_EXPORT
void miWideLine(DrawablePtr
/*pDrawable */ ,
445 DDXPointPtr
/*pPts */
448 extern _X_EXPORT
void miWideDash(DrawablePtr
/*pDrawable */ ,
452 DDXPointPtr
/*pPts */
457 extern _X_EXPORT
void miClearToBackground(WindowPtr
/*pWin */ ,
462 Bool
/*generateExposures */
465 extern _X_EXPORT
void miMarkWindow(WindowPtr
/*pWin */
468 extern _X_EXPORT Bool
miMarkOverlappedWindows(WindowPtr
/*pWin */ ,
469 WindowPtr
/*pFirst */ ,
470 WindowPtr
* /*ppLayerWin */
473 extern _X_EXPORT
void miHandleValidateExposures(WindowPtr
/*pWin */
476 extern _X_EXPORT
void miMoveWindow(WindowPtr
/*pWin */ ,
479 WindowPtr
/*pNextSib */ ,
483 extern _X_EXPORT
void miSlideAndSizeWindow(WindowPtr
/*pWin */ ,
486 unsigned int /*w */ ,
487 unsigned int /*h */ ,
491 extern _X_EXPORT WindowPtr
miGetLayerWindow(WindowPtr
/*pWin */
494 extern _X_EXPORT
void miSetShape(WindowPtr
/*pWin */ ,
498 extern _X_EXPORT
void miChangeBorderWidth(WindowPtr
/*pWin */ ,
499 unsigned int /*width */
502 extern _X_EXPORT
void miMarkUnrealizedWindow(WindowPtr
/*pChild */ ,
503 WindowPtr
/*pWin */ ,
504 Bool
/*fromConfigure */
507 extern _X_EXPORT
void miSegregateChildren(WindowPtr pWin
, RegionPtr pReg
,
512 extern _X_EXPORT
void miZeroPolyArc(DrawablePtr
/*pDraw */ ,
520 extern _X_EXPORT
void miZeroLine(DrawablePtr
/*dst */ ,
524 DDXPointRec
* /*pptInit */
527 extern _X_EXPORT
void miZeroDashLine(DrawablePtr
/*dst */ ,
531 DDXPointRec
* /*pptInit */
534 extern _X_EXPORT
void miPolyFillArc(DrawablePtr
/*pDraw */ ,