mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-02-18 22:05:48 -05:00
Add a new renderer API
Goals: - Extensibility: we need to be able to add new params to the calls to render a texture/rect. For instance we'll need to add fences to the render texture operation for explicit sync purposes. - No implicit state: no more bind_buffer, begin, end. - No matrices: these hurt Pixman and we don't need them. - Clip regions for optimized damage repainting. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3188
This commit is contained in:
parent
17ad034480
commit
756dedae20
5 changed files with 126 additions and 5 deletions
|
|
@ -33,11 +33,13 @@
|
|||
|
||||
void wlr_renderer_init(struct wlr_renderer *renderer,
|
||||
const struct wlr_renderer_impl *impl) {
|
||||
assert(impl->begin);
|
||||
assert(impl->clear);
|
||||
assert(impl->scissor);
|
||||
assert(impl->render_subtexture_with_matrix);
|
||||
assert(impl->render_quad_with_matrix);
|
||||
if (!impl->begin_buffer_pass) {
|
||||
assert(impl->begin);
|
||||
assert(impl->clear);
|
||||
assert(impl->scissor);
|
||||
assert(impl->render_subtexture_with_matrix);
|
||||
assert(impl->render_quad_with_matrix);
|
||||
}
|
||||
assert(impl->get_shm_texture_formats);
|
||||
assert(impl->get_render_buffer_caps);
|
||||
|
||||
|
|
@ -409,3 +411,11 @@ int wlr_renderer_get_drm_fd(struct wlr_renderer *r) {
|
|||
}
|
||||
return r->impl->get_drm_fd(r);
|
||||
}
|
||||
|
||||
struct wlr_render_pass *wlr_renderer_begin_buffer_pass(
|
||||
struct wlr_renderer *renderer, struct wlr_buffer *buffer) {
|
||||
if (!renderer->impl->begin_buffer_pass) {
|
||||
return NULL;
|
||||
}
|
||||
return renderer->impl->begin_buffer_pass(renderer, buffer);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue