diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-09-06 13:02:32 +0200 |
|---|---|---|
| committer | Hans de Goede <hdegoede@redhat.com> | 2016-09-13 10:26:58 +0200 |
| commit | 71fecc84e9ceb11ff61c912bdaa3fc959ec36bef (patch) | |
| tree | 8247180bf28edb39f02f6e2222e30506453233e8 | |
| parent | 2eefb53f58854ef9d34859583207ec37d3c3047a (diff) | |
xf86Cursor: Add xf86CheckHWCursor() helper function
This is a preparation patch for adding prime hw-cursor support.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
| -rw-r--r-- | hw/xfree86/ramdac/xf86Cursor.c | 9 | ||||
| -rw-r--r-- | hw/xfree86/ramdac/xf86CursorPriv.h | 1 | ||||
| -rw-r--r-- | hw/xfree86/ramdac/xf86HWCurs.c | 12 |
3 files changed, 14 insertions, 8 deletions
diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c index dda4349cd..0c5d6c9bd 100644 --- a/hw/xfree86/ramdac/xf86Cursor.c +++ b/hw/xfree86/ramdac/xf86Cursor.c @@ -339,14 +339,7 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs, if (infoPtr->pScrn->vtSema && xorg_list_is_empty(&pScreen->pixmap_dirty_list) && (ScreenPriv->ForceHWCursorCount || - (( - cursor->bits->argb && - infoPtr->UseHWCursorARGB && - (*infoPtr->UseHWCursorARGB)(pScreen, cursor)) || - (cursor->bits->argb == 0 && - (cursor->bits->height <= infoPtr->MaxHeight) && - (cursor->bits->width <= infoPtr->MaxWidth) && - (!infoPtr->UseHWCursor || (*infoPtr->UseHWCursor) (pScreen, cursor)))))) { + xf86CheckHWCursor(pScreen, cursor, infoPtr))) { if (ScreenPriv->SWCursor) /* remove the SW cursor */ (*ScreenPriv->spriteFuncs->SetCursor) (pDev, pScreen, diff --git a/hw/xfree86/ramdac/xf86CursorPriv.h b/hw/xfree86/ramdac/xf86CursorPriv.h index f34c1c7fc..397d2a14b 100644 --- a/hw/xfree86/ramdac/xf86CursorPriv.h +++ b/hw/xfree86/ramdac/xf86CursorPriv.h @@ -43,6 +43,7 @@ void xf86MoveCursor(ScreenPtr pScreen, int x, int y); void xf86RecolorCursor(ScreenPtr pScreen, CursorPtr pCurs, Bool displayed); Bool xf86InitHardwareCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr); +Bool xf86CheckHWCursor(ScreenPtr pScreen, CursorPtr cursor, xf86CursorInfoPtr infoPtr); extern _X_EXPORT DevPrivateKeyRec xf86CursorScreenKeyRec; #define xf86CursorScreenKey (&xf86CursorScreenKeyRec) diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c index 84febe0df..1b85e6346 100644 --- a/hw/xfree86/ramdac/xf86HWCurs.c +++ b/hw/xfree86/ramdac/xf86HWCurs.c @@ -120,6 +120,18 @@ xf86InitHardwareCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr) } Bool +xf86CheckHWCursor(ScreenPtr pScreen, CursorPtr cursor, xf86CursorInfoPtr infoPtr) +{ + return + (cursor->bits->argb && infoPtr->UseHWCursorARGB && + infoPtr->UseHWCursorARGB(pScreen, cursor)) || + (cursor->bits->argb == 0 && + cursor->bits->height <= infoPtr->MaxHeight && + cursor->bits->width <= infoPtr->MaxWidth && + (!infoPtr->UseHWCursor || infoPtr->UseHWCursor(pScreen, cursor))); +} + +Bool xf86SetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y) { xf86CursorScreenPtr ScreenPriv = |
