VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.8.0/mi.h

Last change on this file was 28062, checked in by vboxsync, 15 years ago

Additions/x11/x11include: header files for building X.Org server 1.8 drivers

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette