15#define DEC_OR_INC(var, decTrue, amount) \
16 ((var) = (decTrue) ? ((var) - (amount)) : ((var) + (amount)))
29 return (*
addr >> ((1-(
x&1))<<2)) & 0x0f;
51 int lDelta = SurfObj->
lDelta;
66 PBYTE SourceBits_24BPP, SourceLine_24BPP;
67 PBYTE DestBits, DestLine, SourceBits_8BPP, SourceLine_8BPP;
68 PBYTE SourceBits, SourceLine;
69 BOOLEAN bTopToBottom, bLeftToRight;
71 DPRINT(
"DIB_4BPP_BitBltSrcCopy: SrcSurf cx/cy (%d/%d), DestSuft cx/cy (%d/%d) dstRect: (%d,%d)-(%d,%d)\n",
85 DPRINT(
"BPP is '%d/%d' & BltInfo->SourcePoint.x is '%d' & BltInfo->SourcePoint.y is '%d'.\n",
95 DPRINT(
"1BPP Case Selected with DestRect Width of '%d'.\n",
109 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
136 DPRINT(
"4BPP Case Selected with DestRect Width of '%d'.\n",
149 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
179 DPRINT(
"8BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
195 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
197 SourceLine_8BPP = SourceBits_8BPP;
212 if (
f2 == 1) { DestLine++;
f2 = 0; }
else {
f2 = 1; }
221 DPRINT(
"16BPP Case Selected with DestRect Width of '%d'.\n",
224 DPRINT(
"BMF_16BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
242 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
244 SourceBits = SourceLine;
255 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
257 xColor = *((
PWORD) SourceBits);
260 if(
f2 == 1) { DestBits++;
f2 = 0; }
else {
f2 = 1; }
272 DPRINT(
"24BPP-dstRect: (%d,%d)-(%d,%d) and Width of '%d'.\n",
288 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
290 SourceLine_24BPP = SourceBits_24BPP;
302 xColor = (*(SourceLine_24BPP + 2) << 0x10) +
303 (*(SourceLine_24BPP + 1) << 0x08) +
304 (*(SourceLine_24BPP));
307 if(
f2 == 1) { DestLine++;
f2 = 0; }
else {
f2 = 1; }
308 DEC_OR_INC(SourceLine_24BPP, bLeftToRight, 3);
316 DPRINT(
"32BPP Case Selected with DestRect Width of '%d'.\n",
331 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
333 SourceBits = SourceLine;
344 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
346 xColor = *((
PDWORD) SourceBits);
349 if(
f2 == 1) { DestBits++;
f2 = 0; }
else {
f2 = 1; }
360 DbgPrint(
"DIB_4BPP_BitBltSrcCopy: Unhandled Source BPP: %u\n",
371 LONG SourceX, SourceY;
378 static const ULONG ExpandSolidColor[16] =
419 for (DestY = BltInfo->
DestRect.
top; DestY < BltInfo->DestRect.bottom; DestY++)
450 for (; DestX < RoundedRight; DestX += 8, SourceX += 8, DestBits++)
515 for (DestY = DestRect->
top; DestY < DestRect->
bottom; DestY++)
BOOLEAN DIB_4BPP_ColorFill(SURFOBJ *DestSurface, RECTL *DestRect, ULONG color)
VOID DIB_4BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
ULONG DIB_4BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
BOOLEAN DIB_4BPP_BitBltSrcCopy(PBLTINFO BltInfo)
VOID DIB_4BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
#define DEC_OR_INC(var, decTrue, amount)
BOOLEAN DIB_4BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf, RECTL *DestRect, RECTL *SourceRect, XLATEOBJ *ColorTranslation, ULONG iTransColor)
VOID DIB_4BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
BOOLEAN DIB_4BPP_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)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
XLATEOBJ * XlateSourceToDest
ULONG DIB_DoRop(ULONG Rop, ULONG Dest, ULONG Source, ULONG Pattern)
#define DIB_GetSource(SourceSurf, sx, sy, ColorTranslation)
ULONG DIB_1BPP_GetPixel(SURFOBJ *, LONG, LONG)
#define DIB_GetSourceIndex(SourceSurf, sx, sy)
#define BitsPerFormat(Format)
VOID FASTCALL RECTL_vMakeWellOrdered(_Inout_ 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