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
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