summaryrefslogtreecommitdiff
path: root/src/drmmode_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drmmode_display.c')
-rw-r--r--src/drmmode_display.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 4052a6e..5e9913a 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -423,21 +423,38 @@ convert_cursor(CARD32 *dst, CARD32 *src, int dw, int sw)
}
}
-static void
-drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
+static Bool
+load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
{
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
struct fd_bo *cursor = drmmode_crtc->cursor;
drmmode_ptr drmmode = drmmode_crtc->drmmode;
void *ptr = fd_bo_map(cursor);
+ int ret = 0;
convert_cursor(ptr, image, 64, 64);
if (drmmode_crtc->cursor_visible) {
- drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
+ ret = drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
fd_bo_handle(cursor), 64, 64);
}
+
+ return ret == 0;
+}
+
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,902,0)
+static Bool
+drmmode_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
+{
+ return load_cursor_argb(crtc, image);
+}
+#else
+static void
+drmmode_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
+{
+ load_cursor_argb(crtc, image);
}
+#endif
static void
drmmode_hide_cursor (xf86CrtcPtr crtc)