render: switch wlr_renderer to wlr_drm_format_set

This commit is contained in:
emersion 2019-04-01 19:17:23 +03:00
parent c01b81c99c
commit e42178d03f
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
7 changed files with 88 additions and 86 deletions

View file

@ -21,6 +21,7 @@
#include <stdbool.h>
#include <wayland-server.h>
#include <wlr/render/dmabuf.h>
#include <wlr/render/drm_format_set.h>
struct wlr_egl {
EGLenum platform;
@ -42,6 +43,8 @@ struct wlr_egl {
} exts;
struct wl_display *wl_display;
struct wlr_drm_format_set dmabuf_formats;
};
// TODO: Allocate and return a wlr_egl
@ -88,13 +91,7 @@ EGLImageKHR wlr_egl_create_image_from_dmabuf(struct wlr_egl *egl,
/**
* Get the available dmabuf formats
*/
int wlr_egl_get_dmabuf_formats(struct wlr_egl *egl, int **formats);
/**
* Get the available dmabuf modifiers for a given format
*/
int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl, int format,
uint64_t **modifiers);
const struct wlr_drm_format_set *wlr_egl_get_dmabuf_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

@ -46,9 +46,8 @@ struct wlr_renderer_impl {
struct wl_resource *resource);
void (*wl_drm_buffer_get_size)(struct wlr_renderer *renderer,
struct wl_resource *buffer, int *width, int *height);
int (*get_dmabuf_formats)(struct wlr_renderer *renderer, int **formats);
int (*get_dmabuf_modifiers)(struct wlr_renderer *renderer, int format,
uint64_t **modifiers);
const struct wlr_drm_format_set *(*get_dmabuf_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,

View file

@ -20,6 +20,7 @@ enum wlr_renderer_read_pixels_flags {
};
struct wlr_renderer_impl;
struct wlr_drm_format_set;
struct wlr_renderer {
const struct wlr_renderer_impl *impl;
@ -87,15 +88,10 @@ bool wlr_renderer_resource_is_wl_drm_buffer(struct wlr_renderer *renderer,
void wlr_renderer_wl_drm_buffer_get_size(struct wlr_renderer *renderer,
struct wl_resource *buffer, int *width, int *height);
/**
* Get the available dmabuf formats
* Get the available DMA-BUF formats.
*/
int wlr_renderer_get_dmabuf_formats(struct wlr_renderer *renderer,
int **formats);
/**
* Get the available dmabuf modifiers for a given format
*/
int wlr_renderer_get_dmabuf_modifiers(struct wlr_renderer *renderer, int format,
uint64_t **modifiers);
const struct wlr_drm_format_set *wlr_renderer_get_dmabuf_formats(
struct wlr_renderer *renderer);
/**
* Reads out of pixels of the currently bound surface into data. `stride` is in
* bytes.