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
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
Simon Ser
d5581e42d4
cursor: add cursor_update_outputs()
...
Sets the cursor image for each output depending on the wlr_cursor
state.
2023-06-30 17:24:44 +00:00
Simon Ser
d1d6cd9008
cursor: keep track of XCursor manager and name
...
Will be useful to apply the current cursor to new outputs.
2023-06-30 17:24:44 +00:00
Simon Ser
69c44de22f
cursor: track surface globally, instead of per-output
...
Most of the surface-related state does not need to be per-output.
Move it to wlr_cursor_state.
2023-06-30 17:24:44 +00:00
Simon Ser
c46fabe45c
cursor: use wlr_cursor_unset_image() in wlr_cursor_set_surface()
2023-06-30 17:24:44 +00:00
Simon Ser
f0b8a68654
cursor: store wlr_cursor inline in wlr_cursor_state
...
Removes one allocation, makes this a bit more consistent with the
rest of wlroots.
2023-06-30 17:24:44 +00:00
Clayton Craft
aca48124ad
backend/drm: use panel_orientation if it is set
...
This fixes an issue where the panel_orientation parameter was set but wlroots was ignoring it and
returning OUTPUT_TRANSFORM_NORMAL.
Fixes 2e12de96
2023-06-30 09:34:28 -07:00
Simon Ser
aa1055134d
backend/drm: handle output layer damage
2023-06-30 04:31:50 +00:00
Simon Ser
7811f22250
backend/wayland: handle output layer damage
2023-06-30 04:31:50 +00:00
Simon Ser
13f096b0ac
output-layer: add wlr_output_layer_state.damage
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3593
2023-06-30 04:31:50 +00:00
Simon Ser
6eff8651d3
contributing: add instructions for forking
2023-06-29 17:50:44 +00:00
Evyatar Stalinsky
21e96c459d
util/log: fix buffer overflow
2023-06-29 15:58:56 +03:00
Alexander Orzechowski
c68c9f1685
wlr_scene_buffer: Publicize some state
...
The sway scene port relies on this to create a copy of the buffer for
saved surface purposes.
2023-06-27 17:25:06 -04:00
Simon Ser
f4ee5eae93
backend/headless: leave new outputs disabled by default
2023-06-27 16:26:30 +00:00
Simon Ser
e1bdc62c38
backend/x11: leave new outputs disabled by default
2023-06-27 16:26:30 +00:00
Simon Ser
1f716f4bc0
backend/wayland: mark new outputs as disabled
...
Leave it up to the compositor to enable new outputs (just like the
DRM backend does).
2023-06-27 16:26:30 +00:00
Simon Ser
2aabaf8809
examples: enable new outputs
2023-06-27 16:26:30 +00:00
Simon Ser
9e6431dc3b
tinywl: enable new outputs
2023-06-27 16:26:30 +00:00
Simon Ser
611ce13625
backend/headless: add support for disabled outputs
...
We have nothing to do when a headless output is enabled/disabled.
2023-06-27 16:26:30 +00:00
Simon Ser
6c53f7badf
backend/headless: only schedule a new frame if buffer was submitted
...
A no-op commit should not schedule a new frame. This aligns the
headless backend with the rest of the backends.
This will be important to handle the enabled → disabled transition.
2023-06-27 16:26:30 +00:00
Simon Ser
bfe8138210
backend/x11: unmap when output is disabled
2023-06-27 16:26:30 +00:00
Simon Ser
c0fd37c491
backend/wayland: unmap when output is disabled
2023-06-27 16:26:30 +00:00
Alexander Orzechowski
8243399385
output: Set output mode during main commit
...
Removes duplication across all the backends to finally apply the mode
to the output.
2023-06-27 11:47:58 -04:00