32 0, {0,0,0,0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
59 BYTE *pjMskLine, *pjMskCurrent;
60 BYTE fjMaskBit0, fjMaskBit;
63 ULONG PatternWidth = 0, PatternHeight = 0;
64 LONG PatternX0 = 0, PatternX = 0, PatternY = 0;
65 LONG SrcX = 0, SrcY = 0;
69 DWORD fgndRop, bkgndRop;
80 if (
pbo &&
pbo->iSolidColor == 0xFFFFFFFF)
102 fjMaskBit0 = 0x80 >> (
pptlMask->x & 0x07);
113 SrcY = pptlSource->
y;
114 SrcX = pptlSource->
x;
122 PatternY += PatternHeight;
127 PatternX0 += PatternWidth;
129 PatternX = PatternX0;
133 Pattern =
pbo ?
pbo->iSolidColor : 0;
138 pjMskCurrent = pjMskLine;
139 fjMaskBit = fjMaskBit0;
143 Rop4 = (*pjMskCurrent & fjMaskBit) ? fgndRop : bkgndRop;
148 Pattern = fnPattern_GetPixel(
psoPattern, PatternX, PatternY);
150 PatternX %= PatternWidth;
158 fnSrc_GetPixel(psoSource, SrcX, SrcY));
164 Dest = fnDest_GetPixel(psoDest,
x,
y);
166 fnDest_PutPixel(psoDest,
173 fjMaskBit =
_rotr8(fjMaskBit, 1);
174 pjMskCurrent += (fjMaskBit >> 7);
180 PatternY %= PatternHeight;
181 PatternX = PatternX0;
186 SrcX = pptlSource->
x;
266 DPRINT(
"CallDibBitBlt: BltInfo.DestRect: (%d,%d)-(%d,%d)\n",
320 return EngBitBlt(psoTrg,
psoSrc,
psoMask,
pco,
pxlo, &rclTrg, &ptlSrc, &ptlMask,
pbo, &ptlBrush, Rop4);
356 BOOL UsesSource, UsesMask;
357 POINTL AdjustedBrushOrigin;
359 BOOLEAN bTopToBottom, bLeftToRight;
370 bLeftToRight =
FALSE;
379 bTopToBottom =
FALSE;
393 DPRINT(
"EngBitBlt: prclTrg: (%d,%d)-(%d,%d)\n",
396 DPRINT(
"EngBitBlt: OutputRect: (%d,%d)-(%d,%d)\n",
409 if (InputPoint.
x < 0)
411 OutputRect.
left -= InputPoint.
x;
414 if (InputPoint.
y < 0)
416 OutputRect.
top -= InputPoint.
y;
419 if (
psoSrc->sizlBitmap.cx < InputPoint.
x +
423 psoSrc->sizlBitmap.cx - InputPoint.
x;
425 if (
psoSrc->sizlBitmap.cy < InputPoint.
y +
429 psoSrc->sizlBitmap.cy - InputPoint.
y;
432 InputRect.
left = InputPoint.
x;
434 InputRect.
top = InputPoint.
y;
441 InputPoint.
x = InputPoint.
y = 0;
450 if (OutputRect.
left <
pco->rclBounds.left)
452 InputRect.
left +=
pco->rclBounds.left - OutputRect.
left;
453 InputPoint.
x +=
pco->rclBounds.left - OutputRect.
left;
454 OutputRect.
left =
pco->rclBounds.left;
456 if (
pco->rclBounds.right < OutputRect.
right)
459 OutputRect.
right =
pco->rclBounds.right;
461 if (OutputRect.
top <
pco->rclBounds.top)
463 InputRect.
top +=
pco->rclBounds.top - OutputRect.
top;
464 InputPoint.
y +=
pco->rclBounds.top - OutputRect.
top;
465 OutputRect.
top =
pco->rclBounds.top;
467 if (
pco->rclBounds.bottom < OutputRect.
bottom)
470 OutputRect.
bottom =
pco->rclBounds.bottom;
476 if (OutputRect.
right <= OutputRect.
left ||
491 AdjustedBrushOrigin.
x = 0;
492 AdjustedBrushOrigin.
y = 0;
502 clippingType =
pco->iDComplexity;
524 if (
pbo &&
pbo->iSolidColor == 0xFFFFFFFF)
535 switch (clippingType)
541 lTmp = OutputRect.
left;
543 OutputRect.
right = lTmp;
548 lTmp = OutputRect.
top;
553 Ret = (*BltRectFunc)(OutputObj,
561 &AdjustedBrushOrigin,
566 ClipRect.
left =
pco->rclBounds.left;
567 ClipRect.
right =
pco->rclBounds.right;
568 ClipRect.
top =
pco->rclBounds.top;
575 AdjustedBrushOrigin.x = BrushOrigin->x + CombinedRect.
left - OutputRect.left;
576 AdjustedBrushOrigin.y = BrushOrigin->y + CombinedRect.
top - OutputRect.top;
579 Pt.
x = InputPoint.x + CombinedRect.
left - OutputRect.left;
580 Pt.
y = InputPoint.y + CombinedRect.
top - OutputRect.top;
581 Ret = (*BltRectFunc)(OutputObj,
589 &AdjustedBrushOrigin,
595 if (OutputObj == InputObj)
597 if (OutputRect.top < InputPoint.y)
599 Direction = OutputRect.left < InputPoint.x ?
604 Direction = OutputRect.left < InputPoint.x ?
618 for (
i = 0;
i < RectEnum.c;
i++)
620 ClipRect.
left = RectEnum.arcl[
i].left;
621 ClipRect.
right = RectEnum.arcl[
i].right;
622 ClipRect.
top = RectEnum.arcl[
i].top;
623 ClipRect.
bottom = RectEnum.arcl[
i].bottom;
629 AdjustedBrushOrigin.x = BrushOrigin->x + CombinedRect.
left - OutputRect.left;
630 AdjustedBrushOrigin.y = BrushOrigin->y + CombinedRect.
top - OutputRect.top;
633 Pt.
x = InputPoint.x + CombinedRect.
left - OutputRect.left;
634 Pt.
y = InputPoint.y + CombinedRect.
top - OutputRect.top;
635 Ret = (*BltRectFunc)(OutputObj,
643 &AdjustedBrushOrigin,
678 BOOLEAN bTopToBottom, bLeftToRight;
736 rclClipped.
top += (rclSrcClipped.
top - rclSrc.
top);
764 DPRINT1(
"Need to copy to standard bitmap format!\n");
784 lTmp = rclClipped.
left;
786 rclClipped.
right = lTmp;
791 lTmp = rclClipped.
top;
796 DPRINT(
"About to call EngBitBlt: rclClipped: (%d,%d)-(%d,%d)\n",
799 bResult = pfnBitBlt(psoTrg,
816 #endif // !_USE_DIBLIB_ 835 ULONG Background, BrushColor, NewColor;
852 for (
j = 0;
j <
dy;
j++)
855 for (
i = 0;
i <
dx;
i++)
920 POINTL AdjustedBrushOrigin;
939 OutputRect = *DestRect;
940 if (
NULL != ClipRegion)
969 InputPoint.
x = InputRect.
left + Translate.
x;
970 InputPoint.
y = InputRect.
top + Translate.
y;
980 if (!
IntEngEnter(&EnterLeaveDest, psoDest, &OutputRect,
FALSE, &Translate, &psoOutput))
986 OutputRect.
left = DestRect->
left + Translate.
x;
988 OutputRect.
top = DestRect->
top + Translate.
y;
993 AdjustedBrushOrigin.
x = BrushOrigin->
x + Translate.
x;
994 AdjustedBrushOrigin.
y = BrushOrigin->
y + Translate.
y;
997 AdjustedBrushOrigin = Translate;
1007 switch (clippingType)
1011 Ret =
AlphaBltMask(psoOutput,
NULL , psoInput, DestColorTranslation, SourceColorTranslation,
1012 &OutputRect,
NULL, &InputPoint,
pbo, &AdjustedBrushOrigin);
1014 Ret =
BltMask(psoOutput,
NULL, psoInput, DestColorTranslation,
1015 &OutputRect,
NULL, &InputPoint,
pbo, &AdjustedBrushOrigin,
1026 Pt.
x = InputPoint.
x + CombinedRect.
left - OutputRect.
left;
1027 Pt.
y = InputPoint.
y + CombinedRect.
top - OutputRect.
top;
1030 Ret =
AlphaBltMask(psoOutput,
NULL, psoInput, DestColorTranslation, SourceColorTranslation,
1031 &CombinedRect,
NULL, &Pt,
pbo, &AdjustedBrushOrigin);
1035 Ret =
BltMask(psoOutput,
NULL, psoInput, DestColorTranslation,
1042 if (psoOutput == psoInput)
1044 if (OutputRect.
top < InputPoint.
y)
1062 for (
i = 0;
i < RectEnum.c;
i++)
1064 ClipRect.
left = RectEnum.arcl[
i].left + Translate.
x;
1065 ClipRect.
right = RectEnum.arcl[
i].right + Translate.
x;
1066 ClipRect.
top = RectEnum.arcl[
i].top + Translate.
y;
1067 ClipRect.
bottom = RectEnum.arcl[
i].bottom + Translate.
y;
1070 Pt.
x = InputPoint.
x + CombinedRect.
left - OutputRect.
left;
1071 Pt.
y = InputPoint.
y + CombinedRect.
top - OutputRect.
top;
1075 DestColorTranslation,
1076 SourceColorTranslation,
1077 &CombinedRect,
NULL, &Pt,
pbo,
1078 &AdjustedBrushOrigin) && Ret;
1083 DestColorTranslation, &CombinedRect,
NULL,
1084 &Pt,
pbo, &AdjustedBrushOrigin,
1178 psoDest->iBitmapFormat,
1183 if (psurfTemp ==
NULL)
#define BRUSHOBJ_psoMask(pbo)
ULONG(* PFN_DIB_GetPixel)(SURFOBJ *, LONG, LONG)
BOOL APIENTRY EngBitBlt(_Inout_ SURFOBJ *psoTrg, _In_opt_ SURFOBJ *psoSrc, _In_opt_ SURFOBJ *psoMask, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ RECTL *prclTrg, _In_opt_ POINTL *pptlSrc, _In_opt_ POINTL *pptlMask, _In_opt_ BRUSHOBJ *pbo, _In_opt_ POINTL *pptlBrush, _In_ ROP4 rop4)
BOOL(APIENTRY * PBLTRECTFUNC)(SURFOBJ *OutputObj, SURFOBJ *InputObj, SURFOBJ *Mask, XLATEOBJ *ColorTranslation, RECTL *OutputRect, POINTL *InputPoint, POINTL *MaskOrigin, BRUSHOBJ *Brush, POINTL *BrushOrigin, ROP4 Rop4)
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
XLATEOBJ * XlateSourceToDest
static BOOLEAN APIENTRY AlphaBltMask(SURFOBJ *psoDest, SURFOBJ *psoSource, SURFOBJ *psoMask, XLATEOBJ *pxloRGB2Dest, XLATEOBJ *pxloBrush, RECTL *prclDest, POINTL *pptlSource, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *pptlBrush)
GLdouble GLdouble GLdouble r
static BOOLEAN APIENTRY BltMask(SURFOBJ *psoDest, SURFOBJ *psoSource, SURFOBJ *psoMask, XLATEOBJ *ColorTranslation, RECTL *prclDest, POINTL *pptlSource, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *pptlBrush, ROP4 Rop4)
#define ROP4_USES_DEST(Rop4)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ _In_opt_ POINTL _In_ ROP4 rop4
#define ROP4_USES_MASK(Rop4)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclTrg
GLint GLint GLint GLint GLint x
#define IS_VALID_ROP4(rop)
static BOOLEAN APIENTRY CallDibBitBlt(SURFOBJ *OutputObj, SURFOBJ *InputObj, SURFOBJ *Mask, XLATEOBJ *ColorTranslation, RECTL *OutputRect, POINTL *InputPoint, POINTL *MaskOrigin, BRUSHOBJ *pbo, POINTL *BrushOrigin, ROP4 Rop4)
#define DIB_GetSource(SourceSurf, sx, sy, ColorTranslation)
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL * pptlBrushOrg
FORCEINLINE BOOL RECTL_bClipRectBySize(_Out_ RECTL *prclDst, _In_ const RECTL *prclSrc, _In_ const SIZEL *pszl)
PFN_DIB_PutPixel DIB_PutPixel
_Out_opt_ int _Out_opt_ int * cy
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define ROP4_USES_SOURCE(Rop4)
#define BRUSHOBJ_psoPattern(pbo)
ULONG DIB_DoRop(ULONG Rop, ULONG Dest, ULONG Source, ULONG Pattern)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ _In_opt_ POINTL * pptlBrush
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
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
GLboolean GLboolean GLboolean b
VOID NTAPI GDIOBJ_vDeleteObject(POBJ pobj)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ * pbo
ENGAPI ULONG APIENTRY CLIPOBJ_cEnumStart(_Inout_ CLIPOBJ *pco, _In_ BOOL bAll, _In_ ULONG iType, _In_ ULONG iDirection, _In_ ULONG cLimit)
#define GDIDEVFUNCS(SurfObj)
#define EXCEPTION_EXECUTE_HANDLER
BOOL FASTCALL RECTL_bIntersectRect(_Out_ RECTL *prclDst, _In_ const RECTL *prcl1, _In_ const RECTL *prcl2)
BOOL APIENTRY NtGdiEngBitBlt(IN SURFOBJ *psoTrg, IN SURFOBJ *psoSrc, IN SURFOBJ *psoMask, IN CLIPOBJ *pco, IN XLATEOBJ *pxlo, IN RECTL *prclTrg, IN POINTL *pptlSrc, IN POINTL *pptlMask, IN BRUSHOBJ *pbo, IN POINTL *pptlBrush, IN ROP4 Rop4)
static BOOL APIENTRY EngMaskBitBlt(SURFOBJ *psoDest, SURFOBJ *psoMask, CLIPOBJ *ClipRegion, XLATEOBJ *DestColorTranslation, XLATEOBJ *SourceColorTranslation, RECTL *DestRect, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *BrushOrigin)
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclDest
PSURFACE NTAPI SURFACE_AllocSurface(_In_ USHORT iType, _In_ ULONG cx, _In_ ULONG cy, _In_ ULONG iFormat, _In_ ULONG fjBitmap, _In_opt_ ULONG cjWidth, _In_opt_ ULONG cjBufSize, _In_opt_ PVOID pvBits)
BOOL APIENTRY IntEngEnter(PINTENG_ENTER_LEAVE EnterLeave, SURFOBJ *psoDest, RECTL *DestRect, BOOL ReadOnly, POINTL *Translate, SURFOBJ **ppsoOutput)
PFN_DIB_GetPixel DIB_GetPixel
static BOOLEAN APIENTRY BltPatCopy(SURFOBJ *Dest, SURFOBJ *Source, SURFOBJ *Mask, XLATEOBJ *ColorTranslation, RECTL *DestRect, POINTL *SourcePoint, POINTL *MaskPoint, BRUSHOBJ *pbo, POINTL *BrushPoint, DWORD Rop4)
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
BOOL APIENTRY IntEngMaskBlt(_Inout_ SURFOBJ *psoDest, _In_ SURFOBJ *psoMask, _In_ CLIPOBJ *pco, _In_ XLATEOBJ *pxloDest, _In_ XLATEOBJ *pxloSource, _In_ RECTL *prclDest, _In_ POINTL *pptlMask, _In_ BRUSHOBJ *pbo, _In_ POINTL *pptlBrushOrg)
PFN_DIB_ColorFill DIB_ColorFill
_In_ SURFOBJ _In_ CLIPOBJ * pco
ENGAPI BOOL APIENTRY EngCopyBits(_In_ SURFOBJ *psoDest, _In_ SURFOBJ *psoSrc, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ __in_data_source(USER_MODE) RECTL *prclDest, _In_ __in_data_source(USER_MODE) POINTL *pptlSrc)
FN_DrvBitBlt * PFN_DrvBitBlt
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL * pptlMask
DIB_FUNCTIONS DibFunctionsForBitmapFormat[]
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL * pptlSrc
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
_Check_return_ unsigned char __cdecl _rotr8(_In_ unsigned char _Value, _In_ unsigned char _Shift)
#define ROP4_USES_PATTERN(Rop4)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoMask
GLint GLint GLint GLint GLint GLint y
PFN_DIB_BitBlt DIB_BitBlt
_Inout_ SURFOBJ _In_opt_ SURFOBJ * psoPattern
#define RtlCopyMemory(Destination, Source, Length)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
#define _SEH2_EXCEPT(...)
BOOL APIENTRY IntEngLeave(PINTENG_ENTER_LEAVE EnterLeave)
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
#define _SEH2_YIELD(__stmt)
VOID FASTCALL RECTL_vMakeWellOrdered(_Inout_ RECTL *prcl)
ENGAPI BOOL APIENTRY CLIPOBJ_bEnum(_In_ CLIPOBJ *pco, _In_ ULONG cj, _Out_bytecap_(cj) ULONG *pul)
PFN_DIB_BitBlt DIB_BitBltSrcCopy
BOOL APIENTRY IntEngBitBlt(SURFOBJ *psoTrg, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *pptlBrush, ROP4 Rop4)
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
VOID(* PFN_DIB_PutPixel)(SURFOBJ *, LONG, LONG, ULONG)