summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-07-30 14:23:49 +0200
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-07-30 17:09:56 +0200
commit92314df55789efad03686bb09c4c4e0ec7eaab8a (patch)
tree7d00d004d8052a969e20da7db9c09e8071d4da3e
parent7d0fa94da13a88a9119e2b5e634c6f3be2dc4ae6 (diff)
wayland: support EGL_TEXTURE_STRUCTURE_WL queries for wl_buffer.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
-rw-r--r--include/EGL/eglmesaext.h5
-rw-r--r--src/egl/drivers/dri2/egl_dri2.c15
2 files changed, 20 insertions, 0 deletions
diff --git a/include/EGL/eglmesaext.h b/include/EGL/eglmesaext.h
index d476d18a27..d08ba093be 100644
--- a/include/EGL/eglmesaext.h
+++ b/include/EGL/eglmesaext.h
@@ -115,6 +115,11 @@ typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDRMDISPLAYMESA) (int fd);
#define EGL_WAYLAND_BUFFER_WL 0x31D5 /* eglCreateImageKHR target */
#define EGL_WAYLAND_PLANE_WL 0x31D6 /* eglCreateImageKHR target */
+#define EGL_TEXTURE_STRUCTURE_WL 0x31DA /* eglCreateImageKHR target */
+#define EGL_TEXTURE_STRUCTURE_FRAME_WL 0x0000
+#define EGL_TEXTURE_STRUCTURE_TOP_FIELD_WL 0x0001
+#define EGL_TEXTURE_STRUCTURE_BOTTOM_FIELD_WL 0x0002
+
#define EGL_TEXTURE_Y_U_V_WL 0x31D7
#define EGL_TEXTURE_Y_UV_WL 0x31D8
#define EGL_TEXTURE_Y_XUXV_WL 0x31D9
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 4ae28564cf..738c51c5cf 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -1437,6 +1437,21 @@ dri2_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *disp,
case EGL_TEXTURE_FORMAT:
*value = format->components;
return EGL_TRUE;
+ case EGL_TEXTURE_STRUCTURE_WL:
+ switch (buffer->picture_structure) {
+ case WL_DRM_PICTURE_STRUCTURE_FRAME:
+ *value = EGL_TEXTURE_STRUCTURE_FRAME_WL;
+ break;
+ case WL_DRM_PICTURE_STRUCTURE_TOP_FIELD:
+ *value = EGL_TEXTURE_STRUCTURE_TOP_FIELD_WL;
+ break;
+ case WL_DRM_PICTURE_STRUCTURE_BOTTOM_FIELD:
+ *value = EGL_TEXTURE_STRUCTURE_BOTTOM_FIELD_WL;
+ break;
+ default:
+ return EGL_FALSE;
+ }
+ return EGL_TRUE;
case EGL_WIDTH:
*value = buffer->buffer.width;
break;