mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-14 08:22:25 -04:00
Adds linux-dmabuf support to the pixman renderer. The main reason is so
clients can use GPU-accelerated rendering even if the compositor is
using the pixman renderer for whatever reason. This also allows the
pixman renderer to import dmabufs (only RGB/ARGB formats, not YUV for
now).
Since after this change all renderers store a DRM FD, I move the drm_fd
from the individual implementations to the shared wlr_renderer base.
This means that renderer_autocreate() can set pixman's drm_fd for it and
the pixman renderer doesn't have to know about DRM at all.
Originally based on
961edfe44e
23 lines
726 B
C
23 lines
726 B
C
/*
|
|
* This an unstable interface of wlroots. No guarantees are made regarding the
|
|
* future consistency of this API.
|
|
*/
|
|
#ifndef WLR_USE_UNSTABLE
|
|
#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features"
|
|
#endif
|
|
|
|
#ifndef WLR_RENDER_PIXMAN_H
|
|
#define WLR_RENDER_PIXMAN_H
|
|
|
|
#include <pixman.h>
|
|
#include <wlr/render/wlr_renderer.h>
|
|
|
|
struct wlr_renderer *wlr_pixman_renderer_create(void);
|
|
bool wlr_renderer_is_pixman(struct wlr_renderer *wlr_renderer);
|
|
bool wlr_texture_is_pixman(struct wlr_texture *texture);
|
|
|
|
pixman_image_t *wlr_pixman_renderer_get_buffer_image(
|
|
struct wlr_renderer *wlr_renderer, struct wlr_buffer *wlr_buffer);
|
|
pixman_image_t *wlr_pixman_texture_get_image(struct wlr_texture *wlr_texture);
|
|
|
|
#endif
|