60{
62 PBYTE SourceBits, DestBits, SourceLine, DestLine;
63 PBYTE SourceBits_4BPP, SourceLine_4BPP;
64 BOOLEAN bTopToBottom, bLeftToRight;
65
66 DPRINT(
"DIB_8BPP_BitBltSrcCopy: SrcSurf cx/cy (%d/%d), DestSuft cx/cy (%d/%d) dstRect: (%d,%d)-(%d,%d)\n",
70
71
73
74
76
77 DPRINT(
"bTopToBottom is '%d' and bLeftToRight is '%d'.\n", bTopToBottom, bLeftToRight);
78
79
81
82 DPRINT(
"BPP is '%d' & BltInfo->SourcePoint.x is '%d' & BltInfo->SourcePoint.y is '%d'.\n",
84
86
88 {
90 DPRINT(
"1BPP Case Selected with DestRect Width of '%d'.\n",
92
94
95
97
98 if (bTopToBottom)
99 {
100
102 }
103
104 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
105 {
107
108 if (bLeftToRight)
109 {
110
112 }
113
115 {
117 {
119 }
120 else
121 {
123 }
125 }
127 }
128 break;
129
131 DPRINT(
"4BPP Case Selected with DestRect Width of '%d'.\n",
133
134
136
137 if (bTopToBottom)
138 {
139
141 }
142
143 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
144 {
145 SourceLine_4BPP = SourceBits_4BPP;
147
148 if (bLeftToRight)
149 {
150
152 }
153
155
157 {
162 {
165 }
166 else
167 {
169 }
170
172 }
174 }
175 break;
176
178 DPRINT(
"8BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
182
185 (!bTopToBottom && !bLeftToRight))
186 {
188 {
189 DPRINT(
"BltInfo->DestRect.top < BltInfo->SourcePoint.y.\n");
191 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
192 {
196 }
197 }
198 else
199 {
200 DPRINT(
"BltInfo->DestRect.top >= BltInfo->SourcePoint.y.\n");
204 {
208 }
209 }
210 }
211 else
212 {
213 DPRINT(
"XO_TRIVIAL is NOT TRUE or we have flips.\n");
214
215 if (!bTopToBottom && !bLeftToRight)
216
217 {
219 {
220 DPRINT(
"Dest.top < SourcePoint.y.\n");
222 DestLine = DestBits;
223 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
224 {
225 SourceBits = SourceLine;
226 DestBits = DestLine;
228 {
230 }
233 }
234 }
235 else
236 {
237 DPRINT(
"Dest.top >= SourcePoint.y.\n");
241 {
242 SourceBits = SourceLine;
243 DestBits = DestLine;
245 {
247 }
250 }
251 }
252 }
253 else
254 {
255
257
258 if (bLeftToRight)
259 {
260 DPRINT(
"Flip is bLeftToRight.\n");
261
262
266 {
267 DPRINT1(
"Storage Allocation Failed.\n");
269 }
271
272
277
278
282
283 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
284 {
285 SourceBits = SourceLine;
286 DestBits = DestLine;
287
288
290
292
293 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
294 {
297 *SourceBits);
298 SourceBits--;
300 }
301
303
304 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
305 {
306 *DestBits = store[
Index];
307 DestBits++;
309 }
310
313 }
316 }
317
318 if (bTopToBottom)
319 {
320 DPRINT(
"Flip is bTopToBottom.\n");
321
323
324
328 {
329 DPRINT1(
"Storage Allocation Failed.\n");
331 }
332
333
334
335
336
337
338 if (OneDone)
339 {
340
344 }
345 else
346 {
347
352 }
353
354
358
359
360 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
361 {
362
363 DestBits = DestLine;
364 SourceBits = SourceLine;
365
367
368
369 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
370 {
372
375 }
376
378
379
380 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
381 {
382 *DestBits = store[
Index];
383
386 }
387
388 SourceLine += 1;
389 DestLine += 1;
390 }
392 }
393
394 }
395 }
396 break;
397
399 DPRINT(
"16BPP Case Selected with DestRect Width of '%d'.\n",
401
402 DPRINT(
"BMF_16BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
406
408
409 if (bTopToBottom)
410 {
411
413 }
414 DestLine = DestBits;
415
416 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
417 {
418 SourceBits = SourceLine;
419
420 if (bLeftToRight)
421 {
422
424 }
425 DestBits = DestLine;
426
427 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
428 {
429 xColor = *((
PWORD) SourceBits);
431
433 DestBits += 1;
434 }
437 }
438 break;
439
441 DPRINT(
"24BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
445
447 DestLine = DestBits;
448
449 if (bTopToBottom)
450 {
451
453 }
454
455 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
456 {
457 SourceBits = SourceLine;
458 DestBits = DestLine;
459
460 if (bLeftToRight)
461 {
462
464 }
465
466 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
467 {
468 xColor = (*(SourceBits + 2) << 0x10) +
469 (*(SourceBits + 1) << 0x08) +
470 (*(SourceBits));
473 DestBits += 1;
474 }
477 }
478 break;
479
481 DPRINT(
"32BPP Case Selected with DestRect Width of '%d'.\n",
483
485
486 if (bTopToBottom)
487 {
488
490 }
491 DestLine = DestBits;
492
493 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
494 {
495 SourceBits = SourceLine;
496 DestBits = DestLine;
497
498 if (bLeftToRight)
499 {
500
502 }
503
504 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
505 {
506 xColor = *((
PDWORD) SourceBits);
508
510 DestBits += 1;
511 }
514 }
515 break;
516
517 default:
520 }
521
523}
#define DEC_OR_INC(var, decTrue, amount)
VOID DIB_8BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
#define ExAllocatePoolWithTag(hernya, size, tag)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define ExFreePoolWithTag(_P, _T)
XLATEOBJ * XlateSourceToDest
#define RtlMoveMemory(Destination, Source, Length)
_In_ WDFCOLLECTION _In_ ULONG Index
unsigned char altnotmask[2]
ULONG DIB_1BPP_GetPixel(SURFOBJ *, LONG, LONG)
#define BitsPerFormat(Format)
VOID FASTCALL RECTL_vMakeWellOrdered(_Inout_ RECTL *prcl)
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)