Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

zext-screencopy-unstable-v1 #3320

Draft
wants to merge 188 commits into
base: master
Choose a base branch
from
Draft

Conversation

any1
Copy link
Contributor

@any1 any1 commented Oct 31, 2021

This is an implementation of a new screencopy protocol which integrates most of the requirements which we have discussed in the past. It should also be possible to extend it to capture top-levels.

The new protocol is modelled after wl_surface. This model should make it easier to extend the protocol in the future.

wayland-protocols PR: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/124
Supersedes: #2329, #3166, swaywm/wlr-protocols#105

cc @emersion, @columbarius, @quantum5

This is a glue file to allow integration with builds.sr.ht.
@emersion
Copy link
Member

emersion commented Nov 1, 2021

wlroots has migrated to gitlab.freedesktop.org. This pull request has been moved to:

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3320

emersion and others added 28 commits November 1, 2021 18:54
For `required` to disable search the value needs to be of `feature` type.
Checking `gles2` via `in` keyword returns a `bool` but `required: false`
makes the dependency optional instead of disabled.
This allows compositors to handle touch pointer emulation manually,
instead of having Xwayland do it [1].

[1]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/691
This struct contains additional information for session device
change events, such as the DRM connector ID that has changed.
When a connector ID is specified in a hotplug event, don't scan all
connectors. Only scan the connector that has changed.
Callers can access output->front_buffer instead.
The protocol uses a signed integer here, which is also what the
wlr_input_method_v2_preedit_string struct provides to compositors from
the input method protocol. Sway currently just passes those int32_t
values directly to this function leading to an implicit conversion.
Removing an input device requires unlinking it from the list of all headless
input devices. For that implement a destroy function.
We were send a protocol error if INTERLACED or BOTTOM_FIRST was
set. This is incorrect for the zwp_linux_dmabuf_params.create
code-path because this kills the client without allowing it to
gracefully handle the error.

We should only send a protocol error if the client provides a bit
not listed in the protocol definition.
They are never used in practice, which makes all of our flag
handling effectively dead code. Also, APIs such as KMS don't
provide a good way to deal with the flags. Let's just fail the
DMA-BUF import when clients provide flags.
A wlroots user can easily get confused and think that `cap` refers to
wlroots buffer capabilities, not array capacity.
Co-authored-by: Simon Zeni <simon@bl4ckb0ne.ca>
@any1 any1 force-pushed the zext-screencopy-unstable-v1 branch from 9bed12b to eaf5b69 Compare February 3, 2022 22:06
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet