mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-02 09:01:38 -05:00
Merge branch 'master' into matrix-redesign
This commit is contained in:
commit
8b58e1a3ad
16 changed files with 809 additions and 8 deletions
|
|
@ -6,6 +6,7 @@
|
|||
#include <pixman.h>
|
||||
#include <stdbool.h>
|
||||
#include <wayland-server.h>
|
||||
#include <wlr/types/wlr_linux_dmabuf.h>
|
||||
|
||||
struct wlr_egl {
|
||||
EGLDisplay display;
|
||||
|
|
@ -18,6 +19,8 @@ struct wlr_egl {
|
|||
struct {
|
||||
bool buffer_age;
|
||||
bool swap_buffers_with_damage;
|
||||
bool dmabuf_import;
|
||||
bool dmabuf_import_modifiers;
|
||||
} egl_exts;
|
||||
|
||||
struct wl_display *wl_display;
|
||||
|
|
@ -61,6 +64,31 @@ EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window);
|
|||
EGLImageKHR wlr_egl_create_image(struct wlr_egl *egl,
|
||||
EGLenum target, EGLClientBuffer buffer, const EGLint *attribs);
|
||||
|
||||
/**
|
||||
* Creates an egl image from the given dmabuf attributes. Check usability
|
||||
* of the dmabuf with wlr_egl_check_import_dmabuf once first.
|
||||
*/
|
||||
EGLImageKHR wlr_egl_create_image_from_dmabuf(struct wlr_egl *egl,
|
||||
struct wlr_dmabuf_buffer_attribs *attributes);
|
||||
|
||||
/**
|
||||
* Try to import the given dmabuf. On success return true false otherwise.
|
||||
* If this succeeds the dmabuf can be used for rendering on a texture
|
||||
*/
|
||||
bool wlr_egl_check_import_dmabuf(struct wlr_egl *egl,
|
||||
struct wlr_dmabuf_buffer *dmabuf);
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* Destroys an egl image created with the given wlr_egl.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include <wlr/render.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/types/wlr_output.h>
|
||||
#include <wlr/types/wlr_linux_dmabuf.h>
|
||||
|
||||
struct wlr_renderer_impl;
|
||||
|
||||
|
|
@ -59,6 +60,8 @@ struct wlr_texture_impl {
|
|||
struct wl_resource *drm_buf);
|
||||
bool (*upload_eglimage)(struct wlr_texture *texture, EGLImageKHR image,
|
||||
uint32_t width, uint32_t height);
|
||||
bool (*upload_dmabuf)(struct wlr_texture *texture,
|
||||
struct wl_resource *dmabuf_resource);
|
||||
void (*get_matrix)(struct wlr_texture *state, float mat[static 9],
|
||||
const float projection[static 9], int x, int y);
|
||||
void (*get_buffer_size)(struct wlr_texture *texture,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue