57 PBYTE SourceBits, DestBits, SourceLine, DestLine;
58 PBYTE SourceBitsT, SourceBitsB, DestBitsT, DestBitsB;
59 PBYTE SourceBits_4BPP, SourceLine_4BPP;
62 LONG DestWidth, DestHeight;
63 BOOLEAN bTopToBottom, bLeftToRight;
64 BOOLEAN blDeltaSrcNeg, blDeltaDestNeg;
67 DPRINT(
"DIB_32BPP_BitBltSrcCopy: SourcePoint (%d, %d), SourceSurface cx/cy (%d/%d), " 68 "DestSurface cx/cy (%d/%d) DestRect: (%d,%d)-(%d,%d)\n",
69 BltInfo->SourcePoint.x, BltInfo->SourcePoint.y,
70 BltInfo->SourceSurface->sizlBitmap.cx, BltInfo->SourceSurface->sizlBitmap.cy,
71 BltInfo->DestSurface->sizlBitmap.cx, BltInfo->DestSurface->sizlBitmap.cy,
72 BltInfo->DestRect.left, BltInfo->DestRect.top, BltInfo->DestRect.right, BltInfo->DestRect.bottom);
74 DPRINT(
"BltInfo->DestSurface->lDelta is '%d' and BltInfo->SourceSurface->lDelta is '%d'.\n",
75 BltInfo->DestSurface->lDelta, BltInfo->SourceSurface->lDelta);
77 DPRINT(
"iBitmapFormat is %d and width,height is (%d,%d).\n", BltInfo->SourceSurface->iBitmapFormat,
78 BltInfo->DestRect.right - BltInfo->DestRect.left, BltInfo->DestRect.bottom - BltInfo->DestRect.top);
80 DPRINT(
"BltInfo->SourcePoint.x is '%d' and BltInfo->SourcePoint.y is '%d'.\n",
81 BltInfo->SourcePoint.x, BltInfo->SourcePoint.y);
84 if ((BltInfo->DestRect.left < 0) || (BltInfo->DestRect.top < 0) ||
85 (BltInfo->DestRect.right < 0) || (BltInfo->DestRect.bottom < 0))
89 blDeltaSrcNeg = BltInfo->SourceSurface->lDelta < 0;
90 blDeltaDestNeg = BltInfo->DestSurface->lDelta < 0;
93 bLeftToRight = BltInfo->DestRect.left > BltInfo->DestRect.right;
96 bTopToBottom = BltInfo->DestRect.top > BltInfo->DestRect.bottom;
98 DPRINT(
"bTopToBottom is '%d' and DestSurface->lDelta < 0 is '%d' and SourceSurface->lDelta < 0 is '%d'.\n",
99 bTopToBottom, BltInfo->DestSurface->lDelta < 0 ? 1 : 0, BltInfo->SourceSurface->lDelta < 0 ? 1 : 0);
104 DestWidth = BltInfo->DestRect.right - BltInfo->DestRect.left;
105 DestHeight = BltInfo->DestRect.bottom - BltInfo->DestRect.top;
107 DestBits = (
PBYTE)BltInfo->DestSurface->pvScan0
108 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta)
109 + 4 * BltInfo->DestRect.left;
111 DPRINT(
"iBitmapFormat is %d and width,height is (%d,%d).\n", BltInfo->SourceSurface->iBitmapFormat,
112 DestWidth, DestHeight);
114 switch (BltInfo->SourceSurface->iBitmapFormat)
117 DPRINT(
"1BPP Case Selected with DestRect Width of '%d'.\n",
120 if (bLeftToRight || bTopToBottom)
121 DPRINT(
"bLeftToRight is '%d' and bTopToBottom is '%d'.\n", bLeftToRight, bTopToBottom);
123 sx = BltInfo->SourcePoint.x;
126 sy = BltInfo->SourcePoint.y;
131 sy += BltInfo->SourceSurface->lDelta * (DestHeight - 1);
134 for (
j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom;
j++)
136 sx = BltInfo->SourcePoint.x;
141 sx += (DestWidth - 1);
144 for (
i = BltInfo->DestRect.left; i < BltInfo->DestRect.right;
i++)
162 DPRINT(
"4BPP Case Selected with DestRect Width of '%d'.\n",
165 if (bLeftToRight || bTopToBottom)
166 DPRINT(
"bLeftToRight is '%d' and bTopToBottom is '%d'.\n", bLeftToRight, bTopToBottom);
169 SourceBits_4BPP = (
PBYTE)BltInfo->SourceSurface->pvScan0
170 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
171 + (BltInfo->SourcePoint.x >> 1);
176 SourceBits_4BPP += BltInfo->SourceSurface->lDelta * (DestHeight - 1);
179 for (
j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom;
j++)
181 SourceLine_4BPP = SourceBits_4BPP;
182 sx = BltInfo->SourcePoint.x;
187 sx += (DestWidth - 1);
192 for (
i=BltInfo->DestRect.left; i<BltInfo->DestRect.right;
i++)
205 DEC_OR_INC(SourceBits_4BPP, bTopToBottom, BltInfo->SourceSurface->lDelta);
210 DPRINT(
"8BPP Case Selected with DestRect Width of '%d'.\n",
213 if (bLeftToRight || bTopToBottom)
214 DPRINT(
"bLeftToRight is '%d' and bTopToBottom is '%d'.\n", bLeftToRight, bTopToBottom);
217 SourceLine = (
PBYTE)BltInfo->SourceSurface->pvScan0
218 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
219 + BltInfo->SourcePoint.x;
225 SourceLine += BltInfo->SourceSurface->lDelta * (DestHeight - 1);
228 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
230 SourceBits = SourceLine;
236 SourceBits += (DestWidth - 1);
239 for (
i = BltInfo->DestRect.left; i < BltInfo->DestRect.right;
i++)
241 xColor = *SourceBits;
246 DEC_OR_INC(SourceLine, bTopToBottom, BltInfo->SourceSurface->lDelta);
247 DestLine += BltInfo->DestSurface->lDelta;
252 DPRINT(
"16BPP Case Selected with DestRect Width of '%d'.\n",
255 if (bLeftToRight || bTopToBottom)
256 DPRINT(
"bLeftToRight is '%d' and bTopToBottom is '%d'.\n", bLeftToRight, bTopToBottom);
259 SourceLine = (
PBYTE)BltInfo->SourceSurface->pvScan0
260 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
261 + 2 * BltInfo->SourcePoint.x;
267 SourceLine += BltInfo->SourceSurface->lDelta * (DestHeight - 1);
270 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
272 SourceBits = SourceLine;
278 SourceBits += (DestWidth - 1) * 2;
281 for (
i = BltInfo->DestRect.left; i < BltInfo->DestRect.right;
i++)
283 xColor = *((
PWORD) SourceBits);
289 DEC_OR_INC(SourceLine, bTopToBottom, BltInfo->SourceSurface->lDelta);
290 DestLine += BltInfo->DestSurface->lDelta;
295 DPRINT(
"24BPP Case Selected with DestRect Width of '%d'.\n",
298 if (bLeftToRight || bTopToBottom)
299 DPRINT(
"bLeftToRight is '%d' and bTopToBottom is '%d'.\n", bLeftToRight, bTopToBottom);
302 SourceLine = (
PBYTE)BltInfo->SourceSurface->pvScan0
303 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
304 + 3 * BltInfo->SourcePoint.x;
309 SourceLine += BltInfo->SourceSurface->lDelta * (DestHeight - 1);
314 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
316 SourceBits = SourceLine;
322 SourceBits += (DestWidth - 1) * 3;
325 for (
i = BltInfo->DestRect.left; i < BltInfo->DestRect.right;
i++)
327 xColor = (*(SourceBits + 2) << 0x10) +
328 (*(SourceBits + 1) << 0x08) +
335 DEC_OR_INC(SourceLine, bTopToBottom, BltInfo->SourceSurface->lDelta);
336 DestLine += BltInfo->DestSurface->lDelta;
341 DPRINT(
"32BPP Case Selected with SourcePoint (%d,%d) and DestRect Width/height of '%d/%d' DestRect: (%d,%d)-(%d,%d).\n",
342 BltInfo->SourcePoint.x, BltInfo->SourcePoint.y, DestWidth, DestHeight,
343 BltInfo->DestRect.left, BltInfo->DestRect.top, BltInfo->DestRect.right, BltInfo->DestRect.bottom);
345 if (bLeftToRight || bTopToBottom)
346 DPRINT(
"bLeftToRight is '%d' and bTopToBottom is '%d'.\n", bLeftToRight, bTopToBottom);
349 if (((blDeltaSrcNeg || blDeltaDestNeg) && !(blDeltaSrcNeg && blDeltaDestNeg)) && bTopToBottom)
351 DPRINT(
"Adjusting for lDelta's here.\n");
352 if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
355 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
356 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
357 + 4 * BltInfo->SourcePoint.x;
358 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
361 SourceBits += BltInfo->SourceSurface->lDelta;
362 DestBits += BltInfo->DestSurface->lDelta;
368 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
369 + ((BltInfo->SourcePoint.y + DestHeight - 1) * BltInfo->SourceSurface->lDelta)
370 + 4 * BltInfo->SourcePoint.x;
372 DestBits = (
PBYTE)BltInfo->DestSurface->pvScan0
373 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta)
374 + 4 * BltInfo->DestRect.left;
375 for (
j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <=
j;
j--)
378 SourceBits -= BltInfo->SourceSurface->lDelta;
379 DestBits -= BltInfo->DestSurface->lDelta;
382 blDeltaAdjustDone =
TRUE;
388 if ((BltInfo->XlateSourceToDest ==
NULL ||
389 (BltInfo->XlateSourceToDest->flXlate &
XO_TRIVIAL) != 0) &&
390 (!bTopToBottom && !bLeftToRight))
392 DPRINT(
"XO_TRIVIAL is TRUE.\n");
394 if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
397 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
398 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
399 + 4 * BltInfo->SourcePoint.x;
400 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
403 SourceBits += BltInfo->SourceSurface->lDelta;
404 DestBits += BltInfo->DestSurface->lDelta;
410 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
411 + ((BltInfo->SourcePoint.y
412 + DestHeight - 1) * BltInfo->SourceSurface->lDelta)
413 + 4 * BltInfo->SourcePoint.x;
415 DestBits = (
PBYTE)BltInfo->DestSurface->pvScan0
416 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta)
417 + 4 * BltInfo->DestRect.left;
418 for (
j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <=
j;
j--)
421 SourceBits -= BltInfo->SourceSurface->lDelta;
422 DestBits -= BltInfo->DestSurface->lDelta;
428 DPRINT(
"XO_TRIVIAL is NOT TRUE.\n");
430 if (!bTopToBottom && !bLeftToRight)
432 if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
434 SourceBits = ((
PBYTE)BltInfo->SourceSurface->pvScan0
435 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
436 + 4 * BltInfo->SourcePoint.x);
437 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
439 if (BltInfo->DestRect.left < BltInfo->SourcePoint.x)
441 Dest32 = (
DWORD *) DestBits;
442 Source32 = (
DWORD *) SourceBits;
443 for (
i = BltInfo->DestRect.left; i < BltInfo->DestRect.right;
i++)
450 Dest32 = (
DWORD *) DestBits + (DestWidth - 1);
451 Source32 = (
DWORD *) SourceBits + (DestWidth - 1);
452 for (
i = BltInfo->DestRect.right - 1; BltInfo->DestRect.left <=
i;
i--)
457 SourceBits += BltInfo->SourceSurface->lDelta;
458 DestBits += BltInfo->DestSurface->lDelta;
463 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
464 + ((BltInfo->SourcePoint.y
465 + DestHeight - 1) * BltInfo->SourceSurface->lDelta)
466 + 4 * BltInfo->SourcePoint.x;
467 DestBits = (
PBYTE)BltInfo->DestSurface->pvScan0
468 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta)
469 + 4 * BltInfo->DestRect.left;
470 for (
j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <=
j;
j--)
472 if (BltInfo->DestRect.left < BltInfo->SourcePoint.x)
474 Dest32 = (
DWORD *) DestBits;
475 Source32 = (
DWORD *) SourceBits;
476 for (
i = BltInfo->DestRect.left; i < BltInfo->DestRect.right;
i++)
483 Dest32 = (
DWORD *) DestBits + (DestWidth - 1);
484 Source32 = (
DWORD *) SourceBits + (DestWidth - 1);
485 for (
i = BltInfo->DestRect.right - 1; BltInfo->DestRect.left <=
i;
i--)
490 SourceBits -= BltInfo->SourceSurface->lDelta;
491 DestBits -= BltInfo->DestSurface->lDelta;
501 if ((bLeftToRight) && (DestWidth > 1))
503 DPRINT(
"Flip is bLeftToRight.\n");
510 DPRINT1(
"Storage Allocation Failed.\n");
515 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
516 + ((BltInfo->SourcePoint.y + DestHeight - 1)
517 * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
520 DestBits = (
PBYTE)BltInfo->DestSurface->pvScan0
521 + (BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta
522 + 4 * BltInfo->DestRect.left;
524 for (
j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <=
j;
j--)
528 Dest32 = (
DWORD *) DestBits + (DestWidth - 1);
529 Source32 = (
DWORD *) SourceBits;
534 for (
i = BltInfo->DestRect.right - 1; BltInfo->DestRect.left <=
i;
i--)
536 store[
Index] = *Source32++;
543 for (
i = BltInfo->DestRect.right - 1; BltInfo->DestRect.left <=
i;
i--)
545 *Dest32-- = store[
Index];
548 SourceBits -= BltInfo->SourceSurface->lDelta;
549 DestBits -= BltInfo->DestSurface->lDelta;
552 TopToBottomDone =
TRUE;
556 if ((bTopToBottom) && (DestHeight > 1))
563 DPRINT(
"Flip is bTopToBottom.\n");
570 DPRINT1(
"Storage Allocation Failed.\n");
575 DestBitsT = (
PBYTE)BltInfo->DestSurface->pvScan0
576 + ((BltInfo->DestRect.top) * BltInfo->DestSurface->lDelta)
577 + 4 * BltInfo->DestRect.left;
580 DestBitsB = (
PBYTE)BltInfo->DestSurface->pvScan0
581 + (BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta
582 + 4 * BltInfo->DestRect.left;
592 if (TopToBottomDone || blDeltaAdjustDone)
595 SourceBitsB = DestBitsB;
598 SourceBitsT = DestBitsT;
603 SourceBitsB = (
PBYTE)BltInfo->SourceSurface->pvScan0
604 + ((BltInfo->SourcePoint.y + DestHeight - 1)
605 * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
608 SourceBitsT = (
PBYTE)BltInfo->SourceSurface->pvScan0
609 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
616 if ((BltInfo->SourcePoint.y != BltInfo->DestRect.top) &&
617 (
abs(BltInfo->SourcePoint.y - BltInfo->DestRect.top) < (DestHeight + 2)) &&
618 (BltInfo->SourceSurface->pvScan0 == BltInfo->DestSurface->pvScan0))
620 DPRINT(
"Flips Need Adjustments, so do move here.\n");
622 if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
625 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
626 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta)
627 + 4 * BltInfo->SourcePoint.x;
628 for (
j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom;
j++)
631 SourceBits += BltInfo->SourceSurface->lDelta;
632 DestBits += BltInfo->DestSurface->lDelta;
638 SourceBits = (
PBYTE)BltInfo->SourceSurface->pvScan0
639 + ((BltInfo->SourcePoint.y
640 + DestHeight - 1) * BltInfo->SourceSurface->lDelta)
641 + 4 * BltInfo->SourcePoint.x;
643 DestBits = (
PBYTE)BltInfo->DestSurface->pvScan0
644 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta)
645 + 4 * BltInfo->DestRect.left;
646 for (
j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <=
j;
j--)
649 SourceBits -= BltInfo->SourceSurface->lDelta;
650 DestBits -= BltInfo->DestSurface->lDelta;
655 SourceBitsB = DestBitsB;
658 SourceBitsT = DestBitsT;
662 for (
j = 0;
j < DestHeight / 2 ;
j++)
674 SourceBitsT += BltInfo->SourceSurface->lDelta;
675 SourceBitsB -= BltInfo->SourceSurface->lDelta;
677 DestBitsT += BltInfo->DestSurface->lDelta;
678 DestBitsB -= BltInfo->DestSurface->lDelta;
683 DPRINT(
"Handling Top To Bottom with Odd Number of lines.\n");
693 DPRINT1(
"DIB_32BPP_BitBltSrcCopy: Unhandled Source BPP: %u\n",
BitsPerFormat(BltInfo->SourceSurface->iBitmapFormat));
unsigned char altnotmask[2]
#define BitsPerFormat(Format)
VOID DIB_32BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
#define RtlMoveMemory(Destination, Source, Length)
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
_In_ WDFCOLLECTION _In_ ULONG Index
#define DEC_OR_INC(var, decTrue, amount)
#define ExAllocatePoolWithTag(hernya, size, tag)
ULONG DIB_1BPP_GetPixel(SURFOBJ *, LONG, LONG)
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
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
#define ExFreePoolWithTag(_P, _T)
VOID FASTCALL RECTL_vMakeWellOrdered(_Inout_ RECTL *prcl)