3 #define ROP4_BLACKNESS ((((0x00000042) >> 8) & 0xff00) | (((0x00000042) >> 16) & 0x00ff))
4 #define ROP4_NOTSRCERASE ((((0x001100A6) >> 8) & 0xff00) | (((0x001100A6) >> 16) & 0x00ff))
5 #define ROP4_NOTSRCCOPY ((((0x00330008) >> 8) & 0xff00) | (((0x00330008) >> 16) & 0x00ff))
6 #define ROP4_SRCERASE ((((0x00440328) >> 8) & 0xff00) | (((0x00440328) >> 16) & 0x00ff))
7 #define ROP4_DSTINVERT ((((0x00550009) >> 8) & 0xff00) | (((0x00550009) >> 16) & 0x00ff))
8 #define ROP4_PATINVERT ((((0x005A0049) >> 8) & 0xff00) | (((0x005A0049) >> 16) & 0x00ff))
9 #define ROP4_SRCINVERT ((((0x00660046) >> 8) & 0xff00) | (((0x00660046) >> 16) & 0x00ff))
10 #define ROP4_SRCAND ((((0x008800C6) >> 8) & 0xff00) | (((0x008800C6) >> 16) & 0x00ff))
11 #define ROP4_MERGEPAINT ((((0x00BB0226) >> 8) & 0xff00) | (((0x00BB0226) >> 16) & 0x00ff))
12 #define ROP4_MERGECOPY ((((0x00C000CA) >> 8) & 0xff00) | (((0x00C000CA) >> 16) & 0x00ff))
13 #define ROP4_SRCCOPY ((((0x00CC0020) >> 8) & 0xff00) | (((0x00CC0020) >> 16) & 0x00ff))
14 #define ROP4_SRCPAINT ((((0x00EE0086) >> 8) & 0xff00) | (((0x00EE0086) >> 16) & 0x00ff))
15 #define ROP4_PATCOPY ((((0x00F00021) >> 8) & 0xff00) | (((0x00F00021) >> 16) & 0x00ff))
16 #define ROP4_PATPAINT ((((0x00FB0A09) >> 8) & 0xff00) | (((0x00FB0A09) >> 16) & 0x00ff))
17 #define ROP4_WHITENESS ((((0x00FF0062) >> 8) & 0xff00) | (((0x00FF0062) >> 16) & 0x00ff))
20 typedef struct _BLTINFO
23 SURFOBJ
*SourceSurface
;
24 SURFOBJ
*PatternSurface
;
25 XLATEOBJ
*XlateSourceToDest
;
33 typedef VOID (*PFN_DIB_PutPixel
)(SURFOBJ
*,LONG
,LONG
,ULONG
);
34 typedef ULONG (*PFN_DIB_GetPixel
)(SURFOBJ
*,LONG
,LONG
);
35 typedef VOID (*PFN_DIB_HLine
)(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
36 typedef VOID (*PFN_DIB_VLine
)(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
37 typedef BOOLEAN (*PFN_DIB_BitBlt
)(PBLTINFO
);
38 typedef BOOLEAN (*PFN_DIB_StretchBlt
)(SURFOBJ
*,SURFOBJ
*,SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,POINTL
*,BRUSHOBJ
*,POINTL
*,XLATEOBJ
*,ROP4
);
39 typedef BOOLEAN (*PFN_DIB_TransparentBlt
)(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
40 typedef BOOLEAN (*PFN_DIB_ColorFill
)(SURFOBJ
*, RECTL
*, ULONG
);
41 typedef BOOLEAN (*PFN_DIB_AlphaBlend
)(SURFOBJ
*, SURFOBJ
*, RECTL
*, RECTL
*, CLIPOBJ
*, XLATEOBJ
*, BLENDOBJ
*);
45 PFN_DIB_PutPixel DIB_PutPixel
;
46 PFN_DIB_GetPixel DIB_GetPixel
;
47 PFN_DIB_HLine DIB_HLine
;
48 PFN_DIB_VLine DIB_VLine
;
49 PFN_DIB_BitBlt DIB_BitBlt
;
50 PFN_DIB_BitBlt DIB_BitBltSrcCopy
;
51 PFN_DIB_StretchBlt DIB_StretchBlt
;
52 PFN_DIB_TransparentBlt DIB_TransparentBlt
;
53 PFN_DIB_ColorFill DIB_ColorFill
;
54 PFN_DIB_AlphaBlend DIB_AlphaBlend
;
57 extern DIB_FUNCTIONS DibFunctionsForBitmapFormat
[];
59 VOID
Dummy_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
60 ULONG
Dummy_GetPixel(SURFOBJ
*,LONG
,LONG
);
61 VOID
Dummy_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
62 VOID
Dummy_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
63 BOOLEAN
Dummy_BitBlt(PBLTINFO
);
64 BOOLEAN
Dummy_StretchBlt(SURFOBJ
*,SURFOBJ
*,SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,POINTL
*,BRUSHOBJ
*,POINTL
*,XLATEOBJ
*,ROP4
);
65 BOOLEAN
Dummy_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
66 BOOLEAN
Dummy_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
67 BOOLEAN
Dummy_AlphaBlend(SURFOBJ
*, SURFOBJ
*, RECTL
*, RECTL
*, CLIPOBJ
*, XLATEOBJ
*, BLENDOBJ
*);
69 VOID
DIB_1BPP_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
70 ULONG
DIB_1BPP_GetPixel(SURFOBJ
*,LONG
,LONG
);
71 VOID
DIB_1BPP_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
72 VOID
DIB_1BPP_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
73 BOOLEAN
DIB_1BPP_BitBlt(PBLTINFO
);
74 BOOLEAN
DIB_1BPP_BitBltSrcCopy(PBLTINFO
);
75 BOOLEAN
DIB_1BPP_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
76 BOOLEAN
DIB_1BPP_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
78 VOID
DIB_4BPP_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
79 ULONG
DIB_4BPP_GetPixel(SURFOBJ
*,LONG
,LONG
);
80 VOID
DIB_4BPP_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
81 VOID
DIB_4BPP_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
82 BOOLEAN
DIB_4BPP_BitBlt(PBLTINFO
);
83 BOOLEAN
DIB_4BPP_BitBltSrcCopy(PBLTINFO
);
84 BOOLEAN
DIB_4BPP_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
85 BOOLEAN
DIB_4BPP_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
87 VOID
DIB_8BPP_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
88 ULONG
DIB_8BPP_GetPixel(SURFOBJ
*,LONG
,LONG
);
89 VOID
DIB_8BPP_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
90 VOID
DIB_8BPP_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
91 BOOLEAN
DIB_8BPP_BitBlt(PBLTINFO
);
92 BOOLEAN
DIB_8BPP_BitBltSrcCopy(PBLTINFO
);
93 BOOLEAN
DIB_8BPP_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
94 BOOLEAN
DIB_8BPP_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
96 VOID
DIB_16BPP_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
97 ULONG
DIB_16BPP_GetPixel(SURFOBJ
*,LONG
,LONG
);
98 VOID
DIB_16BPP_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
99 VOID
DIB_16BPP_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
100 BOOLEAN
DIB_16BPP_BitBlt(PBLTINFO
);
101 BOOLEAN
DIB_16BPP_BitBltSrcCopy(PBLTINFO
);
102 BOOLEAN
DIB_16BPP_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
103 BOOLEAN
DIB_16BPP_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
104 BOOLEAN
DIB_16BPP_AlphaBlend(SURFOBJ
*, SURFOBJ
*, RECTL
*, RECTL
*, CLIPOBJ
*, XLATEOBJ
*, BLENDOBJ
*);
106 VOID
DIB_24BPP_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
107 ULONG
DIB_24BPP_GetPixel(SURFOBJ
*,LONG
,LONG
);
108 VOID
DIB_24BPP_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
109 VOID
DIB_24BPP_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
110 BOOLEAN
DIB_24BPP_BitBlt(PBLTINFO
);
111 BOOLEAN
DIB_24BPP_BitBltSrcCopy(PBLTINFO
);
112 BOOLEAN
DIB_24BPP_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
113 BOOLEAN
DIB_24BPP_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
114 BOOLEAN
DIB_24BPP_AlphaBlend(SURFOBJ
*, SURFOBJ
*, RECTL
*, RECTL
*, CLIPOBJ
*, XLATEOBJ
*, BLENDOBJ
*);
116 VOID
DIB_32BPP_PutPixel(SURFOBJ
*,LONG
,LONG
,ULONG
);
117 ULONG
DIB_32BPP_GetPixel(SURFOBJ
*,LONG
,LONG
);
118 VOID
DIB_32BPP_HLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
119 VOID
DIB_32BPP_VLine(SURFOBJ
*,LONG
,LONG
,LONG
,ULONG
);
120 BOOLEAN
DIB_32BPP_BitBlt(PBLTINFO
);
121 BOOLEAN
DIB_32BPP_BitBltSrcCopy(PBLTINFO
);
122 BOOLEAN
DIB_32BPP_TransparentBlt(SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,XLATEOBJ
*,ULONG
);
123 BOOLEAN
DIB_32BPP_ColorFill(SURFOBJ
*, RECTL
*, ULONG
);
124 BOOLEAN
DIB_32BPP_AlphaBlend(SURFOBJ
*, SURFOBJ
*, RECTL
*, RECTL
*, CLIPOBJ
*, XLATEOBJ
*, BLENDOBJ
*);
126 BOOLEAN
DIB_XXBPP_StretchBlt(SURFOBJ
*,SURFOBJ
*,SURFOBJ
*,SURFOBJ
*,RECTL
*,RECTL
*,POINTL
*,BRUSHOBJ
*,POINTL
*,XLATEOBJ
*,ROP4
);
127 BOOLEAN
DIB_XXBPP_FloodFillSolid(SURFOBJ
*, BRUSHOBJ
*, RECTL
*, POINTL
*, ULONG
, UINT
);
128 BOOLEAN
DIB_XXBPP_AlphaBlend(SURFOBJ
*, SURFOBJ
*, RECTL
*, RECTL
*, CLIPOBJ
*, XLATEOBJ
*, BLENDOBJ
*);
130 extern unsigned char notmask
[2];
131 extern unsigned char altnotmask
[2];
132 #define MASK1BPP(x) (1<<(7-((x)&7)))
134 ULONG
DIB_DoRop(ULONG Rop
, ULONG Dest
, ULONG Source
, ULONG Pattern
);
136 #define DIB_GetSource(SourceSurf,sx,sy,ColorTranslation) \
137 XLATEOBJ_iXlate(ColorTranslation, \
138 DibFunctionsForBitmapFormat[SourceSurf->iBitmapFormat]. \
139 DIB_GetPixel(SourceSurf, sx, sy))
141 #define DIB_GetSourceIndex(SourceSurf,sx,sy) \
142 DibFunctionsForBitmapFormat[SourceSurf->iBitmapFormat]. \
143 DIB_GetPixel(SourceSurf, sx, sy)