15#define DEC_OR_INC(var, decTrue, amount) \
16 ((var) = (decTrue) ? ((var) - (amount)) : ((var) + (amount)))
72 BYTE *DstStart, *DstEnd, *SrcStart, *SrcEnd;
85 SrcStart = (
BYTE*)SourceSurf->
pvScan0 + SourcePoint->
y * SourceSurf->
lDelta + SourcePoint->
x / 8;
89 if (DstStart > DstEnd)
96 if (SrcStart > SrcEnd)
104 Overlap = ((SrcStart >= DstStart) && (SrcStart < DstEnd)) || ((SrcEnd >= DstStart) && (SrcEnd < DstEnd));
111 LONG ySrc = bTopToBottom ? SourcePoint->
y +
Height -
y - 1 : SourcePoint->
y +
y;
116 LONG xSrc = bLeftToRight ? SourcePoint->
x +
Width -
x - 1 : SourcePoint->
x +
x;
133 LONG ySrc = bTopToBottom ? SourcePoint->
y +
Height -
y - 1 : SourcePoint->
y +
y;
138 LONG xSrc = bLeftToRight ? SourcePoint->
x +
Width -
x - 1 : SourcePoint->
x +
x;
140 Row[
x / 8] |= 1 << (
x & 7);
163 BOOLEAN bTopToBottom, bLeftToRight;
168 DPRINT(
"DIB_1BPP_BitBltSrcCopy: SrcSurf cx/cy (%d/%d), DestSuft cx/cy (%d/%d) dstRect: (%d,%d)-(%d,%d)\n",
182 DPRINT(
"BPP is '%d' & BltInfo->SourcePoint.x is '%d' & BltInfo->SourcePoint.y is '%d'.\n",
188 DPRINT(
"1BPP Case Selected with DestRect Width of '%d'.\n",
193 bTopToBottom, bLeftToRight );
196 DPRINT(
"4BPP Case Selected with DestRect Width of '%d'.\n",
205 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
227 DPRINT(
"8BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
238 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
260 DPRINT(
"16BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
271 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
293 DPRINT(
"24BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
304 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
326 DPRINT(
"32BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
337 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
370 LONG SourceX, SourceY;
401 for (DestY = BltInfo->
DestRect.
top; DestY < BltInfo->DestRect.bottom; DestY++)
415 Dest = *((
PBYTE)DestBits);
416 NoBits = 31 - (DestX & 31);
429 for (
k = 31 - NoBits;
k >= 0;
k++)
430 Pattern |= (
DIB_GetSourceIndex(PatternObj, (
X + BrushOrigin.x +
k) % PatternWidth, PatternY) << (31 -
k));
434 Dest &= ~((1 << (31 - NoBits)) - 1);
435 Dest |= *((
PBYTE)DestBits) & ((1 << (31 - NoBits)) - 1);
444 for (; DestX < RoundedRight; DestX += 32, DestBits++, SourceX += 32)
475 if (DestX < BltInfo->DestRect.right)
515 for (DestY = DestRect->
top; DestY< DestRect->
bottom; DestY++)
#define ALIGN_UP_BY(size, align)
VOID DIB_1BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
#define DEC_OR_INC(var, decTrue, amount)
VOID DIB_1BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
BOOLEAN DIB_1BPP_ColorFill(SURFOBJ *DestSurface, RECTL *DestRect, ULONG color)
BOOLEAN DIB_1BPP_BitBltSrcCopy(PBLTINFO BltInfo)
BOOLEAN DIB_1BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf, RECTL *DestRect, RECTL *SourceRect, XLATEOBJ *ColorTranslation, ULONG iTransColor)
ULONG DIB_1BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
static BOOLEAN DIB_1BPP_BitBltSrcCopy_From1BPP(SURFOBJ *DestSurf, SURFOBJ *SourceSurf, XLATEOBJ *pxlo, PRECTL DestRect, POINTL *SourcePoint, BOOLEAN bTopToBottom, BOOLEAN bLeftToRight)
VOID DIB_1BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
BOOLEAN DIB_1BPP_BitBlt(PBLTINFO BltInfo)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLenum const GLvoid * addr
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 ROP4_USES_PATTERN(Rop4)
#define ROP4_USES_SOURCE(Rop4)
#define ExFreePoolWithTag(_P, _T)
FORCEINLINE PVOID ExAllocatePoolZero(ULONG PoolType, SIZE_T NumberOfBytes, ULONG Tag)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
XLATEOBJ * XlateSourceToDest
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
_In_ WDFCOLLECTION _In_ ULONG Index
ULONG DIB_DoRop(ULONG Rop, ULONG Dest, ULONG Source, ULONG Pattern)
ULONG DIB_8BPP_GetPixel(SURFOBJ *, LONG, LONG)
ULONG DIB_24BPP_GetPixel(SURFOBJ *, LONG, LONG)
#define DIB_GetSource(SourceSurf, sx, sy, ColorTranslation)
ULONG DIB_4BPP_GetPixel(SURFOBJ *, LONG, LONG)
ULONG DIB_16BPP_GetPixel(SURFOBJ *, LONG, LONG)
#define DIB_GetSourceIndex(SourceSurf, sx, sy)
ULONG DIB_32BPP_GetPixel(SURFOBJ *, LONG, LONG)
#define BitsPerFormat(Format)
VOID FASTCALL RECTL_vMakeWellOrdered(_Inout_ RECTL *prcl)
FORCEINLINE LONG RECTL_lGetWidth(_In_ const RECTL *prcl)
FORCEINLINE LONG RECTL_lGetHeight(_In_ const RECTL *prcl)
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG iTransColor
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo