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

Reply via email to