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