First import
[xorg_rtime.git] / xorg-server-1.4 / cfb / cfb.h
blob8c682ae8db53d1a84c73cc439b5f6802d92f8c0d
1 /************************************************************
2 Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
4 All Rights Reserved
6 Permission to use, copy, modify, and distribute this
7 software and its documentation for any purpose and without
8 fee is hereby granted, provided that the above copyright no-
9 tice appear in all copies and that both that copyright no-
10 tice and this permission notice appear in supporting docu-
11 mentation, and that the names of Sun or The Open Group
12 not be used in advertising or publicity pertaining to
13 distribution of the software without specific prior
14 written permission. Sun and The Open Group make no
15 representations about the suitability of this software for
16 any purpose. It is provided "as is" without any express or
17 implied warranty.
19 SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
20 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
21 NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI-
22 ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
23 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
24 PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
25 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
26 THE USE OR PERFORMANCE OF THIS SOFTWARE.
28 ********************************************************/
30 #if !defined(__CFB_H__) || defined(CFB_PROTOTYPES_ONLY)
32 #include <X11/X.h>
33 #include "globals.h"
34 #include "pixmap.h"
35 #include "region.h"
36 #include "gc.h"
37 #include "colormap.h"
38 #include "miscstruct.h"
39 #include "servermd.h"
40 #include "windowstr.h"
41 #include "mfb.h"
42 #undef PixelType
44 #include "cfbmap.h"
46 #ifndef CfbBits
47 #define CfbBits CARD32
48 #endif
50 #ifndef CFB_PROTOTYPES_ONLY
51 #define __CFB_H__
53 private filed of pixmap
54 pixmap.devPrivate = (unsigned int *)pointer_to_bits
55 pixmap.devKind = width_of_pixmap_in_bytes
58 extern int cfbGCPrivateIndex;
59 extern int cfbWindowPrivateIndex;
61 /* private field of GC */
62 typedef struct {
63 unsigned char rop; /* special case rop values */
64 /* next two values unused in cfb, included for compatibility with mfb */
65 unsigned char ropOpStip; /* rop for opaque stipple */
66 /* this value is ropFillArea in mfb, usurped for cfb */
67 unsigned char oneRect; /* drawable has one clip rect */
68 CfbBits xor, and; /* reduced rop values */
69 } cfbPrivGC;
71 typedef cfbPrivGC *cfbPrivGCPtr;
73 #define cfbGetGCPrivate(pGC) ((cfbPrivGCPtr)\
74 (pGC)->devPrivates[cfbGCPrivateIndex].ptr)
76 #define cfbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
78 /* way to carry RROP info around */
79 typedef struct {
80 unsigned char rop;
81 CfbBits xor, and;
82 } cfbRRopRec, *cfbRRopPtr;
84 /* private field of window */
85 typedef struct {
86 unsigned char fastBorder; /* non-zero if border is 32 bits wide */
87 unsigned char fastBackground;
88 unsigned short unused; /* pad for alignment with Sun compiler */
89 DDXPointRec oldRotate;
90 PixmapPtr pRotatedBackground;
91 PixmapPtr pRotatedBorder;
92 } cfbPrivWin;
94 #define cfbGetWindowPrivate(_pWin) ((cfbPrivWin *)\
95 (_pWin)->devPrivates[cfbWindowPrivateIndex].ptr)
98 /* cfb8bit.c */
100 extern int cfbSetStipple(
101 int /*alu*/,
102 CfbBits /*fg*/,
103 CfbBits /*planemask*/
106 extern int cfbSetOpaqueStipple(
107 int /*alu*/,
108 CfbBits /*fg*/,
109 CfbBits /*bg*/,
110 CfbBits /*planemask*/
113 extern int cfbComputeClipMasks32(
114 BoxPtr /*pBox*/,
115 int /*numRects*/,
116 int /*x*/,
117 int /*y*/,
118 int /*w*/,
119 int /*h*/,
120 CARD32 * /*clips*/
122 #endif /* !CFB_PROTOTYPES_ONLY */
123 /* cfb8cppl.c */
125 extern void cfbCopyImagePlane(
126 DrawablePtr /*pSrcDrawable*/,
127 DrawablePtr /*pDstDrawable*/,
128 int /*rop*/,
129 RegionPtr /*prgnDst*/,
130 DDXPointPtr /*pptSrc*/,
131 unsigned long /*planemask*/
134 #ifndef CFB_PROTOTYPES_ONLY
135 extern void cfbCopyPlane8to1(
136 DrawablePtr /*pSrcDrawable*/,
137 DrawablePtr /*pDstDrawable*/,
138 int /*rop*/,
139 RegionPtr /*prgnDst*/,
140 DDXPointPtr /*pptSrc*/,
141 unsigned long /*planemask*/,
142 unsigned long /*bitPlane*/
145 extern void cfbCopyPlane16to1(
146 DrawablePtr /*pSrcDrawable*/,
147 DrawablePtr /*pDstDrawable*/,
148 int /*rop*/,
149 RegionPtr /*prgnDst*/,
150 DDXPointPtr /*pptSrc*/,
151 unsigned long /*planemask*/,
152 unsigned long /*bitPlane*/
155 extern void cfbCopyPlane24to1(
156 DrawablePtr /*pSrcDrawable*/,
157 DrawablePtr /*pDstDrawable*/,
158 int /*rop*/,
159 RegionPtr /*prgnDst*/,
160 DDXPointPtr /*pptSrc*/,
161 unsigned long /*planemask*/,
162 unsigned long /*bitPlane*/
165 extern void cfbCopyPlane32to1(
166 DrawablePtr /*pSrcDrawable*/,
167 DrawablePtr /*pDstDrawable*/,
168 int /*rop*/,
169 RegionPtr /*prgnDst*/,
170 DDXPointPtr /*pptSrc*/,
171 unsigned long /*planemask*/,
172 unsigned long /*bitPlane*/
174 #endif
176 /* cfb8lineCO.c */
178 extern int cfb8LineSS1RectCopy(
179 DrawablePtr /*pDrawable*/,
180 GCPtr /*pGC*/,
181 int /*mode*/,
182 int /*npt*/,
183 DDXPointPtr /*pptInit*/,
184 DDXPointPtr /*pptInitOrig*/,
185 int * /*x1p*/,
186 int * /*y1p*/,
187 int * /*x2p*/,
188 int * /*y2p*/
191 extern void cfb8LineSS1Rect(
192 DrawablePtr /*pDrawable*/,
193 GCPtr /*pGC*/,
194 int /*mode*/,
195 int /*npt*/,
196 DDXPointPtr /*pptInit*/
199 extern void cfb8ClippedLineCopy(
200 DrawablePtr /*pDrawable*/,
201 GCPtr /*pGC*/,
202 int /*x1*/,
203 int /*y1*/,
204 int /*x2*/,
205 int /*y2*/,
206 BoxPtr /*boxp*/,
207 Bool /*shorten*/
209 /* cfb8lineCP.c */
211 extern int cfb8LineSS1RectPreviousCopy(
212 DrawablePtr /*pDrawable*/,
213 GCPtr /*pGC*/,
214 int /*mode*/,
215 int /*npt*/,
216 DDXPointPtr /*pptInit*/,
217 DDXPointPtr /*pptInitOrig*/,
218 int * /*x1p*/,
219 int * /*y1p*/,
220 int * /*x2p*/,
221 int * /*y2p*/
223 /* cfb8lineG.c */
225 extern int cfb8LineSS1RectGeneral(
226 DrawablePtr /*pDrawable*/,
227 GCPtr /*pGC*/,
228 int /*mode*/,
229 int /*npt*/,
230 DDXPointPtr /*pptInit*/,
231 DDXPointPtr /*pptInitOrig*/,
232 int * /*x1p*/,
233 int * /*y1p*/,
234 int * /*x2p*/,
235 int * /*y2p*/
238 extern void cfb8ClippedLineGeneral(
239 DrawablePtr /*pDrawable*/,
240 GCPtr /*pGC*/,
241 int /*x1*/,
242 int /*y1*/,
243 int /*x2*/,
244 int /*y2*/,
245 BoxPtr /*boxp*/,
246 Bool /*shorten*/
248 /* cfb8lineX.c */
250 extern int cfb8LineSS1RectXor(
251 DrawablePtr /*pDrawable*/,
252 GCPtr /*pGC*/,
253 int /*mode*/,
254 int /*npt*/,
255 DDXPointPtr /*pptInit*/,
256 DDXPointPtr /*pptInitOrig*/,
257 int * /*x1p*/,
258 int * /*y1p*/,
259 int * /*x2p*/,
260 int * /*y2p*/
263 extern void cfb8ClippedLineXor(
264 DrawablePtr /*pDrawable*/,
265 GCPtr /*pGC*/,
266 int /*x1*/,
267 int /*y1*/,
268 int /*x2*/,
269 int /*y2*/,
270 BoxPtr /*boxp*/,
271 Bool /*shorten*/
273 /* cfb8segC.c */
275 extern int cfb8SegmentSS1RectCopy(
276 DrawablePtr /*pDrawable*/,
277 GCPtr /*pGC*/,
278 int /*nseg*/,
279 xSegment * /*pSegInit*/
281 /* cfb8segCS.c */
283 extern int cfb8SegmentSS1RectShiftCopy(
284 DrawablePtr /*pDrawable*/,
285 GCPtr /*pGC*/,
286 int /*nseg*/,
287 xSegment * /*pSegInit*/
290 extern void cfb8SegmentSS1Rect(
291 DrawablePtr /*pDrawable*/,
292 GCPtr /*pGC*/,
293 int /*nseg*/,
294 xSegment * /*pSegInit*/
296 /* cfb8segG.c */
298 extern int cfb8SegmentSS1RectGeneral(
299 DrawablePtr /*pDrawable*/,
300 GCPtr /*pGC*/,
301 int /*nseg*/,
302 xSegment * /*pSegInit*/
304 /* cfbsegX.c */
306 extern int cfb8SegmentSS1RectXor(
307 DrawablePtr /*pDrawable*/,
308 GCPtr /*pGC*/,
309 int /*nseg*/,
310 xSegment * /*pSegInit*/
312 /* cfballpriv.c */
314 extern Bool cfbAllocatePrivates(
315 ScreenPtr /*pScreen*/,
316 int * /*window_index*/,
317 int * /*gc_index*/
319 /* cfbbitblt.c */
321 extern RegionPtr cfbBitBlt(
322 DrawablePtr /*pSrcDrawable*/,
323 DrawablePtr /*pDstDrawable*/,
324 GCPtr/*pGC*/,
325 int /*srcx*/,
326 int /*srcy*/,
327 int /*width*/,
328 int /*height*/,
329 int /*dstx*/,
330 int /*dsty*/,
331 void (* /*doBitBlt*/)(
332 DrawablePtr /*pSrc*/,
333 DrawablePtr /*pDst*/,
334 int /*alu*/,
335 RegionPtr /*prgnDst*/,
336 DDXPointPtr /*pptSrc*/,
337 unsigned long /*planemask*/
339 unsigned long /*bitPlane*/
342 #define cfbCopyPlaneExpand cfbBitBlt
344 extern RegionPtr cfbCopyPlaneReduce(
345 DrawablePtr /*pSrcDrawable*/,
346 DrawablePtr /*pDstDrawable*/,
347 GCPtr /*pGC*/,
348 int /*srcx*/,
349 int /*srcy*/,
350 int /*width*/,
351 int /*height*/,
352 int /*dstx*/,
353 int /*dsty*/,
354 void (* /*doCopyPlane*/)(
355 DrawablePtr /*pSrc*/,
356 DrawablePtr /*pDst*/,
357 int /*alu*/,
358 RegionPtr /*prgnDst*/,
359 DDXPointPtr /*pptSrc*/,
360 unsigned long /*planemask*/,
361 unsigned long /*bitPlane*/ /* We must know which plane to reduce! */
363 unsigned long /*bitPlane*/
366 extern void cfbDoBitblt(
367 DrawablePtr /*pSrc*/,
368 DrawablePtr /*pDst*/,
369 int /*alu*/,
370 RegionPtr /*prgnDst*/,
371 DDXPointPtr /*pptSrc*/,
372 unsigned long /*planemask*/
375 extern RegionPtr cfbCopyArea(
376 DrawablePtr /*pSrcDrawable*/,
377 DrawablePtr /*pDstDrawable*/,
378 GCPtr/*pGC*/,
379 int /*srcx*/,
380 int /*srcy*/,
381 int /*width*/,
382 int /*height*/,
383 int /*dstx*/,
384 int /*dsty*/
387 #ifndef CFB_PROTOTYPES_ONLY
388 extern void cfbCopyPlane1to8(
389 DrawablePtr /*pSrcDrawable*/,
390 DrawablePtr /*pDstDrawable*/,
391 int /*rop*/,
392 RegionPtr /*prgnDst*/,
393 DDXPointPtr /*pptSrc*/,
394 unsigned long /*planemask*/
396 #endif
398 extern RegionPtr cfbCopyPlane(
399 DrawablePtr /*pSrcDrawable*/,
400 DrawablePtr /*pDstDrawable*/,
401 GCPtr /*pGC*/,
402 int /*srcx*/,
403 int /*srcy*/,
404 int /*width*/,
405 int /*height*/,
406 int /*dstx*/,
407 int /*dsty*/,
408 unsigned long /*bitPlane*/
410 /* cfbbltC.c */
412 extern void cfbDoBitbltCopy(
413 DrawablePtr /*pSrc*/,
414 DrawablePtr /*pDst*/,
415 int /*alu*/,
416 RegionPtr /*prgnDst*/,
417 DDXPointPtr /*pptSrc*/,
418 unsigned long /*planemask*/
420 /* cfbbltG.c */
422 extern void cfbDoBitbltGeneral(
423 DrawablePtr /*pSrc*/,
424 DrawablePtr /*pDst*/,
425 int /*alu*/,
426 RegionPtr /*prgnDst*/,
427 DDXPointPtr /*pptSrc*/,
428 unsigned long /*planemask*/
430 /* cfbbltO.c */
432 extern void cfbDoBitbltOr(
433 DrawablePtr /*pSrc*/,
434 DrawablePtr /*pDst*/,
435 int /*alu*/,
436 RegionPtr /*prgnDst*/,
437 DDXPointPtr /*pptSrc*/,
438 unsigned long /*planemask*/
440 /* cfbbltX.c */
442 extern void cfbDoBitbltXor(
443 DrawablePtr /*pSrc*/,
444 DrawablePtr /*pDst*/,
445 int /*alu*/,
446 RegionPtr /*prgnDst*/,
447 DDXPointPtr /*pptSrc*/,
448 unsigned long /*planemask*/
450 /* cfbbres.c */
452 extern void cfbBresS(
453 int /*rop*/,
454 CfbBits /*and*/,
455 CfbBits /*xor*/,
456 CfbBits * /*addrl*/,
457 int /*nlwidth*/,
458 int /*signdx*/,
459 int /*signdy*/,
460 int /*axis*/,
461 int /*x1*/,
462 int /*y1*/,
463 int /*e*/,
464 int /*e1*/,
465 int /*e2*/,
466 int /*len*/
468 /* cfbbresd.c */
470 extern void cfbBresD(
471 cfbRRopPtr /*rrops*/,
472 int * /*pdashIndex*/,
473 unsigned char * /*pDash*/,
474 int /*numInDashList*/,
475 int * /*pdashOffset*/,
476 int /*isDoubleDash*/,
477 CfbBits * /*addrl*/,
478 int /*nlwidth*/,
479 int /*signdx*/,
480 int /*signdy*/,
481 int /*axis*/,
482 int /*x1*/,
483 int /*y1*/,
484 int /*e*/,
485 int /*e1*/,
486 int /*e2*/,
487 int /*len*/
489 /* cfbbstore.c */
491 extern void cfbSaveAreas(
492 PixmapPtr /*pPixmap*/,
493 RegionPtr /*prgnSave*/,
494 int /*xorg*/,
495 int /*yorg*/,
496 WindowPtr /*pWin*/
499 extern void cfbRestoreAreas(
500 PixmapPtr /*pPixmap*/,
501 RegionPtr /*prgnRestore*/,
502 int /*xorg*/,
503 int /*yorg*/,
504 WindowPtr /*pWin*/
506 /* cfbcmap.c */
508 #ifndef CFB_PROTOTYPES_ONLY
509 extern int cfbListInstalledColormaps(
510 ScreenPtr /*pScreen*/,
511 Colormap * /*pmaps*/
514 extern void cfbInstallColormap(
515 ColormapPtr /*pmap*/
518 extern void cfbUninstallColormap(
519 ColormapPtr /*pmap*/
522 extern void cfbResolveColor(
523 unsigned short * /*pred*/,
524 unsigned short * /*pgreen*/,
525 unsigned short * /*pblue*/,
526 VisualPtr /*pVisual*/
529 extern Bool cfbInitializeColormap(
530 ColormapPtr /*pmap*/
533 extern int cfbExpandDirectColors(
534 ColormapPtr /*pmap*/,
535 int /*ndef*/,
536 xColorItem * /*indefs*/,
537 xColorItem * /*outdefs*/
540 extern Bool cfbCreateDefColormap(
541 ScreenPtr /*pScreen*/
544 extern Bool cfbSetVisualTypes(
545 int /*depth*/,
546 int /*visuals*/,
547 int /*bitsPerRGB*/
550 extern void cfbClearVisualTypes(void);
552 extern Bool cfbInitVisuals(
553 VisualPtr * /*visualp*/,
554 DepthPtr * /*depthp*/,
555 int * /*nvisualp*/,
556 int * /*ndepthp*/,
557 int * /*rootDepthp*/,
558 VisualID * /*defaultVisp*/,
559 unsigned long /*sizes*/,
560 int /*bitsPerRGB*/
562 #endif
563 /* cfbfillarcC.c */
565 extern void cfbPolyFillArcSolidCopy(
566 DrawablePtr /*pDraw*/,
567 GCPtr /*pGC*/,
568 int /*narcs*/,
569 xArc * /*parcs*/
571 /* cfbfillarcG.c */
573 extern void cfbPolyFillArcSolidGeneral(
574 DrawablePtr /*pDraw*/,
575 GCPtr /*pGC*/,
576 int /*narcs*/,
577 xArc * /*parcs*/
579 /* cfbfillrct.c */
581 extern void cfbFillBoxTileOdd(
582 DrawablePtr /*pDrawable*/,
583 int /*n*/,
584 BoxPtr /*rects*/,
585 PixmapPtr /*tile*/,
586 int /*xrot*/,
587 int /*yrot*/
590 extern void cfbFillRectTileOdd(
591 DrawablePtr /*pDrawable*/,
592 GCPtr /*pGC*/,
593 int /*nBox*/,
594 BoxPtr /*pBox*/
597 extern void cfbPolyFillRect(
598 DrawablePtr /*pDrawable*/,
599 GCPtr /*pGC*/,
600 int /*nrectFill*/,
601 xRectangle * /*prectInit*/
603 /* cfbfillsp.c */
605 extern void cfbUnnaturalTileFS(
606 DrawablePtr /*pDrawable*/,
607 GCPtr/*pGC*/,
608 int /*nInit*/,
609 DDXPointPtr /*pptInit*/,
610 int * /*pwidthInit*/,
611 int /*fSorted*/
614 extern void cfbUnnaturalStippleFS(
615 DrawablePtr /*pDrawable*/,
616 GCPtr/*pGC*/,
617 int /*nInit*/,
618 DDXPointPtr /*pptInit*/,
619 int * /*pwidthInit*/,
620 int /*fSorted*/
623 #ifndef CFB_PROTOTYPES_ONLY
624 extern void cfb8Stipple32FS(
625 DrawablePtr /*pDrawable*/,
626 GCPtr /*pGC*/,
627 int /*nInit*/,
628 DDXPointPtr /*pptInit*/,
629 int * /*pwidthInit*/,
630 int /*fSorted*/
633 extern void cfb8OpaqueStipple32FS(
634 DrawablePtr /*pDrawable*/,
635 GCPtr /*pGC*/,
636 int /*nInit*/,
637 DDXPointPtr /*pptInit*/,
638 int * /*pwidthInit*/,
639 int /*fSorted*/
641 #endif
642 /* cfbgc.c */
644 extern GCOpsPtr cfbMatchCommon(
645 GCPtr /*pGC*/,
646 cfbPrivGCPtr /*devPriv*/
649 extern Bool cfbCreateGC(
650 GCPtr /*pGC*/
653 extern void cfbValidateGC(
654 GCPtr /*pGC*/,
655 unsigned long /*changes*/,
656 DrawablePtr /*pDrawable*/
659 /* cfbgetsp.c */
661 extern void cfbGetSpans(
662 DrawablePtr /*pDrawable*/,
663 int /*wMax*/,
664 DDXPointPtr /*ppt*/,
665 int * /*pwidth*/,
666 int /*nspans*/,
667 char * /*pdstStart*/
669 /* cfbglblt8.c */
671 extern void cfbPolyGlyphBlt8(
672 DrawablePtr /*pDrawable*/,
673 GCPtr /*pGC*/,
674 int /*x*/,
675 int /*y*/,
676 unsigned int /*nglyph*/,
677 CharInfoPtr * /*ppci*/,
678 pointer /*pglyphBase*/
680 /* cfbglrop8.c */
682 extern void cfbPolyGlyphRop8(
683 DrawablePtr /*pDrawable*/,
684 GCPtr /*pGC*/,
685 int /*x*/,
686 int /*y*/,
687 unsigned int /*nglyph*/,
688 CharInfoPtr * /*ppci*/,
689 pointer /*pglyphBase*/
691 /* cfbhrzvert.c */
693 extern void cfbHorzS(
694 int /*rop*/,
695 CfbBits /*and*/,
696 CfbBits /*xor*/,
697 CfbBits * /*addrl*/,
698 int /*nlwidth*/,
699 int /*x1*/,
700 int /*y1*/,
701 int /*len*/
704 extern void cfbVertS(
705 int /*rop*/,
706 CfbBits /*and*/,
707 CfbBits /*xor*/,
708 CfbBits * /*addrl*/,
709 int /*nlwidth*/,
710 int /*x1*/,
711 int /*y1*/,
712 int /*len*/
714 /* cfbigblt8.c */
716 extern void cfbImageGlyphBlt8(
717 DrawablePtr /*pDrawable*/,
718 GCPtr /*pGC*/,
719 int /*x*/,
720 int /*y*/,
721 unsigned int /*nglyph*/,
722 CharInfoPtr * /*ppci*/,
723 pointer /*pglyphBase*/
725 /* cfbimage.c */
727 extern void cfbPutImage(
728 DrawablePtr /*pDraw*/,
729 GCPtr /*pGC*/,
730 int /*depth*/,
731 int /*x*/,
732 int /*y*/,
733 int /*w*/,
734 int /*h*/,
735 int /*leftPad*/,
736 int /*format*/,
737 char * /*pImage*/
740 extern void cfbGetImage(
741 DrawablePtr /*pDrawable*/,
742 int /*sx*/,
743 int /*sy*/,
744 int /*w*/,
745 int /*h*/,
746 unsigned int /*format*/,
747 unsigned long /*planeMask*/,
748 char * /*pdstLine*/
750 /* cfbline.c */
752 extern void cfbLineSS(
753 DrawablePtr /*pDrawable*/,
754 GCPtr /*pGC*/,
755 int /*mode*/,
756 int /*npt*/,
757 DDXPointPtr /*pptInit*/
760 extern void cfbLineSD(
761 DrawablePtr /*pDrawable*/,
762 GCPtr /*pGC*/,
763 int /*mode*/,
764 int /*npt*/,
765 DDXPointPtr /*pptInit*/
767 /* cfbmskbits.c */
768 /* cfbpixmap.c */
770 extern PixmapPtr cfbCreatePixmap(
771 ScreenPtr /*pScreen*/,
772 int /*width*/,
773 int /*height*/,
774 int /*depth*/
777 extern Bool cfbDestroyPixmap(
778 PixmapPtr /*pPixmap*/
781 extern PixmapPtr cfbCopyPixmap(
782 PixmapPtr /*pSrc*/
785 extern void cfbPadPixmap(
786 PixmapPtr /*pPixmap*/
789 extern void cfbXRotatePixmap(
790 PixmapPtr /*pPix*/,
791 int /*rw*/
794 extern void cfbYRotatePixmap(
795 PixmapPtr /*pPix*/,
796 int /*rh*/
799 extern void cfbCopyRotatePixmap(
800 PixmapPtr /*psrcPix*/,
801 PixmapPtr * /*ppdstPix*/,
802 int /*xrot*/,
803 int /*yrot*/
805 /* cfbply1rctC.c */
807 extern void cfbFillPoly1RectCopy(
808 DrawablePtr /*pDrawable*/,
809 GCPtr /*pGC*/,
810 int /*shape*/,
811 int /*mode*/,
812 int /*count*/,
813 DDXPointPtr /*ptsIn*/
815 /* cfbply1rctG.c */
817 extern void cfbFillPoly1RectGeneral(
818 DrawablePtr /*pDrawable*/,
819 GCPtr /*pGC*/,
820 int /*shape*/,
821 int /*mode*/,
822 int /*count*/,
823 DDXPointPtr /*ptsIn*/
825 /* cfbpntwin.c */
827 extern void cfbPaintWindow(
828 WindowPtr /*pWin*/,
829 RegionPtr /*pRegion*/,
830 int /*what*/
833 extern void cfbFillBoxSolid(
834 DrawablePtr /*pDrawable*/,
835 int /*nBox*/,
836 BoxPtr /*pBox*/,
837 unsigned long /*pixel*/
840 extern void cfbFillBoxTile32(
841 DrawablePtr /*pDrawable*/,
842 int /*nBox*/,
843 BoxPtr /*pBox*/,
844 PixmapPtr /*tile*/
846 /* cfbpolypnt.c */
848 extern void cfbPolyPoint(
849 DrawablePtr /*pDrawable*/,
850 GCPtr /*pGC*/,
851 int /*mode*/,
852 int /*npt*/,
853 xPoint * /*pptInit*/
855 /* cfbpush8.c */
857 #ifndef CFB_PROTOTYPES_ONLY
858 extern void cfbPushPixels8(
859 GCPtr /*pGC*/,
860 PixmapPtr /*pBitmap*/,
861 DrawablePtr /*pDrawable*/,
862 int /*dx*/,
863 int /*dy*/,
864 int /*xOrg*/,
865 int /*yOrg*/
867 /* cfbrctstp8.c */
869 extern void cfb8FillRectOpaqueStippled32(
870 DrawablePtr /*pDrawable*/,
871 GCPtr /*pGC*/,
872 int /*nBox*/,
873 BoxPtr /*pBox*/
876 extern void cfb8FillRectTransparentStippled32(
877 DrawablePtr /*pDrawable*/,
878 GCPtr /*pGC*/,
879 int /*nBox*/,
880 BoxPtr /*pBox*/
883 extern void cfb8FillRectStippledUnnatural(
884 DrawablePtr /*pDrawable*/,
885 GCPtr /*pGC*/,
886 int /*nBox*/,
887 BoxPtr /*pBox*/
889 #endif
890 /* cfbrrop.c */
892 extern int cfbReduceRasterOp(
893 int /*rop*/,
894 CfbBits /*fg*/,
895 CfbBits /*pm*/,
896 CfbBits * /*andp*/,
897 CfbBits * /*xorp*/
899 /* cfbscrinit.c */
901 extern Bool cfbCloseScreen(
902 int /*index*/,
903 ScreenPtr /*pScreen*/
906 extern Bool cfbSetupScreen(
907 ScreenPtr /*pScreen*/,
908 pointer /*pbits*/,
909 int /*xsize*/,
910 int /*ysize*/,
911 int /*dpix*/,
912 int /*dpiy*/,
913 int /*width*/
916 extern Bool cfbFinishScreenInit(
917 ScreenPtr /*pScreen*/,
918 pointer /*pbits*/,
919 int /*xsize*/,
920 int /*ysize*/,
921 int /*dpix*/,
922 int /*dpiy*/,
923 int /*width*/
926 extern Bool cfbScreenInit(
927 ScreenPtr /*pScreen*/,
928 pointer /*pbits*/,
929 int /*xsize*/,
930 int /*ysize*/,
931 int /*dpix*/,
932 int /*dpiy*/,
933 int /*width*/
936 extern PixmapPtr cfbGetScreenPixmap(
937 ScreenPtr /*pScreen*/
940 extern void cfbSetScreenPixmap(
941 PixmapPtr /*pPix*/
944 /* cfbseg.c */
946 extern void cfbSegmentSS(
947 DrawablePtr /*pDrawable*/,
948 GCPtr /*pGC*/,
949 int /*nseg*/,
950 xSegment * /*pSeg*/
953 extern void cfbSegmentSD(
954 DrawablePtr /*pDrawable*/,
955 GCPtr /*pGC*/,
956 int /*nseg*/,
957 xSegment * /*pSeg*/
959 /* cfbsetsp.c */
961 extern void cfbSetScanline(
962 int /*y*/,
963 int /*xOrigin*/,
964 int /*xStart*/,
965 int /*xEnd*/,
966 unsigned int * /*psrc*/,
967 int /*alu*/,
968 int * /*pdstBase*/,
969 int /*widthDst*/,
970 unsigned long /*planemask*/
973 extern void cfbSetSpans(
974 DrawablePtr /*pDrawable*/,
975 GCPtr /*pGC*/,
976 char * /*psrc*/,
977 DDXPointPtr /*ppt*/,
978 int * /*pwidth*/,
979 int /*nspans*/,
980 int /*fSorted*/
982 /* cfbsolidC.c */
984 extern void cfbFillRectSolidCopy(
985 DrawablePtr /*pDrawable*/,
986 GCPtr /*pGC*/,
987 int /*nBox*/,
988 BoxPtr /*pBox*/
991 extern void cfbSolidSpansCopy(
992 DrawablePtr /*pDrawable*/,
993 GCPtr /*pGC*/,
994 int /*nInit*/,
995 DDXPointPtr /*pptInit*/,
996 int * /*pwidthInit*/,
997 int /*fSorted*/
999 /* cfbsolidG.c */
1001 extern void cfbFillRectSolidGeneral(
1002 DrawablePtr /*pDrawable*/,
1003 GCPtr /*pGC*/,
1004 int /*nBox*/,
1005 BoxPtr /*pBox*/
1008 extern void cfbSolidSpansGeneral(
1009 DrawablePtr /*pDrawable*/,
1010 GCPtr /*pGC*/,
1011 int /*nInit*/,
1012 DDXPointPtr /*pptInit*/,
1013 int * /*pwidthInit*/,
1014 int /*fSorted*/
1016 /* cfbsolidX.c */
1018 extern void cfbFillRectSolidXor(
1019 DrawablePtr /*pDrawable*/,
1020 GCPtr /*pGC*/,
1021 int /*nBox*/,
1022 BoxPtr /*pBox*/
1025 extern void cfbSolidSpansXor(
1026 DrawablePtr /*pDrawable*/,
1027 GCPtr /*pGC*/,
1028 int /*nInit*/,
1029 DDXPointPtr /*pptInit*/,
1030 int * /*pwidthInit*/,
1031 int /*fSorted*/
1033 /* cfbteblt8.c */
1035 #ifndef CFB_PROTOTYPES_ONLY
1036 extern void cfbTEGlyphBlt8(
1037 DrawablePtr /*pDrawable*/,
1038 GCPtr/*pGC*/,
1039 int /*xInit*/,
1040 int /*yInit*/,
1041 unsigned int /*nglyph*/,
1042 CharInfoPtr * /*ppci*/,
1043 pointer /*pglyphBase*/
1045 #endif
1046 /* cfbtegblt.c */
1048 extern void cfbTEGlyphBlt(
1049 DrawablePtr /*pDrawable*/,
1050 GCPtr/*pGC*/,
1051 int /*x*/,
1052 int /*y*/,
1053 unsigned int /*nglyph*/,
1054 CharInfoPtr * /*ppci*/,
1055 pointer /*pglyphBase*/
1057 /* cfbtile32C.c */
1059 extern void cfbFillRectTile32Copy(
1060 DrawablePtr /*pDrawable*/,
1061 GCPtr /*pGC*/,
1062 int /*nBox*/,
1063 BoxPtr /*pBox*/
1066 extern void cfbTile32FSCopy(
1067 DrawablePtr /*pDrawable*/,
1068 GCPtr /*pGC*/,
1069 int /*nInit*/,
1070 DDXPointPtr /*pptInit*/,
1071 int * /*pwidthInit*/,
1072 int /*fSorted*/
1074 /* cfbtile32G.c */
1076 extern void cfbFillRectTile32General(
1077 DrawablePtr /*pDrawable*/,
1078 GCPtr /*pGC*/,
1079 int /*nBox*/,
1080 BoxPtr /*pBox*/
1083 extern void cfbTile32FSGeneral(
1084 DrawablePtr /*pDrawable*/,
1085 GCPtr /*pGC*/,
1086 int /*nInit*/,
1087 DDXPointPtr /*pptInit*/,
1088 int * /*pwidthInit*/,
1089 int /*fSorted*/
1091 /* cfbtileoddC.c */
1093 extern void cfbFillBoxTileOddCopy(
1094 DrawablePtr /*pDrawable*/,
1095 int /*nBox*/,
1096 BoxPtr /*pBox*/,
1097 PixmapPtr /*tile*/,
1098 int /*xrot*/,
1099 int /*yrot*/,
1100 int /*alu*/,
1101 unsigned long /*planemask*/
1104 extern void cfbFillSpanTileOddCopy(
1105 DrawablePtr /*pDrawable*/,
1106 int /*n*/,
1107 DDXPointPtr /*ppt*/,
1108 int * /*pwidth*/,
1109 PixmapPtr /*tile*/,
1110 int /*xrot*/,
1111 int /*yrot*/,
1112 int /*alu*/,
1113 unsigned long /*planemask*/
1116 extern void cfbFillBoxTile32sCopy(
1117 DrawablePtr /*pDrawable*/,
1118 int /*nBox*/,
1119 BoxPtr /*pBox*/,
1120 PixmapPtr /*tile*/,
1121 int /*xrot*/,
1122 int /*yrot*/,
1123 int /*alu*/,
1124 unsigned long /*planemask*/
1127 extern void cfbFillSpanTile32sCopy(
1128 DrawablePtr /*pDrawable*/,
1129 int /*n*/,
1130 DDXPointPtr /*ppt*/,
1131 int * /*pwidth*/,
1132 PixmapPtr /*tile*/,
1133 int /*xrot*/,
1134 int /*yrot*/,
1135 int /*alu*/,
1136 unsigned long /*planemask*/
1138 /* cfbtileoddG.c */
1140 extern void cfbFillBoxTileOddGeneral(
1141 DrawablePtr /*pDrawable*/,
1142 int /*nBox*/,
1143 BoxPtr /*pBox*/,
1144 PixmapPtr /*tile*/,
1145 int /*xrot*/,
1146 int /*yrot*/,
1147 int /*alu*/,
1148 unsigned long /*planemask*/
1151 extern void cfbFillSpanTileOddGeneral(
1152 DrawablePtr /*pDrawable*/,
1153 int /*n*/,
1154 DDXPointPtr /*ppt*/,
1155 int * /*pwidth*/,
1156 PixmapPtr /*tile*/,
1157 int /*xrot*/,
1158 int /*yrot*/,
1159 int /*alu*/,
1160 unsigned long /*planemask*/
1163 extern void cfbFillBoxTile32sGeneral(
1164 DrawablePtr /*pDrawable*/,
1165 int /*nBox*/,
1166 BoxPtr /*pBox*/,
1167 PixmapPtr /*tile*/,
1168 int /*xrot*/,
1169 int /*yrot*/,
1170 int /*alu*/,
1171 unsigned long /*planemask*/
1174 extern void cfbFillSpanTile32sGeneral(
1175 DrawablePtr /*pDrawable*/,
1176 int /*n*/,
1177 DDXPointPtr /*ppt*/,
1178 int * /*pwidth*/,
1179 PixmapPtr /*tile*/,
1180 int /*xrot*/,
1181 int /*yrot*/,
1182 int /*alu*/,
1183 unsigned long /*planemask*/
1185 /* cfbwindow.c */
1187 extern Bool cfbCreateWindow(
1188 WindowPtr /*pWin*/
1191 extern Bool cfbDestroyWindow(
1192 WindowPtr /*pWin*/
1195 extern Bool cfbMapWindow(
1196 WindowPtr /*pWindow*/
1199 extern Bool cfbPositionWindow(
1200 WindowPtr /*pWin*/,
1201 int /*x*/,
1202 int /*y*/
1205 extern Bool cfbUnmapWindow(
1206 WindowPtr /*pWindow*/
1209 extern void cfbCopyWindow(
1210 WindowPtr /*pWin*/,
1211 DDXPointRec /*ptOldOrg*/,
1212 RegionPtr /*prgnSrc*/
1215 extern Bool cfbChangeWindowAttributes(
1216 WindowPtr /*pWin*/,
1217 unsigned long /*mask*/
1219 /* cfbzerarcC.c */
1221 extern void cfbZeroPolyArcSS8Copy(
1222 DrawablePtr /*pDraw*/,
1223 GCPtr /*pGC*/,
1224 int /*narcs*/,
1225 xArc * /*parcs*/
1227 /* cfbzerarcG.c */
1229 extern void cfbZeroPolyArcSS8General(
1230 DrawablePtr /*pDraw*/,
1231 GCPtr /*pGC*/,
1232 int /*narcs*/,
1233 xArc * /*parcs*/
1235 /* cfbzerarcX.c */
1237 extern void cfbZeroPolyArcSS8Xor(
1238 DrawablePtr /*pDraw*/,
1239 GCPtr /*pGC*/,
1240 int /*narcs*/,
1241 xArc * /*parcs*/
1244 #if (!defined(SINGLEDEPTH) && PSZ != 8) || defined(FORCE_SEPARATE_PRIVATE)
1246 #define CFB_NEED_SCREEN_PRIVATE
1248 extern int cfbScreenPrivateIndex;
1249 #endif
1251 #ifndef CFB_PROTOTYPES_ONLY
1253 /* Common macros for extracting drawing information */
1255 #define cfbGetWindowPixmap(d) \
1256 ((* ((DrawablePtr)(d))->pScreen->GetWindowPixmap)((WindowPtr)(d)))
1258 #define cfbGetTypedWidth(pDrawable,wtype) (\
1259 (((pDrawable)->type != DRAWABLE_PIXMAP) ? \
1260 (int) (cfbGetWindowPixmap(pDrawable)->devKind) : \
1261 (int)(((PixmapPtr)pDrawable)->devKind)) / sizeof (wtype))
1263 #define cfbGetByteWidth(pDrawable) cfbGetTypedWidth(pDrawable, unsigned char)
1265 #define cfbGetPixelWidth(pDrawable) cfbGetTypedWidth(pDrawable, PixelType)
1267 #define cfbGetLongWidth(pDrawable) cfbGetTypedWidth(pDrawable, CfbBits)
1269 #define cfbGetTypedWidthAndPointer(pDrawable, width, pointer, wtype, ptype) {\
1270 PixmapPtr _pPix; \
1271 if ((pDrawable)->type != DRAWABLE_PIXMAP) \
1272 _pPix = cfbGetWindowPixmap(pDrawable); \
1273 else \
1274 _pPix = (PixmapPtr) (pDrawable); \
1275 (pointer) = (ptype *) _pPix->devPrivate.ptr; \
1276 (width) = ((int) _pPix->devKind) / sizeof (wtype); \
1279 #define cfbGetByteWidthAndPointer(pDrawable, width, pointer) \
1280 cfbGetTypedWidthAndPointer(pDrawable, width, pointer, unsigned char, unsigned char)
1282 #define cfbGetLongWidthAndPointer(pDrawable, width, pointer) \
1283 cfbGetTypedWidthAndPointer(pDrawable, width, pointer, CfbBits, CfbBits)
1285 #define cfbGetPixelWidthAndPointer(pDrawable, width, pointer) \
1286 cfbGetTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
1288 #define cfbGetWindowTypedWidthAndPointer(pWin, width, pointer, wtype, ptype) {\
1289 PixmapPtr _pPix = cfbGetWindowPixmap((DrawablePtr) (pWin)); \
1290 (pointer) = (ptype *) _pPix->devPrivate.ptr; \
1291 (width) = ((int) _pPix->devKind) / sizeof (wtype); \
1294 #define cfbGetWindowLongWidthAndPointer(pWin, width, pointer) \
1295 cfbGetWindowTypedWidthAndPointer(pWin, width, pointer, CfbBits, CfbBits)
1297 #define cfbGetWindowByteWidthAndPointer(pWin, width, pointer) \
1298 cfbGetWindowTypedWidthAndPointer(pWin, width, pointer, unsigned char, unsigned char)
1300 #define cfbGetWindowPixelWidthAndPointer(pDrawable, width, pointer) \
1301 cfbGetWindowTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
1304 * XFree86 empties the root BorderClip when the VT is inactive,
1305 * here's a macro which uses that to disable GetImage and GetSpans
1307 #define cfbWindowEnabled(pWin) \
1308 REGION_NOTEMPTY((pWin)->drawable.pScreen, \
1309 &WindowTable[(pWin)->drawable.pScreen->myNum]->borderClip)
1311 #define cfbDrawableEnabled(pDrawable) \
1312 ((pDrawable)->type == DRAWABLE_PIXMAP ? \
1313 TRUE : cfbWindowEnabled((WindowPtr) pDrawable))
1315 #include "micoord.h"
1317 #endif /* !CFB_PROTOTYPES_ONLY */
1319 #endif