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 <krh@bitplanet.net>
This commit is contained in:
parent
e23bfdb329
commit
d7522ed130
|
@ -154,6 +154,9 @@ Additions to the EGL 1.4 Specification:
|
|||
from a wl_buffer in any way (such as glTexImage2D, binding the
|
||||
EGLImage as a renderbuffer etc) will result in undefined behavior.
|
||||
|
||||
Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and
|
||||
EGL_HEIGHT to query the width and height of the wl_buffer.
|
||||
|
||||
Issues
|
||||
|
||||
Revision History
|
||||
|
@ -168,4 +171,5 @@ Revision History
|
|||
formats. (Kristian Høgsberg)
|
||||
Version 4, July 19, 2012
|
||||
Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA,
|
||||
and just define the new YUV texture formats. (Kristian Høgsberg)
|
||||
and just define the new YUV texture formats. Add support for
|
||||
EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
Loading…
Reference in New Issue