render: introduce wlr_renderer_get_dmabuf_render_formats

It describes which DMA-BUF formats can be used to render.
This commit is contained in:
Simon Ser 2020-11-18 14:16:22 +01:00
parent 61612ecb36
commit 5d008d9030
6 changed files with 41 additions and 0 deletions

View file

@ -78,6 +78,7 @@ struct wlr_egl {
struct wl_display *wl_display;
struct wlr_drm_format_set dmabuf_formats;
struct wlr_drm_format_set dmabuf_render_formats;
EGLBoolean **external_only_dmabuf_formats;
};
@ -126,6 +127,11 @@ EGLImageKHR wlr_egl_create_image_from_dmabuf(struct wlr_egl *egl,
* Get DMA-BUF formats suitable for sampling usage.
*/
const struct wlr_drm_format_set *wlr_egl_get_dmabuf_formats(struct wlr_egl *egl);
/**
* Get DMA-BUF formats suitable for rendering usage.
*/
const struct wlr_drm_format_set *wlr_egl_get_dmabuf_render_formats(
struct wlr_egl *egl);
bool wlr_egl_export_image_to_dmabuf(struct wlr_egl *egl, EGLImageKHR image,
int32_t width, int32_t height, uint32_t flags,

View file

@ -52,6 +52,8 @@ struct wlr_renderer_impl {
struct wl_resource *buffer, int *width, int *height);
const struct wlr_drm_format_set *(*get_dmabuf_formats)(
struct wlr_renderer *renderer);
const struct wlr_drm_format_set *(*get_dmabuf_render_formats)(
struct wlr_renderer *renderer);
enum wl_shm_format (*preferred_read_format)(struct wlr_renderer *renderer);
bool (*read_pixels)(struct wlr_renderer *renderer, enum wl_shm_format fmt,
uint32_t *flags, uint32_t stride, uint32_t width, uint32_t height,