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
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
Alexander Orzechowski
530e58b96e
backend/wayland: Reject non 0 refresh rate mode sets
2023-06-27 11:47:58 -04:00
Alexander Orzechowski
99314aac9f
backend/x11: Reject non 0 refresh rate mode sets
2023-06-27 11:45:44 -04:00
Alexander Orzechowski
5567aefb1c
backend/drm: Don't add pollute fixed modes list with custom modes
...
Nobody remembers why this is done and it isn't that great if people
use a lot of custom modes.
2023-06-27 11:14:55 -04:00
Alexander Orzechowski
ea3c6fde3a
wlr_scene: Add opaque region blend mode optimization
...
If we are only rendering within a region of the surface that is
advertised as opaque, we can choose no blending
2023-06-27 14:02:25 +00:00
Alexander Orzechowski
9b9ee51b09
examples/tablet: Don't use new render API and old render API together
...
We're using both APIs at the same time.
2023-06-26 19:09:12 -04:00
Simon Ser
cbcd99435f
backend/drm: remove duplicate needs_frame() in set_cursor()
...
wlr_output_update_needs_frame() is called unconditionally at the
end of the function already.
2023-06-26 11:49:38 +02:00
Kirill Primak
71b57b8d27
fullscreen-shell: set surface role
2023-06-23 22:09:54 +03:00
Simon Ser
be05097968
output: add wlr_output_state_init()
...
This changes the semantics of wlr_output_state. Instead of having
fields with uninitialized memory when missing from the committed
bitflag, all fields are always initialized (and maybe NULL/empty),
just like we do in wlr_surface_state. This reduces the chances of
footguns when reading a field, and removes the need to check for
the committed bitfield everywhere.
A new wlr_output_state_init() function takes care of initializing
the Pixman region.
2023-06-23 18:07:26 +00:00
Simon Ser
8a5b5e6f28
compositor: listen to role_resource destroy signal
...
Call wlr_surface_destroy_role_object() when the role_resource is
destroyed.
2023-06-23 14:33:26 +02:00
Simon Ser
89cb484220
compositor: replace role_data with role_resource
...
This increases type safety, makes it more obvious that role_data
must represent the role object, and will allow for automatic
cleanup when the resource is destroyed.
2023-06-23 14:23:27 +02:00
Simon Ser
00f1870d35
input-method-v2: add popup_surface_from_resource()
...
This checks the resource type before casting its user data pointer.
2023-06-23 14:14:36 +02:00
Kirill Primak
fc9b58e84d
compositor: don't call role unmap hook without an object
2023-06-23 11:54:05 +00:00
Kirill Primak
0f67580aab
compositor: introduce wlr_surface_set_role_object()
2023-06-23 11:54:05 +00:00