458{
459 LONG x,
y, deltax, deltay, xchange, ychange, hx, vy;
471
473 {
476 }
477 else
478 {
481 }
483 {
486 }
487 else
488 {
491 }
492
493 if (!
IntEngEnter(&EnterLeave, DestObj, &DestRect,
FALSE, &Translate, &OutputObj))
494 {
496 }
497
498 if (!Clip)
499 {
501 if (!Clip)
502 {
504 }
506 }
507
512
517
518 if (0 == deltax && 0 == deltay)
519 {
521 }
522
523 if (deltax < 0)
524 {
525 xchange = -1;
526 deltax = - deltax;
528 }
529 else
530 {
531 xchange = 1;
533 }
534
535 if (deltay < 0)
536 {
537 ychange = -1;
538 deltay = - deltay;
540 }
541 else
542 {
543 ychange = 1;
545 }
546
547 if ((
y1 ==
y2) && (cStyles == 0))
548 {
550 do
551 {
553 for (
i = 0;
i < RectEnum.
c && RectEnum.
arcl[
i].
top + Translate.
y <=
y1;
i++)
554 {
556 RectEnum.
arcl[
i].
left + Translate.
x <= hx + deltax &&
560 {
562 OutputObj,
566 }
567 }
568 }
569 while (EnumMore);
570 }
571 else if ((
x1 ==
x2) && (cStyles == 0))
572 {
574 do
575 {
577 for (
i = 0;
i < RectEnum.
c;
i++)
578 {
581 RectEnum.
arcl[
i].
top + Translate.
y <= vy + deltay &&
583 {
588 Pixel);
589 }
590 }
591 }
592 while (EnumMore);
593 }
594 else
595 {
596 if (0 < xchange)
597 {
598 if (0 < ychange)
599 {
600 NWtoSE(OutputObj, Clip,
pbo,
x,
y, deltax, deltay, &Translate);
601 }
602 else
603 {
604 SWtoNE(OutputObj, Clip,
pbo,
x,
y, deltax, deltay, &Translate);
605 }
606 }
607 else
608 {
609 if (0 < ychange)
610 {
611 NEtoSW(OutputObj, Clip,
pbo,
x,
y, deltax, deltay, &Translate);
612 }
613 else
614 {
615 SEtoNW(OutputObj, Clip,
pbo,
x,
y, deltax, deltay, &Translate);
616 }
617 }
618 }
619
620 if (pcoPriv)
621 {
623 }
624
626}
BOOL APIENTRY IntEngEnter(PINTENG_ENTER_LEAVE EnterLeave, SURFOBJ *psoDest, RECTL *DestRect, BOOL ReadOnly, POINTL *Translate, SURFOBJ **ppsoOutput)
BOOL APIENTRY IntEngLeave(PINTENG_ENTER_LEAVE EnterLeave)
void FASTCALL SWtoNE(SURFOBJ *OutputObj, CLIPOBJ *Clip, BRUSHOBJ *pbo, LONG x, LONG y, LONG deltax, LONG deltay, POINTL *Translate)
void FASTCALL NEtoSW(SURFOBJ *OutputObj, CLIPOBJ *Clip, BRUSHOBJ *pbo, LONG x, LONG y, LONG deltax, LONG deltay, POINTL *Translate)
void FASTCALL SEtoNW(SURFOBJ *OutputObj, CLIPOBJ *Clip, BRUSHOBJ *pbo, LONG x, LONG y, LONG deltax, LONG deltay, POINTL *Translate)
void FASTCALL NWtoSE(SURFOBJ *OutputObj, CLIPOBJ *Clip, BRUSHOBJ *pbo, LONG x, LONG y, LONG deltax, LONG deltay, POINTL *Translate)
struct _EBRUSHOBJ * PEBRUSHOBJ
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
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
RECTL arcl[ENUM_RECT_LIMIT]
DIB_FUNCTIONS DibFunctionsForBitmapFormat[]
VOID FASTCALL IntEngUpdateClipRegion(XCLIPOBJ *Clip, ULONG count, const RECTL *pRect, const RECTL *rcBounds)
ENGAPI CLIPOBJ *APIENTRY EngCreateClip(VOID)
ENGAPI VOID APIENTRY EngDeleteClip(_In_ _Post_ptr_invalid_ CLIPOBJ *pco)
ENGAPI BOOL APIENTRY CLIPOBJ_bEnum(_In_ CLIPOBJ *pco, _In_ ULONG cj, _Out_bytecap_(cj) ULONG *pul)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
ENGAPI ULONG APIENTRY CLIPOBJ_cEnumStart(_Inout_ CLIPOBJ *pco, _In_ BOOL bAll, _In_ ULONG iType, _In_ ULONG iDirection, _In_ ULONG cLimit)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ * pbo
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2