32 prcDst->
left =
max(prcSrc1->left, prcSrc2->left);
33 prcDst->right =
min(prcSrc1->right, prcSrc2->right);
35 if (prcDst->left < prcDst->right)
37 prcDst->top =
max(prcSrc1->top, prcSrc2->top);
38 prcDst->bottom =
min(prcSrc1->bottom, prcSrc2->bottom);
40 if (prcDst->top < prcDst->bottom)
return(
TRUE);
60 dx = DestRect->right - DestRect->left;
61 dy = DestRect->bottom - DestRect->top;
63 if (
NULL == ColorTranslation || 0 != (ColorTranslation->flXlate &
XO_TRIVIAL))
67 Source->lDelta, SourcePoint->x % 2);
74 Source->lDelta, ColorTranslation);
88 UCHAR *GDIpos, *initial;
95 GDIpos = Dest->pvScan0 ;
96 dx = DestRect->right - DestRect->left;
97 dy = DestRect->bottom - DestRect->top;
99 if (ColorTranslation ==
NULL)
110 for (
j = SourcePoint->y; j < SourcePoint->
y +
dy;
j++)
113 for (
i = SourcePoint->x; i < SourcePoint->
x +
dx;
i++)
118 GDIpos = initial + Dest->lDelta;
160 dx = DestRect->right - DestRect->left;
161 dy = DestRect->bottom - DestRect->top;
163 alterx = DestRect->left - SourcePoint->x;
164 altery = DestRect->top - SourcePoint->y;
169 if (SourcePoint->y >= DestRect->top)
171 for (
j = SourcePoint->y; j < SourcePoint->
y +
dy;
j++)
173 LONG j2 =
j + altery;
180 for(
j = (SourcePoint->y +
dy - 1);
j >= SourcePoint->y;
j--)
182 LONG j2 =
j + altery;
204 UCHAR SolidColor = 0;
219 Brush->iSolidColor == 0xFFFFFFFF)
251 if ((DestRect->left % 8) != 0)
254 Mask = (1 << (8 - (DestRect->left % 8))) - 1;
255 if ((DestRect->right - DestRect->left) < (8 - (DestRect->left % 8)))
256 Mask &= ~((1 << (8 - (DestRect->right % 8))) - 1);
259 Video = (
PUCHAR)
vidmem + DestRect->top * 80 + (DestRect->left >> 3);
260 for (
i = DestRect->top; i < DestRect->
bottom;
i++, Video += 80)
267 if ((DestRect->right - DestRect->left) < (8 - (DestRect->left % 8)))
282 Left = (DestRect->left + 7) & ~0x7;
283 Length = (DestRect->right >> 3) - (Left >> 3);
284 for (
i = DestRect->top; i < DestRect->
bottom;
i++)
293 char volatile Temp = *Video;
301 if ((DestRect->right % 8) != 0)
304 Mask = ~((1 << (8 - (DestRect->right % 8))) - 1);
306 Video = (
PUCHAR)
vidmem + DestRect->top * 80 + (DestRect->right >> 3);
307 for (
i = DestRect->top; i < DestRect->
bottom;
i++, Video += 80)
341 SourceType =
Source->iType;
359 BltOperation(Dest,
Source, ColorTranslation, DestRect, SourcePoint);
379 dx = DestRect->right - DestRect->left;
380 dy = DestRect->bottom - DestRect->top;
382 if (ColorTranslation ==
NULL)
386 tMask =
Mask->pvScan0;
387 for (
j = 0;
j <
dy;
j++)
391 for (
i = 0;
i <
dx;
i++)
393 if((*lMask &
maskbit[c8]) != 0)
402 tMask +=
Mask->lDelta;
433 if (
Source && SourcePoint)
435 FinalSourcePoint.
x = SourcePoint->x;
436 FinalSourcePoint.
y = SourcePoint->y;
440 FinalSourcePoint.
x = 0;
441 FinalSourcePoint.
y = 0;
472 Ret = (*BltRectFunc)(Dest,
Source,
Mask, ColorTranslation, DestRect,
473 SourcePoint, MaskPoint,
Brush, BrushPoint,
479 Pt.
x = FinalSourcePoint.
x + CombinedRect.
left - DestRect->left;
480 Pt.
y = FinalSourcePoint.
y + CombinedRect.
top - DestRect->top;
481 Ret = (*BltRectFunc)(Dest,
Source,
Mask, ColorTranslation, &CombinedRect,
482 &Pt, MaskPoint,
Brush, BrushPoint,
489 if (DestRect->top <= FinalSourcePoint.
y)
503 for (
i = 0;
i < RectEnum.c;
i++)
506 Pt.x = FinalSourcePoint.
x + CombinedRect.left - DestRect->left;
507 Pt.y = FinalSourcePoint.
y + CombinedRect.top - DestRect->top;
508 Ret = (*BltRectFunc)(Dest,
Source,
Mask, ColorTranslation, &CombinedRect,
509 &Pt, MaskPoint,
Brush, BrushPoint,
rop4) &&
std::map< E_MODULE, HMODULE > mod
#define GET_OPINDEX_FROM_ROP4(Rop4)
#define GET_OPINDEX_FROM_ROP3(Rop3)
#define ROP3_TO_ROP4(Rop3)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
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
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define WRITE_PORT_UCHAR(p, d)
VOID FASTCALL vgaReadScan(int x, int y, int w, void *b)
VOID FASTCALL vgaWriteScan(int x, int y, int w, void *b)
void DIB_BltToVGA(int x, int y, int w, int h, void *b, int Source_lDelta, int StartMod)
INT vgaGetPixel(IN INT x, IN INT y)
void DIB_BltFromVGA(int x, int y, int w, int h, void *b, int Dest_lDelta)
static const RECTL rclEmpty
VOID vgaPutPixel(INT x, INT y, UCHAR c)
void DIB_BltToVGAWithXlate(int x, int y, int w, int h, void *b, int Source_lDelta, XLATEOBJ *Xlate)
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
BOOL APIENTRY VGADDI_BltSrc(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN SURFOBJ *Mask, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint, IN POINTL *MaskOrigin, IN BRUSHOBJ *Brush, IN POINTL *BrushOrigin, IN ROP4 Rop4)
BOOL APIENTRY VGADDI_BltBrush(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN SURFOBJ *MaskSurf, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint, IN POINTL *MaskPoint, IN BRUSHOBJ *Brush, IN POINTL *BrushPoint, IN ROP4 Rop4)
BOOL(* PFN_VGABlt)(SURFOBJ *, SURFOBJ *, XLATEOBJ *, RECTL *, POINTL *)
void DIB_BltToVGA_Fixed(int x, int y, int w, int h, void *b, int Source_lDelta, int mod)
static BOOL FASTCALL VGADDI_IntersectRect(OUT RECTL *prcDst, IN RECTL *prcSrc1, IN RECTL *prcSrc2)
BOOL(APIENTRY * PBLTRECTFUNC)(SURFOBJ *OutputObj, SURFOBJ *InputObj, SURFOBJ *Mask, XLATEOBJ *ColorTranslation, RECTL *OutputRect, POINTL *InputPoint, POINTL *MaskOrigin, BRUSHOBJ *Brush, POINTL *BrushOrigin, ROP4 Rop4)
BOOL VGAtoDIB(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint)
BOOL DFBtoVGA(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint)
BOOL APIENTRY VGADDI_BltMask(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN SURFOBJ *Mask, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint, IN POINTL *MaskPoint, IN BRUSHOBJ *Brush, IN POINTL *BrushPoint, IN ROP4 Rop4)
BOOL VGAtoDFB(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint)
BOOL DIBtoVGA(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint)
BOOL VGAtoVGA(IN SURFOBJ *Dest, IN SURFOBJ *Source, IN XLATEOBJ *ColorTranslation, IN RECTL *DestRect, IN POINTL *SourcePoint)
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
ENGAPI BOOL APIENTRY CLIPOBJ_bEnum(_In_ CLIPOBJ *pco, _In_ ULONG cj, _Out_bytecap_(cj) ULONG *pul)
_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
ENGAPI ULONG APIENTRY CLIPOBJ_cEnumStart(_Inout_ CLIPOBJ *pco, _In_ BOOL bAll, _In_ ULONG iType, _In_ ULONG iDirection, _In_ ULONG cLimit)
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)