mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-02 09:01:38 -05:00
render/pixman: implement render pass API
This commit is contained in:
parent
6ce371a317
commit
6830bfc17f
4 changed files with 212 additions and 1 deletions
|
|
@ -493,6 +493,25 @@ static uint32_t pixman_get_render_buffer_caps(struct wlr_renderer *renderer) {
|
|||
return WLR_BUFFER_CAP_DATA_PTR;
|
||||
}
|
||||
|
||||
static struct wlr_render_pass *pixman_begin_buffer_pass(struct wlr_renderer *wlr_renderer,
|
||||
struct wlr_buffer *wlr_buffer) {
|
||||
struct wlr_pixman_renderer *renderer = get_renderer(wlr_renderer);
|
||||
|
||||
struct wlr_pixman_buffer *buffer = get_buffer(renderer, wlr_buffer);
|
||||
if (buffer == NULL) {
|
||||
buffer = create_buffer(renderer, wlr_buffer);
|
||||
}
|
||||
if (buffer == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct wlr_pixman_render_pass *pass = begin_pixman_render_pass(buffer);
|
||||
if (pass == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
return &pass->base;
|
||||
}
|
||||
|
||||
static const struct wlr_renderer_impl renderer_impl = {
|
||||
.begin = pixman_begin,
|
||||
.end = pixman_end,
|
||||
|
|
@ -508,6 +527,7 @@ static const struct wlr_renderer_impl renderer_impl = {
|
|||
.preferred_read_format = pixman_preferred_read_format,
|
||||
.read_pixels = pixman_read_pixels,
|
||||
.get_render_buffer_caps = pixman_get_render_buffer_caps,
|
||||
.begin_buffer_pass = pixman_begin_buffer_pass,
|
||||
};
|
||||
|
||||
struct wlr_renderer *wlr_pixman_renderer_create(void) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue