On 06/25/2014 05:09 PM, Alvaro Fernando García wrote:
Init cursor size to 64x64 if drmGetCap() fails.
Use Mesa GBM_BO_USE_CURSOR define (which removes 64x64 restriction)
Signed-off-by: Alvaro Fernando García <[email protected]>
---
src/compositor-drm.c | 43 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 36 insertions(+), 7 deletions(-)
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 7d514e4..61ddea1 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -55,6 +55,14 @@
#define DRM_CAP_TIMESTAMP_MONOTONIC 0x6
#endif
+#ifndef DRM_CAP_CURSOR_WIDTH
+#define DRM_CAP_CURSOR_WIDTH 0x8
+#endif
+
+#ifndef DRM_CAP_CURSOR_HEIGHT
+#define DRM_CAP_CURSOR_HEIGHT 0x9
+#endif
+
static int option_current_mode = 0;
enum output_config {
[...]
@@ -1554,15 +1577,21 @@ drm_output_init_egl(struct drm_output *output, struct
drm_compositor *ec)
return -1;
}
- flags = GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE;
+#ifdef GBM_BO_USE_CURSOR
+ flags = GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE;
+#else
+ flags = GBM_BO_USE_WRITE;
+ if (ec->cursor_width == 64 && ec->cursor_height == 64)
+ flags = GBM_BO_USE_CURSOR_64X64 | flags;
+#endif
Do we really need this? GBM_BO_USE_CURSOR has the same value as the old
_64X64 flag. GBM will check if the dimensions are 64x64 and fail
otherwise. So this could just be
flags = GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE;
and a
#ifndef GBM_BO_USE_CURSOR
#define GBM_BO_USE_CURSOR GBM_BO_USE_CURSOR_64X64
#endif
earlier in the file.
Cheers,
Ander
for (i = 0; i < 2; i++) {
if (output->cursor_bo[i])
continue;
output->cursor_bo[i] =
- gbm_bo_create(ec->gbm, 64, 64, GBM_FORMAT_ARGB8888,
- flags);
+ gbm_bo_create(ec->gbm, ec->cursor_width,
ec->cursor_height,
+ GBM_FORMAT_ARGB8888, flags);
}
if (output->cursor_bo[0] == NULL || output->cursor_bo[1] == NULL) {
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel