ReactOS 0.4.15-dev-5667-ged97270
DibLib.c
Go to the documentation of this file.
1
2#include "DibLib.h"
3
4/*
5 * M D S P Generic function
6 * -----------------------
7 * 0 0 0 0 -> BLACKNESS, WHITENESS
8 * 0 0 0 1 -> PATCOPY, NOTPATCOPY
9 * 0 0 1 0 -> SRCCOPY, NOTSRCCOPY
10 * 0 0 1 1 SrcPatBlt
11 * 0 1 0 0 -> NOOP, DESTINVERT
12 * 0 1 0 1 PatPaint
13 * 0 1 1 0 SrcPaint
14 * 0 1 1 1 BitBlt
15 * 1 0 0 0 MaskCopy, -> SRCCOPY / SRCINVERT using Mask als source
16 * 1 0 0 1 MaskPatBlt
17 * 1 0 1 0 MaskSrcBlt
18 * 1 0 1 1 MaskSrcPatBlt
19 * 1 1 0 0 MaskPaint
20 * 1 1 0 1 MaskPatPaint
21 * 1 1 1 0 MaskSrcPaint
22 * 1 1 1 1 MaskBlt
23 */
24
25
26const BYTE ajShift4[2] = {4, 0};
27
28enum
29{
51};
52
55{
77};
78
79const UCHAR
81{
82 INDEX_BitBlt_BLACKNESS, // BLACKNESS
83 INDEX_BitBlt, // DPSoon,
84 INDEX_BitBlt, // DPSona,
85 INDEX_SrcPatBlt, // PSon,
86 INDEX_BitBlt, // SDPona,
87 INDEX_PatPaint, // DPon,
88 INDEX_BitBlt, // PDSxnon,
89 INDEX_BitBlt, // PDSaon,
90 INDEX_BitBlt, // SDPnaa,
91 INDEX_BitBlt, // PDSxon,
92 INDEX_PatPaint, // DPna,
93 INDEX_BitBlt, // PSDnaon,
94 INDEX_SrcPatBlt, // SPna,
95 INDEX_BitBlt, // PDSnaon,
96 INDEX_BitBlt, // PDSonon,
98 INDEX_BitBlt, // PDSona,
99 INDEX_BitBlt_NOTSRCERASE, // DSon / NOTSRCERASE
100 INDEX_BitBlt, // SDPxnon,
101 INDEX_BitBlt, // SDPaon,
102 INDEX_BitBlt, // DPSxnon,
103 INDEX_BitBlt, // DPSaon,
104 INDEX_BitBlt, // PSDPSanaxx,
105 INDEX_BitBlt, // SSPxDSxaxn,
106 INDEX_BitBlt, // SPxPDxa,
107 INDEX_BitBlt, // SDPSanaxn,
108 INDEX_BitBlt, // PDSPaox,
109 INDEX_BitBlt, // SDPSxaxn,
110 INDEX_BitBlt, // PSDPaox,
111 INDEX_BitBlt, // DSPDxaxn,
112 INDEX_BitBlt, // PDSox,
113 INDEX_BitBlt, // PDSoan,
114 INDEX_BitBlt, // DPSnaa,
115 INDEX_BitBlt, // SDPxon,
116 INDEX_SrcPaint, // DSna,
117 INDEX_BitBlt, // SPDnaon,
118 INDEX_BitBlt, // SPxDSxa,
119 INDEX_BitBlt, // PDSPanaxn,
120 INDEX_BitBlt, // SDPSaox,
121 INDEX_BitBlt, // SDPSxnox,
122 INDEX_BitBlt, // DPSxa,
123 INDEX_BitBlt, // PSDPSaoxxn,
124 INDEX_BitBlt, // DPSana,
125 INDEX_BitBlt, // SSPxPDxaxn,
126 INDEX_BitBlt, // SPDSoax,
127 INDEX_BitBlt, // PSDnox,
128 INDEX_BitBlt, // PSDPxox,
129 INDEX_BitBlt, // PSDnoan,
130 INDEX_SrcPatBlt, // PSna,
131 INDEX_BitBlt, // SDPnaon,
132 INDEX_BitBlt, // SDPSoox,
133 INDEX_BitBlt_NOTSRCCOPY, // Sn / NOTSRCCOPY
134 INDEX_BitBlt, // SPDSaox,
135 INDEX_BitBlt, // SPDSxnox,
136 INDEX_BitBlt, // SDPox,
137 INDEX_BitBlt, // SDPoan,
138 INDEX_BitBlt, // PSDPoax,
139 INDEX_BitBlt, // SPDnox,
140 INDEX_BitBlt, // SPDSxox,
141 INDEX_BitBlt, // SPDnoan,
142 INDEX_SrcPatBlt, // PSx,
143 INDEX_BitBlt, // SPDSonox,
144 INDEX_BitBlt, // SPDSnaox,
145 INDEX_SrcPatBlt, // PSan,
146 INDEX_BitBlt, // PSDnaa,
147 INDEX_BitBlt, // DPSxon,
148 INDEX_BitBlt, // SDxPDxa,
149 INDEX_BitBlt, // SPDSanaxn,
150 INDEX_BitBlt_SRCERASE, // SDna / SRCERASE
151 INDEX_BitBlt, // DPSnaon,
152 INDEX_BitBlt, // DSPDaox,
153 INDEX_BitBlt, // PSDPxaxn,
154 INDEX_BitBlt, // SDPxa,
155 INDEX_BitBlt, // PDSPDaoxxn,
156 INDEX_BitBlt, // DPSDoax,
157 INDEX_BitBlt, // PDSnox,
158 INDEX_BitBlt, // SDPana,
159 INDEX_BitBlt, // SSPxDSxoxn,
160 INDEX_BitBlt, // PDSPxox,
161 INDEX_BitBlt, // PDSnoan,
162 INDEX_PatPaint, // PDna,
163 INDEX_BitBlt, // DSPnaon,
164 INDEX_BitBlt, // DPSDaox,
165 INDEX_BitBlt, // SPDSxaxn,
166 INDEX_BitBlt, // DPSonon,
167 INDEX_BitBlt_DSTINVERT, // Dn / DSTINVERT
168 INDEX_BitBlt, // DPSox,
169 INDEX_BitBlt, // DPSoan,
170 INDEX_BitBlt, // PDSPoax,
171 INDEX_BitBlt, // DPSnox,
172 INDEX_BitBlt_PATINVERT, // DPx / PATINVERT
173 INDEX_BitBlt, // DPSDonox,
174 INDEX_BitBlt, // DPSDxox,
175 INDEX_BitBlt, // DPSnoan,
176 INDEX_BitBlt, // DPSDnaox,
177 INDEX_PatPaint, // DPan,
178 INDEX_BitBlt, // PDSxa,
179 INDEX_BitBlt, // DSPDSaoxxn,
180 INDEX_BitBlt, // DSPDoax,
181 INDEX_BitBlt, // SDPnox,
182 INDEX_BitBlt, // SDPSoax,
183 INDEX_BitBlt, // DSPnox,
184 INDEX_BitBlt_SRCINVERT, // DSx / SRCINVERT
185 INDEX_BitBlt, // SDPSonox,
186 INDEX_BitBlt, // DSPDSonoxxn,
187 INDEX_BitBlt, // PDSxxn,
188 INDEX_BitBlt, // DPSax,
189 INDEX_BitBlt, // PSDPSoaxxn,
190 INDEX_BitBlt, // SDPax,
191 INDEX_BitBlt, // PDSPDoaxxn,
192 INDEX_BitBlt, // SDPSnoax,
193 INDEX_BitBlt, // PDSxnan,
194 INDEX_BitBlt, // PDSana,
195 INDEX_BitBlt, // SSDxPDxaxn,
196 INDEX_BitBlt, // SDPSxox,
197 INDEX_BitBlt, // SDPnoan,
198 INDEX_BitBlt, // DSPDxox,
199 INDEX_BitBlt, // DSPnoan,
200 INDEX_BitBlt, // SDPSnaox,
201 INDEX_SrcPaint, // DSan,
202 INDEX_BitBlt, // PDSax,
203 INDEX_BitBlt, // DSPDSoaxxn,
204 INDEX_BitBlt, // DPSDnoax,
205 INDEX_BitBlt, // SDPxnan,
206 INDEX_BitBlt, // SPDSnoax,
207 INDEX_BitBlt, // DPSxnan,
208 INDEX_BitBlt, // SPxDSxo,
209 INDEX_BitBlt, // DPSaan,
210 INDEX_BitBlt, // DPSaa,
211 INDEX_BitBlt, // SPxDSxon,
212 INDEX_BitBlt, // DPSxna,
213 INDEX_BitBlt, // SPDSnoaxn,
214 INDEX_BitBlt, // SDPxna,
215 INDEX_BitBlt, // PDSPnoaxn,
216 INDEX_BitBlt, // DSPDSoaxx,
217 INDEX_BitBlt, // PDSaxn,
218 INDEX_BitBlt_SRCAND, // DSa / SRCAND
219 INDEX_BitBlt, // SDPSnaoxn,
220 INDEX_BitBlt, // DSPnoa,
221 INDEX_BitBlt, // DSPDxoxn,
222 INDEX_BitBlt, // SDPnoa,
223 INDEX_BitBlt, // SDPSxoxn,
224 INDEX_BitBlt, // SSDxPDxax,
225 INDEX_BitBlt, // PDSanan,
226 INDEX_BitBlt, // PDSxna,
227 INDEX_BitBlt, // SDPSnoaxn,
228 INDEX_BitBlt, // DPSDPoaxx,
229 INDEX_BitBlt, // SPDaxn,
230 INDEX_BitBlt, // PSDPSoaxx,
231 INDEX_BitBlt, // DPSaxn,
232 INDEX_BitBlt, // DPSxx,
233 INDEX_BitBlt, // PSDPSonoxx,
234 INDEX_BitBlt, // SDPSonoxn,
235 INDEX_SrcPaint, // DSxn,
236 INDEX_BitBlt, // DPSnax,
237 INDEX_BitBlt, // SDPSoaxn,
238 INDEX_BitBlt, // SPDnax,
239 INDEX_BitBlt, // DSPDoaxn,
240 INDEX_BitBlt, // DSPDSaoxx,
241 INDEX_BitBlt, // PDSxan,
242 INDEX_PatPaint, // DPa,
243 INDEX_BitBlt, // PDSPnaoxn,
244 INDEX_BitBlt, // DPSnoa,
245 INDEX_BitBlt, // DPSDxoxn,
246 INDEX_BitBlt, // PDSPonoxn,
247 INDEX_PatPaint, // PDxn,
248 INDEX_BitBlt, // DSPnax,
249 INDEX_BitBlt, // PDSPoaxn,
250 INDEX_BitBlt, // DPSoa,
251 INDEX_BitBlt, // DPSoxn,
252 INDEX_BitBlt_NOOP, // D,
253 INDEX_BitBlt, // DPSono,
254 INDEX_BitBlt, // SPDSxax,
255 INDEX_BitBlt, // DPSDaoxn,
256 INDEX_BitBlt, // DSPnao,
257 INDEX_PatPaint, // DPno,
258 INDEX_BitBlt, // PDSnoa,
259 INDEX_BitBlt, // PDSPxoxn,
260 INDEX_BitBlt, // SSPxDSxox,
261 INDEX_BitBlt, // SDPanan,
262 INDEX_BitBlt, // PSDnax,
263 INDEX_BitBlt, // DPSDoaxn,
264 INDEX_BitBlt, // DPSDPaoxx,
265 INDEX_BitBlt, // SDPxan,
266 INDEX_BitBlt, // PSDPxax,
267 INDEX_BitBlt, // DSPDaoxn,
268 INDEX_BitBlt, // DPSnao,
269 INDEX_BitBlt_MERGEPAINT, // DSno / MERGEPAINT
270 INDEX_BitBlt, // SPDSanax,
271 INDEX_BitBlt, // SDxPDxan,
272 INDEX_BitBlt, // DPSxo,
273 INDEX_BitBlt, // DPSano,
274 INDEX_BitBlt_MERGECOPY, // PSa / MERGECOPY
275 INDEX_BitBlt, // SPDSnaoxn,
276 INDEX_BitBlt, // SPDSonoxn,
277 INDEX_SrcPatBlt, // PSxn,
278 INDEX_BitBlt, // SPDnoa,
279 INDEX_BitBlt, // SPDSxoxn,
280 INDEX_BitBlt, // SDPnax,
281 INDEX_BitBlt, // PSDPoaxn,
282 INDEX_BitBlt, // SDPoa,
283 INDEX_BitBlt, // SPDoxn,
284 INDEX_BitBlt, // DPSDxax,
285 INDEX_BitBlt, // SPDSaoxn,
286 INDEX_BitBlt_SRCCOPY, // S / SRCCOPY
287 INDEX_BitBlt, // SDPono,
288 INDEX_BitBlt, // SDPnao,
289 INDEX_SrcPatBlt, // SPno,
290 INDEX_BitBlt, // PSDnoa,
291 INDEX_BitBlt, // PSDPxoxn,
292 INDEX_BitBlt, // PDSnax,
293 INDEX_BitBlt, // SPDSoaxn,
294 INDEX_BitBlt, // SSPxPDxax,
295 INDEX_BitBlt, // DPSanan,
296 INDEX_BitBlt, // PSDPSaoxx,
297 INDEX_BitBlt, // DPSxan,
298 INDEX_BitBlt, // PDSPxax,
299 INDEX_BitBlt, // SDPSaoxn,
300 INDEX_BitBlt, // DPSDanax,
301 INDEX_BitBlt, // SPxDSxan,
302 INDEX_BitBlt, // SPDnao,
303 INDEX_SrcPaint, // SDno,
304 INDEX_BitBlt, // SDPxo,
305 INDEX_BitBlt, // SDPano,
306 INDEX_BitBlt, // PDSoa,
307 INDEX_BitBlt, // PDSoxn,
308 INDEX_BitBlt, // DSPDxax,
309 INDEX_BitBlt, // PSDPaoxn,
310 INDEX_BitBlt, // SDPSxax,
311 INDEX_BitBlt, // PDSPaoxn,
312 INDEX_BitBlt, // SDPSanax,
313 INDEX_BitBlt, // SPxPDxan,
314 INDEX_BitBlt, // SSPxDSxax,
315 INDEX_BitBlt, // DSPDSanaxxn,
316 INDEX_BitBlt, // DPSao,
317 INDEX_BitBlt, // DPSxno,
318 INDEX_BitBlt, // SDPao,
319 INDEX_BitBlt, // SDPxno,
320 INDEX_BitBlt_SRCPAINT, // DSo / SRCPAINT
321 INDEX_BitBlt, // SDPnoo,
322 INDEX_BitBlt_PATCOPY, // P / PATCOPY
323 INDEX_BitBlt, // PDSono,
324 INDEX_BitBlt, // PDSnao,
325 INDEX_SrcPatBlt, // PSno,
326 INDEX_BitBlt, // PSDnao,
327 INDEX_PatPaint, // PDno,
328 INDEX_BitBlt, // PDSxo,
329 INDEX_BitBlt, // PDSano,
330 INDEX_BitBlt, // PDSao,
331 INDEX_BitBlt, // PDSxno,
332 INDEX_PatPaint, // DPo,
333 INDEX_BitBlt_PATPAINT, // DPSnoo, // PATPAINT
334 INDEX_SrcPatBlt, // PSo,
335 INDEX_BitBlt, // PSDnoo,
336 INDEX_BitBlt, // DPSoo,
337 INDEX_BitBlt_WHITENESS //WHITENESS
338};
339
340const PFN_DIBFUNCTION
342{
351};
VOID FASTCALL Dib_BitBlt(PBLTDATA pBltData)
Definition: BitBlt.c:22
VOID FASTCALL Dib_BitBlt_DSTINVERT(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_MERGECOPY(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_MERGEPAINT(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_NOTPATCOPY(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_NOTSRCCOPY(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_NOTSRCERASE(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_PATCOPY(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_PATINVERT(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_PATPAINT(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_SRCAND(PBLTDATA pBltData)
Definition: BitBlt_SRCAND.c:17
VOID FASTCALL Dib_BitBlt_SRCCOPY(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_SRCERASE(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_SRCINVERT(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_SRCPAINT(PBLTDATA pBltData)
VOID FASTCALL Dib_BitBlt_NOOP(PBLTDATA pBltData)
Definition: BitBlt_other.c:26
VOID FASTCALL Dib_BitBlt_BLACKNESS(PBLTDATA pBltData)
Definition: BitBlt_other.c:8
VOID FASTCALL Dib_BitBlt_WHITENESS(PBLTDATA pBltData)
Definition: BitBlt_other.c:17
const UCHAR gajIndexPerRop[256]
Definition: DibLib.c:80
@ INDEX_BitBlt_PATINVERT
Definition: DibLib.c:40
@ INDEX_BitBlt_BLACKNESS
Definition: DibLib.c:32
@ INDEX_BitBlt_PATCOPY
Definition: DibLib.c:34
@ INDEX_BitBlt_MERGEPAINT
Definition: DibLib.c:43
@ INDEX_BitBlt_SRCPAINT
Definition: DibLib.c:45
@ INDEX_BitBlt_WHITENESS
Definition: DibLib.c:33
@ INDEX_BitBlt_MERGECOPY
Definition: DibLib.c:44
@ INDEX_BitBlt
Definition: DibLib.c:50
@ INDEX_BitBlt_DSTINVERT
Definition: DibLib.c:31
@ INDEX_SrcPatBlt
Definition: DibLib.c:47
@ INDEX_BitBlt_SRCAND
Definition: DibLib.c:42
@ INDEX_BitBlt_PATPAINT
Definition: DibLib.c:46
@ INDEX_BitBlt_NOTSRCERASE
Definition: DibLib.c:39
@ INDEX_BitBlt_NOOP
Definition: DibLib.c:30
@ INDEX_BitBlt_SRCCOPY
Definition: DibLib.c:36
@ INDEX_BitBlt_NOTSRCCOPY
Definition: DibLib.c:37
@ INDEX_PatPaint
Definition: DibLib.c:48
@ INDEX_BitBlt_NOTPATCOPY
Definition: DibLib.c:35
@ INDEX_BitBlt_SRCINVERT
Definition: DibLib.c:41
@ INDEX_SrcPaint
Definition: DibLib.c:49
@ INDEX_BitBlt_SRCERASE
Definition: DibLib.c:38
const BYTE ajShift4[2]
Definition: DibLib.c:26
const PFN_DIBFUNCTION gapfnMaskFunction[8]
Definition: DibLib.c:341
const PFN_DIBFUNCTION gapfnDibFunction[]
Definition: DibLib.c:54
VOID FASTCALL Dib_MaskSrcBlt(PBLTDATA pBltData)
Definition: MaskSrcBlt.c:17
VOID FASTCALL Dib_MaskSrcPatBlt(PBLTDATA pBltData)
Definition: MaskSrcPatBlt.c:22
VOID(FASTCALL * PFN_DIBFUNCTION)(PBLTDATA pBltData)
VOID FASTCALL Dib_MaskCopy(PBLTDATA pBltData)
Definition: MaskCopy.c:9
VOID FASTCALL Dib_SrcPaint(PBLTDATA pBltData)
Definition: SrcPaint.c:17
VOID FASTCALL Dib_MaskBlt(PBLTDATA pBltData)
Definition: MaskBlt.c:22
VOID FASTCALL Dib_MaskPaint(PBLTDATA pBltData)
Definition: MaskPaint.c:17
VOID FASTCALL Dib_MaskPatBlt(PBLTDATA pBltData)
Definition: MaskPatBlt.c:22
VOID FASTCALL Dib_MaskPatPaint(PBLTDATA pBltData)
Definition: MaskPatPaint.c:22
VOID FASTCALL Dib_SrcPatBlt(PBLTDATA pBltData)
Definition: SrcPatBlt.c:22
VOID FASTCALL Dib_MaskSrcPaint(PBLTDATA pBltData)
Definition: MaskSrcPaint.c:17
VOID FASTCALL Dib_PatPaint(PBLTDATA pBltData)
Definition: PatPaint.c:22
unsigned char UCHAR
Definition: xmlstorage.h:181
unsigned char BYTE
Definition: xxhash.c:193