Simon Ser
6dfcdb0a31
Merge branch 'cursor-layer' into 'master'
...
Draft: Use output layers for cursors
See merge request wlroots/wlroots!4032
2023-07-15 13:29:57 +00:00
Leonardo Hernández Hernández
4de9c9c47f
scene: send wl_surface.preferred_buffer_scale
2023-07-15 10:28:25 +00:00
Simon Ser
37ef9d7356
backend/drm: stop checking for wlr_client_buffer
...
wlr_client_buffer is a bad indicator for direct scan-out.
Compositors might use the underlying wlr_buffer instead.
2023-07-14 15:20:35 +02:00
Simon Ser
67447d6cb4
presentation-time: add separate helper for zero-copy
...
The backend is not able to tell whether a surface is being
presented via direct scan-out or not. The backend will set
ZERO_COPY if the buffer submitted via the output commit was
presented in a zero-copy fashion, but will no know whether the
buffer comes from the compositor or the client.
2023-07-14 15:20:35 +02:00
Simon Ser
fe84bfc8d9
scene: add wlr_scene_output_sample_event
...
This contains the output and a bool indicating direct scan-out.
2023-07-14 15:16:12 +02:00
Simon Ser
88942d43fd
scene: rename output_present event to output_sample
...
Using "present" is confusing here: the event is emitted when the
buffer is being sampled to be displayed on an output, not when it's
being presented on-screen.
Rename to match the presentation-time terminology.
2023-07-14 15:06:13 +02:00
Alexander Orzechowski
d8585d661c
wlr_scene: Fix buffer damage for output state
...
We would transform the damage based on output state which might be
out of date.
2023-07-12 17:20:12 +00:00
Brett Ernst
cb5d9abf10
add minimalist cairo example
2023-07-12 10:18:36 +00:00
Simon Ser
1205f03ec9
render/gles2: wrap timer setup in push_gles2_debug()
...
With this, errors should be properly wrapped in the debug scope.
2023-07-12 06:38:02 +00:00
Simon Ser
4811d9fb18
render: document wlr_buffer_pass_options.timer
2023-07-11 18:19:03 +00:00
Simon Ser
b7dca21c2b
render: constify struct wlr_buffer_pass_options
...
Let's not allow renderer implementations to mutate the passed in
options.
2023-07-11 18:19:03 +00:00
Simon Ser
fe06e5f49a
Use wl_container_of() instead of casts
...
This slightly improves type safety.
The culprits were found with:
git grep -E '\([a-z0-9_ ]+ \*\)\W?[a-z]'
2023-07-11 20:16:17 +02:00
Simon Ser
c2c536de03
render/gles2: drop unnecessary cast
...
We can just refer to the struct field here.
2023-07-11 20:15:45 +02:00
Rose Hudson
214df8eda0
scene_output: optionally record and report timings
2023-07-10 09:57:02 +00:00
Kirill Primak
f4eaab12a0
input-method-v2: don't remove inert role resource
2023-07-10 10:03:24 +02:00
Kirill Primak
fce7cb249f
xwayland-shell: don't remove inert role resource
2023-07-10 10:03:24 +02:00
Kirill Primak
dc7686c114
session-lock: don't remove inert role resource
2023-07-10 10:03:24 +02:00
Kirill Primak
7f2ed1e62c
layer-shell: don't remove inert role resource
2023-07-10 10:03:24 +02:00
Kirill Primak
7d176b6237
subcompositor: don't remove inert role resource
...
Now that role objects are stored as resources, we can distinguish
the inert object case from it being destroyed by the client:
- When the resource is destroyed by the client, role_resource == NULL
- When the resource is made inert, role_resource != NULL but its
user_data is NULL
2023-07-10 10:03:08 +02:00
Simon Ser
27edd024f8
xwayland: pass NULL as event data
...
This is more extensible: in the future we can introduce event
structs if we need to.
2023-07-09 12:18:49 +02:00
Simon Ser
76e2a74282
xwayland: use initializer for struct wlr_xwayland_resize_event
...
Ensures there are no fields with uninitialized memory.
Also remove an outdated TODO: Xwayland only supports a single seat.
2023-07-09 12:18:49 +02:00
Simon Ser
5bb0057794
xwayland: document event data
2023-07-09 11:48:51 +02:00
Simon Ser
19ba3f0c2a
xwayland: drop struct wlr_xwayland_move_event
...
This only contains the xsurface, which isn't particularly useful.
2023-07-09 11:48:16 +02:00
Simon Ser
972c5f0c11
xwayland: document associate/dissociate events
2023-07-09 11:47:05 +02:00
Simon Ser
7a9f8d8d6b
Use struct initializers instead of memset()
...
This is a bit more type-safe.
2023-07-07 17:31:11 +02:00
Kirill Primak
4966857f21
viewporter: check for an existing viewport
2023-07-07 12:49:06 +03:00
Simon Ser
77d5631e42
license: add copyright line for all contributors
...
Recently it has come up that someone wants to re-use part of
wlroots in their own project. The standard procedure is to copy
over the license text and copyright lines.
Let's make it clear that the wlroots copyright is held by all
wlroots contributors, and that the license file comes from the
wlroots project.
See [1] for more details.
[1]: https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects
2023-07-05 10:27:50 +02:00
Simon Ser
dd39fa5bd6
fixup! output: pass cursor as layer when set_cursor is unimplemented
2023-07-03 17:51:17 +02:00
Simon Ser
ccf04f38d5
backend/drm: use output layers for cursors
2023-07-03 17:37:01 +02:00
Simon Ser
e0a69804ed
backend/wayland: switch to cursor layers
2023-07-03 17:36:01 +02:00
Simon Ser
6c89732d8b
backend/x11: switch to cursor layers
2023-07-03 17:36:00 +02:00
Simon Ser
9c442c7fd8
output: pass cursor as layer when set_cursor is unimplemented
2023-07-03 17:34:47 +02:00
Simon Ser
bf4c20a05d
output: add output_prepare_state()
...
Doesn't do much yet, but will soon.
2023-07-03 17:29:38 +02:00
Simon Ser
4157715e26
output: add output_state_get_cursor_layer() helper
2023-07-03 17:29:37 +02:00
Simon Ser
a863b82bdb
output: add cursor output layers
2023-07-03 17:28:45 +02:00
Simon Ser
2bd5879950
backend/wayland: do not require viewporter for empty layer src_box
2023-07-03 17:17:44 +02:00
Simon Ser
09c7af0bd4
backend/wayland: extract layer viewport check to a helper
...
Improves readability, and we'll need to use it from another
function.
2023-07-03 17:17:44 +02:00
Simon Ser
26f9510e07
backend/wayland: extract layer test to separate function
...
This is more readable.
2023-07-03 17:17:44 +02:00
Simon Ser
6f8287128b
output: drop wlr_output_cursor_set_image()
...
This function takes a pointer to memory with a hardcoded format
and many parameters to describe the pixel buffer.
wlr_output_cursor_set_buffer() can be used instead.
2023-07-03 09:46:54 +02:00
Simon Ser
f8d70fbece
cursor: remove usage of wlr_output_cursor_set_image()
...
Stop using wlr_output_cursor_set_image() because it's getting
dropped. Instead, use wlr_output_cursor_set_buffer().
This mirrors what wlr_output_cursor_set_image() is doing
under-the-hood.
2023-07-03 09:45:34 +02:00
Simon Ser
0fc532f8de
cursor: remove wlr_cursor_set_image()
...
Superseded by wlr_cursor_set_buffer().
2023-07-02 22:42:37 +00:00
Simon Ser
18bafbfc57
xcursor-manager: drop wlr_xcursor_manager_set_cursor_image()
2023-07-02 22:42:37 +00:00
Simon Ser
71c87ff4b8
cursor: add wlr_cursor_set_buffer()
...
A saner replacement for wlr_cursor_set_image():
- Takes a wlr_buffer instead of numerous parameters and a hardcoded
format.
- The scale is not used to filter outputs.
- A ref to the buffer is kept to apply it to new outputs.
2023-07-02 22:42:37 +00:00
Simon Ser
bb91787b5f
cursor: stop using set_image() in wlr_cursor_unset_image()
...
set_image() will go away.
2023-07-02 22:42:37 +00:00
Manuel Stoeckl
bbd53b3b46
screencopy-v1: fix logical->physical region transform
...
This now matches the transformations used for e.g. cursor scissor
regions and damage.
2023-07-01 10:05:30 -04:00
Alexander Orzechowski
57a0313779
wlr_scene: Don't recompute node location during rendering
...
We already compute it during the render list creation, we should cache
it and re-use the value.
2023-07-01 09:48:25 +00:00
Alexander Orzechowski
48f2a7a3a1
wlr_scene: Simplify direct scanout handling
...
By adding a sent_feedback bool into the list entry that we can mutate
we no longer need to maintain this `sent_direct_scanout_feedback` variable.
sent_feedback will also be useful for output layers.
2023-07-01 09:48:25 +00:00
Alexander Orzechowski
9613b3bc8a
wlr_scene: Wrap render_list nodes in struct
...
We will be able to add more state here
2023-07-01 09:48:25 +00:00
Simon Ser
9c2c906518
examples/pointer: use wlr_cursor_set_xcursor()
2023-06-30 17:24:44 +00:00
Simon Ser
53b07b5b72
cursor: set image for new outputs
...
When an output is added to wlr_cursor, update its cursor image.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2119
2023-06-30 17:24:44 +00:00