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
11 * 0 1 0 0 -> NOOP, DESTINVERT
15 * 1 0 0 0 MaskCopy, -> SRCCOPY / SRCINVERT using Mask als source
18 * 1 0 1 1 MaskSrcPatBlt
20 * 1 1 0 1 MaskPatPaint
21 * 1 1 1 0 MaskSrcPaint
26 const BYTE ajShift4
[2] = {4, 0};
31 INDEX_BitBlt_DSTINVERT
,
32 INDEX_BitBlt_BLACKNESS
,
33 INDEX_BitBlt_WHITENESS
,
35 INDEX_BitBlt_NOTPATCOPY
,
37 INDEX_BitBlt_NOTSRCCOPY
,
38 INDEX_BitBlt_SRCERASE
,
39 INDEX_BitBlt_NOTSRCERASE
,
40 INDEX_BitBlt_PATINVERT
,
41 INDEX_BitBlt_SRCINVERT
,
43 INDEX_BitBlt_MERGEPAINT
,
44 INDEX_BitBlt_MERGECOPY
,
45 INDEX_BitBlt_SRCPAINT
,
46 INDEX_BitBlt_PATPAINT
,
61 Dib_BitBlt_NOTPATCOPY
,
63 Dib_BitBlt_NOTSRCCOPY
,
65 Dib_BitBlt_NOTSRCERASE
,
69 Dib_BitBlt_MERGEPAINT
,
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,
97 INDEX_BitBlt_NOTPATCOPY
, // Pn,
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
340 const PFN_DIBFUNCTION
341 gapfnMaskFunction
[8] =