aboutsummaryrefslogtreecommitdiff
path: root/tinywl
diff options
context:
space:
mode:
authorAlexander Bakker <ab@alexbakker.me>2019-01-13 17:22:18 +0100
committerAlexander Bakker <ab@alexbakker.me>2019-01-13 21:39:56 +0100
commit776b6ce39512c00d756b994528b4fb300c0d5610 (patch)
tree8a67242c39b2086bf6c31891e5a1996770ea872c /tinywl
parent8134d5b1e0b8c65f7c8b2e7ae626c1f2e5cbc9e1 (diff)
Fix software cursor rendering for tinywl and some examples
Diffstat (limited to 'tinywl')
-rw-r--r--tinywl/tinywl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tinywl/tinywl.c b/tinywl/tinywl.c
index 49bce1f3..14a1d08b 100644
--- a/tinywl/tinywl.c
+++ b/tinywl/tinywl.c
@@ -610,6 +610,14 @@ static void output_frame(struct wl_listener *listener, void *data) {
render_surface, &rdata);
}
+ /* Hardware cursors are rendered by the GPU on a separate plane, and can be
+ * moved around without re-rendering what's beneath them - which is more
+ * efficient. However, not all hardware supports hardware cursors. For this
+ * reason, wlroots provides a software fallback, which we ask it to render
+ * here. wlr_cursor handles configuring hardware vs software cursors for you,
+ * and this function is a no-op when hardware cursors are in use. */
+ wlr_output_render_software_cursors(output->wlr_output, NULL);
+
/* Conclude rendering and swap the buffers, showing the final frame
* on-screen. */
wlr_renderer_end(renderer);