Age | Commit message (Collapse) | Author |
|
|
|
`requested` is also checked on state change requests.
|
|
Instead, compositors can read relevant values from
wlr_xdg_toplevel.requested.
|
|
This also fixes a seat destruction segfaulting if xdg-shell was
destroyed first.
|
|
|
|
This commit replaces wlr_xdg_toplevel_*_event::surface with a toplevel
field.
|
|
This commit changes wlr_xdg_toplevel::parent type from wlr_xdg_surface
to wlr_xdg_toplevel.
|
|
`wlr_xdg_surface`s are now named "surface" everywhere, and
`wlr_surface`s are called "wlr_surface".
|
|
|
|
With this commit, `wlr_xdg_popup_*()` functions now expect
a `wlr_xdg_popup` instead of a `wlr_xdg_surface`.
|
|
With this commit, `wlr_xdg_toplevel_*()` functions now expect
a `wlr_xdg_toplevel` instead of a `wlr_xdg_surface`.
|
|
|
|
|
|
This implements the new ext-session-lock-v1 protocol [1].
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/131
|
|
This helper behaves similar to the xdg_shell helper, and additionally
provides a little assistance for positioning and exclusive_zone
management.
|
|
The wlroots APIs currently don't allow importing/uploading a buffer
during rendering operations. Scene-graph buffer nodes need to turn
their wlr_buffer into a wlr_texture at some point. It's not always
possible to do so at wlr_scene_buffer creation time because the
scene-graph may have zero outputs at this point, thus no way to
grab a wlr_renderer.
Instead, add scene-graph buffers to a pending list and try to import
them in wlr_scene_output_commit.
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3354
|
|
XcursorLibraryLoadImages is unused, let's drop it.
Same as [1].
[1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/206
Co-authored-by: Simon Ser <contact@emersion.fr>
|
|
|
|
Closes https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/812
|
|
Currently the output enter event is never sent if the client has not
yet bound the output, which happens every time the compositor creates a
new output.
To fix this, listen for the output bind event and inform clients as
if needed.
|
|
Now the role precommit hook is called before the commit, not on
wl_surface.commit request, and takes a state which is to be applied.
|
|
|
|
|
|
|
|
wlr_surface.events.client_commit is fired when wl_surface.commit
request is received.
|
|
|
|
This function was already removed in e5b5592a but it was forgotten to
remove it from the header.
|
|
Compositors should've all been updated to use the new header by now.
|
|
These currently use uint32_t while they are an int32_t in the protocol.
|
|
This helper automates sending presentation feedback to clients based on
the primary output of scene surfaces.
|
|
This has been added in [1] and allows us to close buffer handles
without manually calling drmIoctl.
[1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/192
|
|
Since [1], we can get the wl_display directly from the wl_global.
[1]: https://gitlab.freedesktop.org/wayland/wayland/-/commit/2b22160fb690a76247aa9bd0be3069ff43e8239f
|
|
Allows the compositor to submit tokens to the pool of
currently active tokens. This can be useful when the
launcher doesn't use or support xdg-activation-v1 by
itself - e.g. when it is X11 based or use gtk_shell1.
|
|
This doesn't work if scene outputs are not used as the primary output of
scene surfaces will always be NULL.
Therefore, take a wlr_scene_output instead of separate wlr_scene and
wlr_output arguments and rename the function to
wlr_scene_output_send_frame_done().
The actual behavior of the function is unchanged.
|
|
|
|
This allows compositors to avoid sending multiple frame done events
to a surface that is rendered on multiple outputs at once. This may
also be used in the same way for presentation feedback.
|
|
Co-authored-by: Simon Ser <contact@emersion.fr>
|
|
This helper is responsible for listening for new DRM devices and
create new child DRM backends as necessary.
|
|
|
|
This commit fixes the way the damage that doesn't come directly from the
client is handled.
|
|
wlroots picks names for all outputs, but it might be desirable for
compositor to override it.
For instance, Sway will use a headless output as a fallback in
case no outputs are connected. Sway wants to clearly label the
fallback output as such and label "real" headless outputs starting
from HEADLESS-1.
|
|
|
|
Implement a basic version of linux-dmabuf-unstable-v1 version 4.
Only default hints are implemented.
The new wlr_linux_dmabuf_feedback_v1 data structure will allow
compositors to define their own custom hints in the future. This
data structure makes it easy to describe feedback metadata.
It's converted to a "compiled" form suitable for marshalling over
the Wayland socket via feedback_compile.
|
|
This allows compositors to initialize wl_shm without initializing
other globals like linux-dmabuf.
|
|
This lets backends immediately release committed buffers if they
want to.
|
|
This allows output commit listeners to access the newly committed
buffer. Currently wlr_output.front_buffer is used but it'll get
removed in the next commit.
|
|
This intersects two DRM format sets. This is useful for implementing
DMA-BUF feedback in compositors, see e.g. the Sway PR [1].
[1]: https://github.com/swaywm/sway/pull/6313
|
|
Support for EXT_image_dma_buf_import_modifiers doesn't necessarily
indicate support for modifiers. For instance, Mesa will advertise
EXT_image_dma_buf_import_modifiers for all drivers. This is a trick
to allow EGL clients to enumerate supported formats (something
EXT_image_dma_buf_import is missing). For more information, see [1].
Add a new wlr_egl.has_modifiers flag which indicates whether
modifiers are supported. It's set to true if any
eglQueryDmaBufModifiersEXT query returned a non-empty list.
Use that flag to figure out whether the buffer modifier should be
passed to the EGL implementation on import.
[1]: https://github.com/KhronosGroup/EGL-Registry/issues/142
|
|
This allows creating a wlr_egl from an already-existing EGL display
and context. This is useful to allow compositors to choose the exact
EGL initialization parameters.
|
|
The next commit will split extension lookup and context
initialization.
|