diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/egl.c | 39 | ||||
-rw-r--r-- | render/gles2/texture.c | 29 | ||||
-rw-r--r-- | render/wlr_texture.c | 8 |
3 files changed, 0 insertions, 76 deletions
diff --git a/render/egl.c b/render/egl.c index 9e6c366e..5074e684 100644 --- a/render/egl.c +++ b/render/egl.c @@ -241,14 +241,6 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display) { "eglQueryDmaBufModifiersEXT"); } - if (check_egl_ext(display_exts_str, "EGL_MESA_image_dma_buf_export")) { - egl->exts.image_dma_buf_export_mesa = true; - load_egl_proc(&egl->procs.eglExportDMABUFImageQueryMESA, - "eglExportDMABUFImageQueryMESA"); - load_egl_proc(&egl->procs.eglExportDMABUFImageMESA, - "eglExportDMABUFImageMESA"); - } - if (check_egl_ext(display_exts_str, "EGL_WL_bind_wayland_display")) { egl->exts.bind_wayland_display_wl = true; load_egl_proc(&egl->procs.eglBindWaylandDisplayWL, @@ -699,37 +691,6 @@ const struct wlr_drm_format_set *wlr_egl_get_dmabuf_render_formats( return &egl->dmabuf_render_formats; } -bool wlr_egl_export_image_to_dmabuf(struct wlr_egl *egl, EGLImageKHR image, - int32_t width, int32_t height, uint32_t flags, - struct wlr_dmabuf_attributes *attribs) { - memset(attribs, 0, sizeof(struct wlr_dmabuf_attributes)); - - if (!egl->exts.image_dma_buf_export_mesa) { - return false; - } - - // Only one set of modifiers is returned for all planes - if (!egl->procs.eglExportDMABUFImageQueryMESA(egl->display, image, - (int *)&attribs->format, &attribs->n_planes, &attribs->modifier)) { - return false; - } - if (attribs->n_planes > WLR_DMABUF_MAX_PLANES) { - wlr_log(WLR_ERROR, "EGL returned %d planes, but only %d are supported", - attribs->n_planes, WLR_DMABUF_MAX_PLANES); - return false; - } - - if (!egl->procs.eglExportDMABUFImageMESA(egl->display, image, attribs->fd, - (EGLint *)attribs->stride, (EGLint *)attribs->offset)) { - return false; - } - - attribs->width = width; - attribs->height = height; - attribs->flags = flags; - return true; -} - static bool device_has_name(const drmDevice *device, const char *name) { for (size_t i = 0; i < DRM_NODE_MAX; i++) { if (!(device->available_nodes & (1 << i))) { diff --git a/render/gles2/texture.c b/render/gles2/texture.c index 94dcc022..fe7518d0 100644 --- a/render/gles2/texture.c +++ b/render/gles2/texture.c @@ -98,34 +98,6 @@ static bool gles2_texture_write_pixels(struct wlr_texture *wlr_texture, return true; } -static bool gles2_texture_to_dmabuf(struct wlr_texture *wlr_texture, - struct wlr_dmabuf_attributes *attribs) { - struct wlr_gles2_texture *texture = gles2_get_texture(wlr_texture); - - if (!texture->image) { - assert(texture->target == GL_TEXTURE_2D); - - if (!texture->renderer->egl->exts.image_base_khr) { - return false; - } - - texture->image = texture->renderer->egl->procs.eglCreateImageKHR( - texture->renderer->egl->display, texture->renderer->egl->context, EGL_GL_TEXTURE_2D_KHR, - (EGLClientBuffer)(uintptr_t)texture->tex, NULL); - if (texture->image == EGL_NO_IMAGE_KHR) { - return false; - } - } - - uint32_t flags = 0; - if (texture->inverted_y) { - flags |= WLR_DMABUF_ATTRIBUTES_FLAGS_Y_INVERT; - } - - return wlr_egl_export_image_to_dmabuf(texture->renderer->egl, texture->image, - wlr_texture->width, wlr_texture->height, flags, attribs); -} - static void gles2_texture_destroy(struct wlr_texture *wlr_texture) { if (wlr_texture == NULL) { return; @@ -152,7 +124,6 @@ static void gles2_texture_destroy(struct wlr_texture *wlr_texture) { static const struct wlr_texture_impl texture_impl = { .is_opaque = gles2_texture_is_opaque, .write_pixels = gles2_texture_write_pixels, - .to_dmabuf = gles2_texture_to_dmabuf, .destroy = gles2_texture_destroy, }; diff --git a/render/wlr_texture.c b/render/wlr_texture.c index e9a3e3b4..0fd79908 100644 --- a/render/wlr_texture.c +++ b/render/wlr_texture.c @@ -65,11 +65,3 @@ bool wlr_texture_write_pixels(struct wlr_texture *texture, return texture->impl->write_pixels(texture, stride, width, height, src_x, src_y, dst_x, dst_y, data); } - -bool wlr_texture_to_dmabuf(struct wlr_texture *texture, - struct wlr_dmabuf_attributes *attribs) { - if (!texture->impl->to_dmabuf) { - return false; - } - return texture->impl->to_dmabuf(texture, attribs); -} |