54 pgp = &ppdev->Pointer;
61 ppdev->SafetyRemoveCount++;
63 if (ppdev->SafetyRemoveLevel != 0)
68 if (HazardX1 > HazardX2)
74 if (HazardY1 > HazardY2)
86 ppdev->SafetyRemoveLevel = ppdev->SafetyRemoveCount;
88 ppdev->pfnMovePointer(&ppdev->pSurface->SurfObj, -1, -1,
NULL);
110 pgp = &ppdev->Pointer;
117 if (--ppdev->SafetyRemoveCount >= ppdev->SafetyRemoveLevel)
123 ppdev->pfnMovePointer(&ppdev->pSurface->SurfObj,
133 ppdev->SafetyRemoveLevel = 0;
154 pgp = &ppdev->Pointer;
165 DPRINT(
"No SaveSurface!\n");
178 ptlSave.
x = rclDest.
left -
pt.x;
179 ptlSave.
y = rclDest.
top -
pt.y;
202 RECTL rclSurf, rclPointer;
207 pgp = &ppdev->Pointer;
231 rclPointer.
top = rclSurf.
top -
pt.y;
309 rclPointer.top += pgp->
Size.
cy;
348 SIZEL sizel = {0, 0};
390 if (!psurfSave)
goto failure;
410 if (!psurfColor)
goto failure;
428 DPRINT1(
"Screen surface and cursor color bitmap format don't match!.\n");
439 if (!psurfColor)
goto failure;
468 if (!psurfMask)
goto failure;
635 if (pfnSetPointerShape)
642 ulResult = pfnSetPointerShape(
pso,
655 bHardwarePointer =
TRUE;
657 bSoftwarePointer = !bHardwarePointer;
660 if (bSoftwarePointer)
688 if (bSoftwarePointer)
691 ppdev->
flFlags &= ~PDEV_SOFTWARE_POINTER;
693 if (bHardwarePointer)
696 ppdev->
flFlags &= ~PDEV_HARDWARE_POINTER;
714 PSURFACE psurf, psurfMask, psurfColor;
721 DPRINT1(
"Failed to lock the DC.\n");
728 psurf = pdc->ppdev->pSurface;
731 DPRINT1(
"DC has no surface.\n");
775 &pdc->ppdev->Pointer.Exclude,
811 DPRINT1(
"Failed to lock the DC.\n");
820 if(pdc->ppdev->SafetyRemoveLevel == 0)
822 SURFOBJ*
pso = &pdc->ppdev->pSurface->SurfObj;
825 prcl = &pdc->ppdev->Pointer.Exclude;
829 pdc->ppdev->pfnMovePointer(
pso,
x,
y,
prcl);
836 pdc->ppdev->pfnMovePointer(
pso,
x,
y -
pso->sizlBitmap.cy,
NULL);
#define R3_OPINDEX_SRCCOPY
BOOL APIENTRY IntEngCopyBits(SURFOBJ *psoTrg, SURFOBJ *psoSrc, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc)
#define _Requires_lock_held_(lock)
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
FORCEINLINE PDC DC_LockDc(HDC hdc)
#define __drv_preferredFunction(func, why)
VOID WINAPI EngReleaseSemaphore(IN HSEMAPHORE hsem)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
#define ROP4_FROM_INDEX(index)
PFN_DrvMovePointer pfnMovePointer
struct _PALETTE *const ppal
#define WIDTH_BYTES_ALIGN32(cx, bpp)
#define CONTAINING_RECORD(address, type, field)
BOOL APIENTRY IntEngAlphaBlend(_Inout_ SURFOBJ *psoDest, _In_ SURFOBJ *psoSource, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ RECTL *prclDest, _In_ RECTL *prclSrc, _In_ BLENDOBJ *pBlendObj)
BOOL APIENTRY IntEngBitBlt(SURFOBJ *psoTrg, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *pptlBrush, ROP4 Rop4)
VOID NTAPI IntShowMousePointer(_Inout_ PDEVOBJ *ppdev, _Inout_ SURFOBJ *psoDest)
ULONG NTAPI GreSetPointerShape(_In_ HDC hdc, _In_opt_ HBITMAP hbmMask, _In_opt_ HBITMAP hbmColor, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ FLONG fl)
_Requires_lock_held_ ppdev BOOL NTAPI MouseSafetyOnDrawStart(_Inout_ PPDEVOBJ ppdev, _In_ LONG HazardX1, _In_ LONG HazardY1, _In_ LONG HazardX2, _In_ LONG HazardY2)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _Reserved_ XLATEOBJ _In_ FLONG fl
VOID APIENTRY EngMovePointer(_In_ SURFOBJ *pso, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl)
VOID NTAPI GreMovePointer(_In_ HDC hdc, _In_ LONG x, _In_ LONG y)
ULONG NTAPI IntEngSetPointerShape(_In_ SURFOBJ *pso, _In_opt_ SURFOBJ *psoMask, _In_opt_ SURFOBJ *psoColor, _In_opt_ XLATEOBJ *pxlo, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl, _In_ FLONG fl)
VOID NTAPI IntHideMousePointer(_Inout_ PDEVOBJ *ppdev, _Inout_ SURFOBJ *psoDest)
_Requires_lock_held_ ppdev BOOL NTAPI MouseSafetyOnDrawEnd(_Inout_ PPDEVOBJ ppdev)
ULONG APIENTRY EngSetPointerShape(_In_ SURFOBJ *pso, _In_opt_ SURFOBJ *psoMask, _In_opt_ SURFOBJ *psoColor, _In_opt_ XLATEOBJ *pxlo, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl, _In_ FLONG fl)
#define SURFACE_ShareUnlockSurface(pBMObj)
#define GDIDEVFUNCS(SurfObj)
#define SURFACE_ShareLockSurface(hBMObj)
#define BitsPerFormat(Format)
#define PALETTE_ShareLockPalette(hpal)
#define PALETTE_ShareUnlockPalette(ppal)
FN_DrvSetPointerShape * PFN_DrvSetPointerShape
ENGAPI BOOL APIENTRY EngDeleteSurface(_In_ _Post_ptr_invalid_ HSURF hsurf)
_In_ HANDLE _In_ SURFOBJ * pso
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG xHot
ENGAPI VOID APIENTRY EngAcquireSemaphore(_Inout_ HSEMAPHORE hsem)
ENGAPI HBITMAP APIENTRY EngCreateBitmap(_In_ SIZEL sizl, _In_ LONG lWidth, _In_ ULONG iFormat, _In_ FLONG fl, _In_opt_ PVOID pvBits)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG _In_ LONG yHot
#define SPS_ACCEPT_NOEXCLUDE
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoMask
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoColor
typedef HSURF(APIENTRY FN_DrvEnableSurface)(_In_ DHPDEV dhpdev)
_In_ ULONG _In_ CLIPOBJ _In_ RECTL * prcl
VOID NTAPI EXLATEOBJ_vInitialize(_Out_ PEXLATEOBJ pexlo, _In_opt_ PALETTE *ppalSrc, _In_opt_ PALETTE *ppalDst, _In_ COLORREF crSrcBackColor, _In_ COLORREF crDstBackColor, _In_ COLORREF crDstForeColor)
VOID NTAPI EXLATEOBJ_vCleanup(_Inout_ PEXLATEOBJ pexlo)