Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
We already have another very similar example which demonstrates
wlr_cursor: "pointer".
|
|
|
|
Based on five calls:
wlr_render_timer_create - creates a timer which can be reused across
frames on the same renderer
wlr_renderer_begin_buffer_pass - now takes a timer so that backends can
record when the rendering starts and finishes
wlr_render_timer_get_time - should be called as late as possible so that
queries can make their way back from the GPU
wlr_render_timer_destroy - self-explanatory
The timer is exposed as an opaque `struct wlr_render_timer` so that
backends can store whatever they want in there.
|
|
|
|
Similar to 49e9be62ae92382eddca600082785489c82ea487.
|
|
|
|
Use the viewporter protocol to scale output layers.
|
|
This example is incomparable with the new rendering API. The old one which
we will drop one day.
|
|
read advances the file description offset, and requires the client to
ensure that it is reset appropriately before the next gamma ramp
submission. As there is no event to indicate that wlroots finished
processing the new gamma ramp, this can result in a race between the
client seeking in the file and wlroots reading its content.
Use pread with a fixed offset instead.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3655
|
|
This is the default order used across wlroots unless the reversed order
specifically is required (e.g. in wlr_surface_surface_at()).
|
|
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3654
|
|
|
|
Inert seats are handled like inert outputs, so they work as if the
wanted seat was NULL. The seat argument is only a suggestion, so this
is okay.
|
|
According to the protocol text, the popup will be immediately dismissed
when the grab is rejected. Because the grab can't be executed with a
destroyed seat, the popup is dismissed when one is provided.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If a seat is destroyed while a client is trying to bind it, wlroots
needs to create an inert seat resource instead of crashing.
|
|
Many issues here:
- wlr_output_cursor_set_buffer() takes a buffer already scaled for
the output, not a buffer with scale=1.
- wlr_output_cursor.{width,height,hotspot_x,hotspot_y} are in output
buffer coordinates.
- render_cursor_buffer() had hardcoded no-ops for scale and
transform, instead of using the cursor surface's.
Fixes: b64e7e88bfb8 ("output: add output_cursor_set_texture()")
|
|
A client might update the cursor with the same wl_surface as
before, but with a different hotspot. Don't ignore such updates.
Fixes: 9c9e3f626350 ("cursor: ignore wlr_cursor_set_surface() with same surface")
|
|
If the first commit has no buffer, the unmap hook won't catch it. Check
in the commit hook instead.
|
|
|
|
|
|
It was previously used to handle unmapping properly but is obsolete now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When the surface is destroyed, its current wlr_texture is about to
get destroyed as well. Reset wlr_output_cursor.texture to prevent
use-after-free.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3652
|
|
Avoids damaging the output and rendering the cursor again if it
hasn't changed.
|
|
We'll soon introduce a unified wlr_surface map event. Up until now, compositors
have been using wlr_xwayland_surface's map event to setup various wlr_surface
related listeners (e.g. commit). This will no longer be possible when that
event is moved over to wlr_surface. Introduce new events where the compositor
can add/remove wlr_surface event listeners.
|
|
Firing new_surface when a wlr_surface is associated to the X11 window is too
late: the X11 client might've sent configure events before that.
This reverts commit 039cca8a51ed0783d45fb7a5215e9ae83e4e02e2.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3606
|
|
Release the command buffer if we end up not submitting it.
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
|
|
This allows compositors to get back the raw drmModeModeInfo and
look at DRM-specific fields and flags.
|
|
|
|
This allows doc generators to properly associate the doc comment
with the function instead of the typedef.
|
|
|