21 *(
addr + 2) = (
c >> 16) & 0xFF;
53 PBYTE SourceBits, DestBits, SourceLine, DestLine;
54 PBYTE SourceBits_4BPP, SourceLine_4BPP;
55 PWORD SourceBits_16BPP, SourceLine_16BPP;
65 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
85 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
87 SourceLine_4BPP = SourceBits_4BPP;
96 *DestLine++ = xColor & 0xff;
99 if(
f1 == 1) { SourceLine_4BPP++;
f1 = 0; }
else {
f1 = 1; }
112 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
114 SourceBits = SourceLine;
117 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
120 *DestBits = xColor & 0xff;
121 *(
PWORD)(DestBits + 1) = (
WORD)(xColor >> 8);
134 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
136 SourceLine_16BPP = SourceBits_16BPP;
142 *DestLine++ = xColor & 0xff;
159 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
183 for (
j=BltInfo->
DestRect.
top; j<BltInfo->DestRect.bottom;
j++)
201 for (
j = BltInfo->
DestRect.
top; j < BltInfo->DestRect.bottom;
j++)
203 SourceBits = SourceLine;
206 for (
i = BltInfo->
DestRect.
left; i < BltInfo->DestRect.right;
i++)
209 *DestBits = xColor & 0xff;
210 *(
PWORD)(DestBits + 1) = (
WORD)(xColor >> 8);
232 LONG SourceX, SourceY;
262 for (DestY = BltInfo->
DestRect.
top; DestY < BltInfo->DestRect.bottom; DestY++)
266 for (DestX = BltInfo->
DestRect.
left; DestX < BltInfo->DestRect.right; DestX++, DestBits += 3, SourceX++)
268 Dest = *((
PUSHORT)DestBits) + (*(DestBits + 2) << 16);
281 *(
PUSHORT)(DestBits) = Dest & 0xFFFF;
282 *(DestBits + 2) = (
BYTE)(Dest >> 16);
304 #if defined(_M_IX86) && !defined(_MSC_VER) 310 for (DestY = DestRect->
top; DestY< DestRect->
bottom; DestY++)
350 "andl $0xffffff, %%ecx\n\t" 351 "movl %%ecx, %%ebx\n\t" 353 "movl %%ecx, %%eax\n\t" 354 "shll $16, %%eax\n\t" 355 "orl %%eax, %%ebx\n\t" 356 "movl %%ecx, %%edx\n\t" 358 "movl %%ecx, %%eax\n\t" 359 "shrl $16, %%eax\n\t" 360 "orl %%eax, %%edx\n\t" 361 "movl %%ecx, %%eax\n\t" 362 "shll $24, %%eax\n\t" 363 "orl %%ecx, %%eax\n\t" 368 "movl %%eax, (%%edi)\n\t" 369 "movl %%ebx, 4(%%edi)\n\t" 370 "movl %%edx, 8(%%edi)\n\t" 371 "addl $12, %%edi\n\t" 377 :
"%eax",
"%ebx",
"%ecx",
"%edx",
"%edi");
390 for (DestY = DestRect->
top; DestY< DestRect->
bottom; DestY++)
403 LONG X,
Y, SourceX, SourceY = 0, wd;
412 DstHeight = DestRect->
bottom - DestRect->
top;
413 DstWidth = DestRect->
right - DestRect->
left;
414 SrcHeight = SourceRect->
bottom - SourceRect->
top;
415 SrcWidth = SourceRect->
right - SourceRect->
left;
418 (DestRect->
left * 3) +
424 SourceY = SourceRect->
top+(
Y - DestRect->
top) * SrcHeight / DstHeight;
427 SourceX = SourceRect->
left+(
X - DestRect->
left) * SrcWidth / DstWidth;
428 if (SourceX >= 0 && SourceY >= 0 &&
435 *(
PUSHORT)(DestBits) = Dest & 0xFFFF;
436 *(DestBits + 2) = (
BYTE)(Dest >> 16);
457 static __inline
UCHAR 475 DPRINT(
"DIB_24BPP_AlphaBlend: srcRect: (%d,%d)-(%d,%d), dstRect: (%d,%d)-(%d,%d)\n",
482 DPRINT1(
"BlendOp != AC_SRC_OVER\n");
498 DPRINT1(
"Source bitmap must be 32bpp when AC_SRC_ALPHA is set\n");
503 (DestRect->
left * 3));
507 SrcY = SourceRect->
top;
508 while (++Rows <= DestRect->
bottom - DestRect->
top)
511 SrcX = SourceRect->
left;
512 while (++Cols <= DestRect->
right - DestRect->
left)
527 DstPixel.
col.red =
Clamp8((*
Dst * (255 - Alpha)) / 255 + SrcPixel.
col.red) ;
528 DstPixel.
col.green =
Clamp8((*(
Dst+1) * (255 - Alpha) / 255 + SrcPixel.
col.green)) ;
529 DstPixel.
col.blue =
Clamp8((*(
Dst+2) * (255 - Alpha)) / 255 + SrcPixel.
col.blue) ;
530 *
Dst++ = DstPixel.
col.red;
531 *
Dst++ = DstPixel.
col.green;
532 *
Dst++ = DstPixel.
col.blue;
533 SrcX = SourceRect->
left + (Cols*(SourceRect->
right - SourceRect->
left))/(DestRect->
right - DestRect->
left);
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
BOOLEAN DIB_24BPP_BitBlt(PBLTINFO BltInfo)
XLATEOBJ * XlateSourceToDest
VOID DIB_24BPP_HLine(SURFOBJ *, LONG, LONG, LONG, ULONG)
unsigned char altnotmask[2]
#define BitsPerFormat(Format)
GLint GLint GLint GLint GLint x
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG iTransColor
#define RtlMoveMemory(Destination, Source, Length)
BOOLEAN DIB_24BPP_AlphaBlend(SURFOBJ *Dest, SURFOBJ *Source, RECTL *DestRect, RECTL *SourceRect, CLIPOBJ *ClipRegion, XLATEOBJ *ColorTranslation, BLENDOBJ *BlendObj)
#define DIB_GetSource(SourceSurf, sx, sy, ColorTranslation)
__asm__("\t.globl GetPhys\n" "GetPhys:\t\n" "mflr 0\n\t" "stwu 0,-16(1)\n\t" "mfmsr 5\n\t" "andi. 6,5,0xffef\n\t" "mtmsr 6\n\t" "isync\n\t" "sync\n\t" "lwz 3,0(3)\n\t" "mtmsr 5\n\t" "isync\n\t" "sync\n\t" "lwz 0,0(1)\n\t" "addi 1,1,16\n\t" "mtlr 0\n\t" "blr")
#define DIB_GetSourceIndex(SourceSurf, sx, sy)
BOOLEAN DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
VOID DIB_24BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
static const BLENDFUNCTION BlendFunc
#define ROP4_USES_SOURCE(Rop4)
ULONG DIB_DoRop(ULONG Rop, ULONG Dest, ULONG Source, ULONG Pattern)
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
ULONG DIB_24BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
GLenum const GLvoid * addr
ULONG DIB_1BPP_GetPixel(SURFOBJ *, LONG, LONG)
BOOLEAN DIB_24BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf, RECTL *DestRect, RECTL *SourceRect, XLATEOBJ *ColorTranslation, ULONG iTransColor)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
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
#define ROP4_USES_PATTERN(Rop4)
struct NICEPIXEL32::@4878 col
GLint GLint GLint GLint GLint GLint y
BOOLEAN DIB_24BPP_ColorFill(SURFOBJ *DestSurface, RECTL *DestRect, ULONG color)
GLclampf GLclampf GLclampf alpha
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
static __inline UCHAR Clamp8(ULONG val)
VOID DIB_24BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
BLENDFUNCTION BlendFunction