Kirill Primak
d3bc17d5d1
scene: add wlr_scene_output.events.destroy
2022-06-01 09:49:25 +00:00
Kirill Primak
ec328ca8cc
scene/wlr_scene.h: fix indentation
2022-05-31 20:34:50 +03:00
Simon Ser
638c5cda51
output: drop wlr_output_cursor.events.destroy
...
Compositors can just listen to wlr_output.events.destroy instead.
2022-05-31 11:40:47 +00:00
Simon Ser
459a642e83
output: introduce wlr_output_cursor_set_buffer
...
This will supersede wlr_output_cursor_set_image, and then later
also supersede wlr_output_cursor_set_surface.
2022-05-31 11:40:47 +00:00
Alexander Orzechowski
71f8a48d38
wlr_scene: Move children list from wlr_scene_node to wlr_scene_tree
2022-05-31 09:14:28 +00:00
Alexander Orzechowski
cb2dbc327e
wlr_scene: Inline wlr_scene_node_state
...
This seems like nothing interesting was done with this. Let's simplify
and allow us some flexibility in the future.
2022-05-31 09:14:28 +00:00
Alexander Orzechowski
ccd0f85c2a
wlr_scene: Only allow parenting on a wlr_scene_tree
2022-05-31 09:14:28 +00:00
Alexander Orzechowski
9eb71146ae
wlr_scene: Refactor wlr_scene (the root element) to encase a wlr_scene_tree
...
Co-authored-by: Isaac Freund <mail@isaacfreund.com>
2022-05-31 09:14:28 +00:00
Simon Ser
bb2946f737
build: make GBM optional
...
Now that the DRM backend no longer depends on GBM, we can make it
optional. The GLES2 renderer still depends on it because of our EGL
device selection.
This is useful for compositors with their own renderers, and for
compositors using the Vulkan renderer.
2022-05-30 13:30:08 +00:00
Simon Ser
d483dd2f4c
output: add wlr_output_commit_state
...
Same as wlr_output_commit, but takes a wlr_output_state.
2022-05-30 11:40:34 +02:00
Simon Ser
b21c26a1c9
output: add wlr_output_event_precommit.state
2022-05-30 11:34:57 +02:00
Simon Ser
c4253fef9c
output: add wlr_output_test_state
...
Same as wlr_output_test, but takes a wlr_output_state argument.
2022-05-30 11:34:57 +02:00
Simon Ser
9e25d3074d
output: pass wlr_output_state to rendering functions
...
No functional change.
2022-05-30 11:34:57 +02:00
Simon Ser
927661d246
output: pass wlr_output_state to output_pending_resolution
2022-05-30 11:34:57 +02:00
Simon Ser
25dd3cc0cd
output: pass wlr_output_state to backend
...
Groundwork for the following commits. The goal is to allow users
to specify their own wlr_output_state instead of wlr_output.pending.
2022-05-30 11:34:57 +02:00
Kirill Primak
1761c3bbe2
xdg-popup: add reposition support
2022-05-27 13:31:30 +00:00
Kirill Primak
8a0835c59c
xdg-positioner: add v3 parameters
2022-05-27 13:31:30 +00:00
Kirill Primak
6f1fce9cb4
xdg-popup: use current/pending state pattern
2022-05-27 13:31:30 +00:00
Kirill Primak
4a968576e4
xdg-popup: add proper configure flow
2022-05-27 13:31:30 +00:00
Simon Ser
be86145322
output: turn make/model/serial into char *
...
This allows the make/model/serial to be NULL when unset, and allows
them to be longer than the hardcoded array length.
This is a breaking change: compositors need to handle the new NULL
case, and we stop setting make/model to useless "headless" or
"wayland" strings.
2022-05-26 13:36:06 +00:00
Simon Ser
1cb6b2cf67
render/egl: document wlr_egl_create_with_context
2022-05-25 18:17:41 +00:00
Simon Ser
4b3e08c8ac
render/egl: make wlr_egl_{make,unset,is}_current private
...
These are trivial wrappers around eglMakeCurrent and
eglGetCurrentContext. Compositors which need to call these
functions will also call other EGL or GL functions anyways. Let's
reduce our API surface a bit by making them private.
2022-05-25 18:17:41 +00:00
Simon Ser
f954092f22
render/egl: make wlr_egl struct opaque
...
Compositors can use wlr_egl_create_with_context if they need a
custom EGL display or context.
2022-05-25 18:17:41 +00:00
Simon Ser
452a8ec940
render/egl: add wlr_egl_get_{context,display}
...
This allows compositors to integrate with the wlroots GLES2
renderer, if they need to perform custom GL rendering.
2022-05-25 18:17:41 +00:00
Simon Ser
4b77eadf06
render/egl: drop MESA_EGL_NO_X11_HEADERS
...
This has been superseded by the standard EGL_NO_X11 switch,
supported by Mesa 19.3.0+.
2022-05-25 17:50:39 +02:00
Simon Ser
28d89779af
Reformat doc comments
...
Unify the way we document our APIs. See CONTRIBUTING.md for the
rules.
2022-05-25 14:22:58 +00:00
Simon Ser
f91f38b79a
backend/drm: remove wlr_drm_surface.{width,height}
...
This information is stored in wlr_swapchain, no need to duplicate
it.
2022-05-25 15:55:41 +02:00
Simon Ser
078d8dd472
build: bump version to 0.16.0-dev
...
Same as [1].
[1]: https://github.com/swaywm/sway/pull/6730
2022-05-24 15:04:14 +02:00
Alexander Orzechowski
41124592dd
wlr_scene: Hook up HIGHLIGHT logic
...
This will display red translucent rectangles on the screen regions that
have been damaged. These rectangles will fade out over the span of 250
msecs. If the area is damaged again while the region is fading out,
the timer is reset.
Let's also disable direct scan out when this option is enabled, or else
we won't be able to render the highlight damage regions.
2022-05-23 15:58:49 -04:00
Alexander Orzechowski
17f5414b1a
wlr_scene: Parse out WLR_SCENE_DEBUG_DAMAGE
2022-05-23 15:43:18 -04:00
Kirill Primak
4ac19e9f9c
util/addon: avoid calling finish() twice
...
No functional change.
2022-05-23 11:11:38 +00:00
Simon Ser
cde3700386
xwayland: use dict to collect supported features
2022-05-23 09:49:58 +02:00
Joshua Ashton
02e648c1b2
xwayland: Add support for -force-xrandr-emulation
2022-05-23 07:30:28 +00:00
Guido Günther
17b2b06633
seat: Allow to cancel touches
...
After cancelation we destroy the touch points associated with this
surface as the Wayland spec says:
No further events are sent to the clients from that particular gesture.
Touch cancellation applies to all touch points currently active on this
client's surface. The client is responsible for finalizing the touch
points, future touch points on this surface may re-use the touch point
ID.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2999
2022-05-22 09:43:33 +00:00
Alexander Orzechowski
dc9bc5683a
wlr_scene: Refactor wlr_scene_surface to be a helper on top of wlr_scene_buffer
2022-05-19 14:26:50 -04:00
Alexander Orzechowski
5f43e1732a
wlr_scene: Introduce addons to scene nodes
2022-05-19 14:25:34 -04:00
Alexander Orzechowski
f2dbcc3358
wlr_scene: Make presentation object public
2022-05-19 14:24:05 -04:00
Alexander Orzechowski
20cc1ce0b9
wlr_scene: Change out surface specific iterator functions
...
Instead iterate over wlr_scene_buffer
2022-05-19 14:24:05 -04:00
Alexander Orzechowski
5f56246571
wlr_scene: Pull scene_node_get_root into a private header
...
We will need this for surface emulation on buffers.
2022-05-19 14:24:05 -04:00
Alexander Orzechowski
39c059b70e
wlr_scene: Make scene_buffer_from_node public
2022-05-19 14:24:05 -04:00
Alexander Orzechowski
73a656e8ac
wlr_scene: Add a function to also specify damage when applying a buffer to wlr_scene_buffer
2022-05-19 14:24:05 -04:00
Alexander Orzechowski
34be5da072
wlr_scene: Add a way to choose when input interactions happen on a buffer
2022-05-19 14:24:05 -04:00
Alexander Orzechowski
09c7fe0f90
wlr_scene: Add frame_done signal for wlr_scene_buffer
...
Let's also change the name of the function. Motivation [1].
[1] https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3496#note_1357824
2022-05-19 14:23:10 -04:00
Alexander Orzechowski
a53eccf2af
wlr_scene: Add primary_output property to wlr_scene_buffer
2022-05-19 14:21:22 -04:00
Alexander Orzechowski
dfeb1309a8
wlr_scene: Add presentation signal for wlr_scene_buffer
2022-05-19 14:21:21 -04:00
Alexander Orzechowski
7e383c6a6a
wlr_scene: Make wlr_scene_render_output private
...
This function sidesteps damage tracking and output awareness on
buffers/surfaces. This function isn't a great fit for the API.
Let's also inline the function and simplify it.
2022-05-19 14:17:51 -04:00
Alexander Orzechowski
933ff0e60c
wlr_scene: Fix missing calls to scene_node_update_outputs
...
There were a couple places this was missing
- on mode change of an output. If the resolution changes for example
nodes may fall out of the view.
- on commits on an output for scale or transform changes
- when the transform of a buffer is changed. If the dest size is not
set, the buffer may have been rotated potentially changing its size
if the buffer width != height
2022-05-19 14:17:51 -04:00
Alexander Orzechowski
c46b53d0b0
wlr_scene: Add output_enter/output_leave signals
...
When we destroy a scene buffer, let's make sure that we call
output_leave signals before we finish the node which will call destroy
listeners.
2022-05-19 14:17:51 -04:00
Alexander Orzechowski
61dab42c70
wlr_scene: Add setter for buffer of a wlr_scene_buffer
2022-05-19 14:17:51 -04:00
Alexander Orzechowski
039a31df9a
wlr_scene: Allow buffer in wlr_scene_buffer to be NULL
...
This is useful to emulate an unmapped surface.
2022-05-19 14:16:52 -04:00