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.
1 year ago
Kirill Primak
fc9b58e84d
compositor: don't call role unmap hook without an object
1 year ago
Kirill Primak
0f67580aab
compositor: introduce wlr_surface_set_role_object()
1 year ago
Alexander Orzechowski
4b7c526578
output: Introduce wlr_output_state_copy()
1 year ago
Alexander Orzechowski
2ac31fc630
wlr_scene: Introduce wlr_scene_buffer_set_filter_mode
1 year ago
Simon Ser
220402b717
cursor: add wlr_cursor_unset_image()
...
It's pretty awkward to call wlr_cursor_set_image() with 6 zeroes.
Hide that awkwardness in wlroots.
1 year ago
Simon Ser
da04b066ea
cursor: add wlr_cursor_set_xcursor()
...
This keeps track of the last set XCursor. If it hasn't changed,
skip the texture upload.
In the future, support for animated XCursors can be added.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3436
1 year ago
Alexander Orzechowski
7ce9459715
output: add documentation for wlr_output_state
1 year ago
Kirill Primak
753f3cc4fa
compositor: add wlr_surface_role.no_object
...
This commit allows to make a role as not represented by an object,
which fixes calling role commit handlers for roles like cursor
surfaces.
Fixes: 099b9de752
1 year ago
Simon Ser
670915eeea
output: add wlr_output_state_set_layers()
1 year ago
Kirill Primak
96f1fdd113
seat: remove a TODO comment about simulating keyboard events
1 year ago
Alexander Orzechowski
05dd08afe5
scene: introduce wlr_scene_output_build_state()
1 year ago
Alexander Orzechowski
ae7bad86dd
output: introduce wlr_output_state_set_damage()
1 year ago
Simon Ser
36376e2ddf
gamma-control-v1: stop applying gamma LUTs implicitly
...
Make the compositor responsible for doing that, so that they can
properly integrate with their output commit sequence.
2 years ago
Simon Ser
ec9b79ef19
gamma-control-v1: add wlr_gamma_control_v1_send_failed_and_destroy()
2 years ago
Simon Ser
026fc6eda0
gamma-control-v1: add wlr_gamma_control_v1_apply()
2 years ago
Simon Ser
5d5cf34486
output: add wlr_output_state_set_gamma_lut()
2 years ago
Simon Ser
6e635d2fd3
gamma-control-v1: add wlr_gamma_control_manager_v1_get_control()
2 years ago
Simon Ser
70c1a57248
gamma-control-v1: introduce set_gamma event
2 years ago
Kirill Primak
1bf245e0fe
compositor: improve role-specific documentation
2 years ago
Kirill Primak
24a479a501
drag: don't set icon's role_data
...
Currently, an icon surface's role_data is set manually to a struct
wlr_drag_icon, which is hacky, incorrect (as role_data is supposed
to be the surface's role object, and drag icons don't have them), and
will be disallowed by future changes.
2 years ago
Simon Ser
544c0622fa
presentation-time: constify wlr_presentation_feedback_send_presented()
...
We don't need to mutate the event in this function.
2 years ago
Kirill Primak
4c9eb6839d
compositor: add a note about ignored input regions
2 years ago
Rose Hudson
9e8947e4d5
add render timer API
...
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.
2 years ago
Simon Ser
52b93f7eb4
output/cursor: fix scale and transform
...
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: b64e7e88bf
("output: add output_cursor_set_texture()")
2 years ago
Kirill Primak
e75407fd4d
session-lock: remove unused wlr_session_lock_surface_v1.events.map
2 years ago
Kirill Primak
d086ee1b9e
compositor: remove wlr_surface_role.precommit
...
It was previously used to handle unmapping properly but is obsolete now.
2 years ago
Kirill Primak
af4181f388
drag: use unified map logic
2 years ago
Kirill Primak
743da5c0ae
input-method: use unified map logic
2 years ago
Kirill Primak
229abfae0c
session-lock: use unified map logic
2 years ago
Kirill Primak
c63f3659c5
layer-shell: use unified map logic
2 years ago
Kirill Primak
b0437fc416
xdg-shell: use unified map logic
2 years ago
Kirill Primak
c590bb600f
subcompositor: use unified map logic
2 years ago
Kirill Primak
6b40e08148
compositor: introduce unified map logic
2 years ago
Simon Ser
93a6acae9f
output: add wlr_output_begin_render_pass()
2 years ago
Alexander Orzechowski
95062904c7
wlr_scene: Introduce wlr_scene_buffer_set_opacity
2 years ago
Alexander Orzechowski
2346b90a9f
wlr_scene: Make scene_rect_from_node public
...
This is in an effort to be more consistent with both already public
getters: wlr_scene_buffer_from_node and wlr_scene_tree_from_node
2 years ago
Alexander Orzechowski
88f80c4a7c
wlr_scene: Make scene_tree_from_node public
...
This is to allow for compositors that want to be more implicit about
how their scene is organized. Such a compositor may want to walk up
at a certain scene node to find something such as a surface to focus on.
2 years ago
Alexander Orzechowski
61c157269e
wlr_scene: Add documentation to wlr_scene_buffer_from_node
2 years ago
Simon Ser
2a1234a820
wlr-export-dmabuf-v1: handle output destroy
...
We were storing a wlr_output without listening for the destroy
event.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3646
2 years ago
Simon Ser
d933f5204b
output: drop wlr_output_cursor_set_surface
2 years ago
Simon Ser
b64e7e88bf
output: add output_cursor_set_texture()
2 years ago
Alexander Orzechowski
394accbe4a
wlr_compositer: Keep track if surface has committed a buffer before.
...
This would break if you are running with a NULL renderer.
2 years ago
Simon Ser
587852056c
output: add wlr_output_add_software_cursors_to_render_pass()
...
Same as wlr_output_render_software_cursors(), but takes a
struct wlr_render_pass.
2 years ago
Simon Ser
44069dfd5e
output-layer: add cropping support
...
Add a src_box state field. Use the SRC_* KMS props in the DRM
backend, reject the layers in the Wayland backend (for now, we can
support it later via viewporter).
2 years ago
Simon Ser
dae2deb3c9
compositor: add wlr_surface_set_preferred_buffer_transform()
...
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
2 years ago
Simon Ser
42edd36785
compositor: add wlr_surface_set_preferred_buffer_scale()
...
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
2 years ago
Simon Ser
0bb574239d
compositor: pass version in wlr_compositor_create
...
This allows wlroots to support newer versions of the interface
without breaking the API.
2 years ago
Simon Ser
9ef98452a3
output-damage: drop
...
Compositors can migrate to wlr_damage_ring.
2 years ago
Simon Ser
079ff9e6fb
output: add wlr_output_is_direct_scanout_allowed()
...
This lets compositors check whether direct scan-out is possible.
Compositors will soon be responsible for manually calling this
function.
2 years ago