templ.target = PIPE_TEXTURE_2D;
templ.format = pf;
templ.bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW;
- templ.width0 = buffer->buffer.width;
- templ.height0 = buffer->buffer.height;
+ templ.width0 = buffer->width;
+ templ.height0 = buffer->height;
templ.depth0 = 1;
templ.array_size = 1;
static struct pipe_resource *
wayland_drm_bufmgr_wl_buffer_get_resource(struct native_display *ndpy,
- struct wl_buffer *buffer)
+ struct wl_resource *buffer_resource)
{
+ struct wayland_drm_bufmgr *bufmgr;
+ struct wl_drm_buffer *buffer;
+
+ bufmgr = wayland_drm_bufmgr(ndpy->wayland_bufmgr);
+ buffer = wayland_drm_buffer_get(bufmgr->wl_server_drm, buffer_resource);
+
+ if (!buffer)
+ return NULL;
+
return wayland_drm_buffer_get_buffer(buffer);
}
-static EGLBoolean
+static boolean
wayland_drm_bufmgr_query_buffer(struct native_display *ndpy,
- struct wl_buffer *_buffer,
- EGLint attribute, EGLint *value)
+ struct wl_resource *buffer_resource,
+ int attribute, int *value)
{
- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
- struct pipe_resource *resource = buffer->driver_buffer;
+ struct wayland_drm_bufmgr *bufmgr;
+ struct wl_drm_buffer *buffer;
+ struct pipe_resource *resource;
+
+ bufmgr = wayland_drm_bufmgr(ndpy->wayland_bufmgr);
+ buffer = wayland_drm_buffer_get(bufmgr->wl_server_drm, buffer_resource);
+ if (!buffer)
+ return FALSE;
- if (!wayland_buffer_is_drm(&buffer->buffer))
- return EGL_FALSE;
+ resource = buffer->driver_buffer;
switch (attribute) {
case EGL_TEXTURE_FORMAT:
switch (resource->format) {
case PIPE_FORMAT_B8G8R8A8_UNORM:
*value = EGL_TEXTURE_RGBA;
- return EGL_TRUE;
+ return TRUE;
case PIPE_FORMAT_B8G8R8X8_UNORM:
*value = EGL_TEXTURE_RGB;
- return EGL_TRUE;
+ return TRUE;
default:
- return EGL_FALSE;
+ return FALSE;
}
case EGL_WIDTH:
- *value = buffer->buffer.width;
- return EGL_TRUE;
+ *value = buffer->width;
+ return TRUE;
case EGL_HEIGHT:
- *value = buffer->buffer.height;
- return EGL_TRUE;
+ *value = buffer->height;
+ return TRUE;
default:
- return EGL_FALSE;
+ return FALSE;
}
}