diff options
author | Kristian Høgsberg <[email protected]> | 2012-07-19 09:02:25 -0400 |
---|---|---|
committer | Kristian Høgsberg <[email protected]> | 2012-07-19 14:03:17 -0400 |
commit | d7522ed13052a3d30bc4faedce04685263f57933 (patch) | |
tree | 9244b66100be41f76dedc4b6a1ab55540ef204a8 /src | |
parent | e23bfdb3298ec43ef895121527fb4d79474d7b1b (diff) |
wayland: Support EGL_WIDTH and EGL_HEIGHT queries for wl_buffer
We're going to make the public wl_buffer struct as small as possible.
Signed-off-by: Kristian Høgsberg <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 9 | ||||
-rw-r--r-- | src/gallium/state_trackers/egl/common/egl_g3d_api.c | 13 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 8d82c19d72f..f86ed0bd5fc 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1414,9 +1414,16 @@ dri2_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *disp, return EGL_FALSE; format = buffer->driver_format; - if (attribute == EGL_TEXTURE_FORMAT) { + switch (attribute) { + case EGL_TEXTURE_FORMAT: *value = format->components; return EGL_TRUE; + case EGL_WIDTH: + *value = buffer->buffer.width; + break; + case EGL_HEIGHT: + *value = buffer->buffer.height; + break; } return EGL_FALSE; diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c b/src/gallium/state_trackers/egl/common/egl_g3d_api.c index b3941f2467b..a73859c0b9d 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c @@ -888,7 +888,8 @@ egl_g3d_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *dpy, if (!wayland_buffer_is_drm(&buffer->buffer)) return EGL_FALSE; - if (attribute == EGL_TEXTURE_FORMAT) { + switch (attribute) { + case EGL_TEXTURE_FORMAT: switch (resource->format) { case PIPE_FORMAT_B8G8R8A8_UNORM: *value = EGL_TEXTURE_RGBA; @@ -899,9 +900,15 @@ egl_g3d_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *dpy, default: return EGL_FALSE; } + case EGL_WIDTH: + *value = buffer->buffer.width; + return EGL_TRUE; + case EGL_HEIGHT: + *value = buffer->buffer.height; + return EGL_TRUE; + default: + return EGL_FALSE; } - - return EGL_FALSE; } #endif /* EGL_WL_bind_wayland_display */ |