Age | Commit message (Collapse) | Author |
|
Translating the right/bottom coordinates from offsets to absolute
coordinates in wlroots (rather than in the compositor) was supposed to
be more reliable, since wlroots had access to the X11 screen size.
It ended up being less reliable, because the screen size values
(xwm->screen->width_in_pixels/height_in_pixels) are not updated when the
output layout changes.
So let's remove the translation from wlroots, and let the compositor
figure it out. From what I can understand of the current XWayland code,
the X11 screen size should generally match the overall wlr_output_layout
bounding box, which the compositor has access to.
|
|
Allows compositors to set up the server (and shell) on their own.
|
|
Allows one to check whether the server is currently ready.
|
|
|
|
Co-authored-by: Puck Meerburg <puck@puckipedia.com>
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/68
|
|
|
|
The name "allow_artifacts" and associated description is very vague, and
theoretically allow for tearing behavior. Clarify that we only intend to
mean artifacts related to output configuration (e.g., modesets).
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3740
|
|
There were a couple of problems with this:
1. The behavior is unexpected. Typically objects in wlroots won't
also destroy objects that they depend on. For instance, wlr_scene_output
will not destroy the wlr_output when it's destroyed. It shouldn't be any
different for scene layouts.
2. This fixes a crash where because wlr_output_layout and wlr_scene_output
are both addons to wlr_output, we might get into a situation where
wl_list_for_each_safe might malfunction. See [1]
This means that the compositor needs to manually destroy the output
when they destroy the layout, hence ~breaking. Compositors can just
call `wlr_scene_output_destroy()` if they want to destroy both at the
same time.
[1] https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4358#note_2106260
This reverts commit 1a731596c5bcd252d8796cacb59af8b20ceb914f.
Co-authored-by: Kirill Primak <vyivel@eclair.cafe>
|
|
The newly introduced state struct can be used to retrieve this.
|
|
|
|
It makes little sense to have a catch-all grab vaildation function,
considering that e.g. tablet tool implicit grabs are possible as well.
Besides, the function has always returned true anyway.
|
|
|
|
The kernel patch has been merged, so this is available in the
official docs now.
|
|
This commit only applies to the render pass API.
|
|
The new struct rect_union is designed to make it easier to
efficiently accumulate a list of rectangles, and then operate
on an exact cover of their union.
Using rect_union, the times needed to added t rectangles, and then
compute their exact cover will be O(t), and something between Ω(t) and
O(t^2), depending on the rectangle arrangement. If one tries to do
the same by storing a pixman_region32_t and updating it with
pixman_region32_union_rect(), then total time needed would be between
Ω(t^2) and O(t^3), depending on the input. Without changing the public
API (data structure + rectangle ordering rules) for pixman_region32_t,
it is impossible to improve its worst case time.
|
|
|
|
|
|
|
|
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3677
|
|
Since headless and wayland-without-presentation-feedback were firing
present inside their commit impls, present was getting fired before
commit, which is cursed. Defer this with an idle timer so that commit
handlers can run before present handlers.
|
|
Atomic doesn't support such flags yet.
|
|
|
|
wlr_scene_output_layout_add_output() was made public by f5917f024760
("scene_output_layout: make output adding explicit") but the ownership
semantics are not obvious and should be clarified.
|
|
|
|
The flags passed to vkCreateImage() must match the flags used when
querying formats. Make this clearer by using the same variable.
|
|
`// struct <name>` appears roughly 4 times as often as
`// struct <name> *`. Switch to the former variant everywhere.
|
|
This optimization also fixes an validation error with the Vulkan
renderer by ensuring vkCmdClearAttachments does not receive empty
regions.
|
|
Up until now, frame/present events were only triggered when the
user submitted a buffer. Change the wlr_output API so that these
events are triggered when any commit is applied on an enabled
output.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3708
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3709
|
|
This will be used for the scene-graph integration.
|
|
This function is now unnecessary.
|
|
|
|
|
|
We want to eventually remove this. Let's make sure compositors
don't start using either of these functions.
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3685
|
|
We were assuming a roundtrip was enough to get an
xdg_surface.configure event. That's not the case, the protocol
spec doesn't make such a guarantee.
|
|
Keeps the main wlr_renderer.h a tad more tidy.
|
|
|
|
Backends should be using wlr_output_send_request_state to request
modesets to the compositor. This will be inlined and removed next commit.
|
|
|
|
By using this function, a compositor can display a wlroots
compositor in a sub-surface, for instance.
|
|
When integrating wlroots with another toolkit, wlroots may receive
wl_pointer.enter events for surfaces not backed by a wlr_output.
Ignore such surfaces by tagging the ones we're aware of with
wl_proxy_set_tag().
|
|
This allows compositors to use an existing wl_display, to integrate
wlroots with an existing toolkit.
|
|
The PID of an X11 window cannot change.
This is a remnant from the days when we queried the PID with a
window property, instead of using XRes.
|
|
|
|
The wlr_xwayland_surface_v1 will be destroyed automatically
from xwl_surface_role_destroy().
|
|
|
|
This adds the suspended toplevel state
|
|
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/194
|
|
|