aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-15wlr_scene: Update outputs if subpixel status changesAlexander Orzechowski
This is important for buffers that are meant to render any sort of text.
2023-11-15wlr_scene: Update outputs when primary output is changedAlexander Orzechowski
Helpers care about the primary output. They need to know when it changes even if intersection status has not changed necessarily.
2023-11-15wlr_scene: Update outputs when output scale/transform changesAlexander Orzechowski
We want to call the outputs updated signal when an output scale or transform changes. Otherwise helpers like the scene surface helpers will not be notified of scale changes and not pass them to clients.
2023-11-15backend/drm: leave CRTCs on when shutting downSimon Ser
This avoids a black screen during multiple seconds on shutdown. To fully allow for flicker-free transitions between DRM masters, we will also need [1]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4394 Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3497
2023-11-15backend/drm: ensure plane surfaces are cleaned up on shutdownSimon Ser
Right now this is done "by chance" because we disable all CRTCs on shutdown. However, we'll stop doing this. Plus, if disabling a CRTC fails, we don't cleanup properly.
2023-11-14Add missing type declarations in headersKirill Primak
2023-11-14wlr_scene: Introduce wlr_scene_subsurface_tree_set_clipAlexander Orzechowski
2023-11-14wlr_scene_surface: Introduce scene_surface_set_clipAlexander Orzechowski
2023-11-14set_buffer_with_surface_state: Take whole surface structAlexander Orzechowski
2023-11-14wlr_scene_subsurface_tree: Addon to sceneAlexander Orzechowski
We will need this later so that we can determine the subsurface tree that owns any given scene node.
2023-11-14wlr_scene: Amend scene_buffer.point_accepts_input to take coordinate pointersAlexander Orzechowski
The pointers mean that we can mutate them. This will be useful later so we can hide details from the compositor when we clip subsurface trees.
2023-11-14tinywl: don't use "I"/"my" in docsKirill Primak
2023-11-14tinywl: fix xdg_toplevel_destroy() docsKirill Primak
2023-11-14tinywl: stop using the word "view" to refer to toplevelsSimon Ser
"View" has been cargo-culted from Weston. In Weston, a view is not even necessarily a toplevel -- it's just a way to draw an arbitrary somewhere (a surface may be painted at multiple locations simultaneously). The Weston concept has been misunderstood and then was carried over to rootston, Sway, and tinywl. Let's just use the official Wayland wording instead.
2023-11-13tinywl: fix crash when previously focused surface is not a toplevelSimon Ser
It can be e.g. a popup. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3754
2023-11-13xdg-shell: add wlr_xdg_{toplevel,popup}_try_from_wlr_surface()Simon Ser
Convenience helpers for compositors. Saves them the trouble of manually checking the role (and if they forget to do so, prevents an invalid cast).
2023-11-06wlr-output-management: Send custom modes to clientsVäinö Mäkelä
Since commit 5567aefb, fixed modes haven't been automatically generated for custom modes, so the output management implementation needs to be able to handle them directly. To avoid polluting the mode list, only a single custom mode can be listed at a time and will be removed when a fixed mode is set. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3744
2023-11-02ci: halt on UBSan error in smoke testSimon Ser
By default UBSan prints a message and carries on, which makes it easy to miss errors.
2023-11-01xcursor: add fallbacks for legacy namesSimon Ser
Some XCursor themes still use the legacy names instead of the newer cursor naming spec [1]. Fall back to the legacy name if the standard one could not be found. [1]: https://www.freedesktop.org/wiki/Specifications/cursor-spec/ Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3746
2023-10-31Remove unnecessary codeJiDe Zhang
Not needs set GL_DEPTH_TEST, Because when rendering to a framebuffer that has no depth buffer, depth testing always behaves as though the test is disabled, The initial value for each capability with the exception of GL_DITHER is GL_FALSE.
2023-10-31cursor: log missing XCursorSimon Ser
Log a debug message when the XCursor theme is missing a cursor. Eases debugging. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3746
2023-10-31wlr_cursor: update cursor when output enable and transform changedsunzhguy
Signed-off-by: zhoulei <zhoulei@kylinos.cn> Signed-off-by: sunzhguy <sunzhigang1@kylinos.cn>
2023-10-30backend: drop wlr_backend_get_presentation_clock()Simon Ser
We can just assume CLOCK_MONOTONIC everywhere. Simplifies the backend API, and fixes clock mismatches when multiple backends are used together with different clocks.
2023-10-29xdg-toplevel: don't send maximized if tiled is requested but not supportedKirill Primak
This is a bit too magical and may break compositors which try not to send duplicate configure events.
2023-10-26xwayland: add wlr_xwayland_set_workareas()John Lindgren
This function allows compositors to set the _NET_WORKAREA property on the root window. XWayland clients use _NET_WORKAREA to determine how much of the screen is not covered by panels/docks. The property is used for example by Qt to determine areas of the screen that popup menus should not overlap (see QScreen::availableVirtualGeometry).
2023-10-26util/token: add docsSimon Ser
2023-10-26util/token: rename TOKEN_STRLEN to TOKEN_SIZESimon Ser
TOKEN_STRLEN is not actually the strlen() of the token. It's the size taken by the token included the final zero byte. Change the name to make this clearer, and remove unnecessary +1's.
2023-10-26render/vulkan: use VK_KHR_global_priorityeri
References: #3386
2023-10-26xdg-shell: use wlr_surface.unmap_commitKirill Primak
2023-10-26render/vulkan: remove unused queue_props in rendererSimon Zeni
2023-10-26layer-shell: track surface init stateKirill Primak
2023-10-26layer-shell: don't use wlr_surface_role.unmap hookKirill Primak
A layer-shell surface can be unmapped if wlr_layer_shell_v1 is destroyed or the client has committed a NULL buffer. Let's use the previously introduced wlr_surface.unmap_commit to handle the latter case instead; this is more consistent with the xdg_surface implementation logic, where using the hook is more trouble than it's worth. Additionally, this commit adds an unconditional surface reset on destroy, so popups are properly cleaned up even if originally created with an unmapped layer-shell surface as a parent. Doing so with the role unmap hook would either result in possibly resetting the surface twice, which is suboptimal, or having an awkward `if (mapped) { unmap() } else { reset() }` check.
2023-10-26compositor: add wlr_surface.unmap_commitKirill Primak
This flag can be used to figure out whether a particular commit has unmapped the surface. Private state for now in case we find a better way to track this.
2023-10-26layer-shell: check the configured flag earlierKirill Primak
2023-10-25examples: drop dead client codeSimon Ser
Client examples have been moved to another repo, but it seems I forgot to delete some files. Fixes: 0bb445eeffc5 ("examples: split clients in separate repository")
2023-10-21renderer/vulkan: don't add two alphas together in blend funcBrett Ernst
2023-10-19linux_dmabuf_v1: convert to try_fromeri
References: wlroots/wlroots#884
2023-10-19drm: convert to try_fromeri
References: wlroots/wlroots#884
2023-10-19buffer: convert to try_fromeri
References: wlroots/wlroots#884
2023-10-17render/vulkan: undo alpha premult before sRGB encoding/decodingSimon Ser
sRGB encoding/decoding needs to happen with straight alpha, not pre-multiplied alpha.
2023-10-16Fix output layers order error on wayland backendJiDe Zhang
2023-10-14xwayland: stop translating _NET_WM_STRUT_PARTIAL coordinatesJohn Lindgren
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.
2023-10-12examples: split clients in separate repositorySimon Ser
The client examples are useful to try out protocols, however they don't need to live in the wlroots repository. Having both clients and compositors in the same place is confusing. The wlroots API changes often but protocols are set in stone.
2023-10-12Revert "backend/drm: Automatic non-blocking commits"Simon Ser
This reverts commit 45ba35719e874f7e8651e088c0582fe50301e731. Sadly, this causes regressions on amdgpu [1] and even with these fixed, there are fundamental issues with non-blocking modesets [2]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3745 [2]: https://oftc.irclog.whitequark.org/dri-devel/2023-10-11#1697031838-1697036920;
2023-10-12build: rename libdrm partial dep to be more explicitSimon Ser
The variable is named "libdrm" but it's a partial dependency with just the headers. Reflect this in the name to avoid confusion (Meson variables are global to the whole project).
2023-10-10Drop wl_client and user data assertions in bind handlersKirill Primak
A client can never be NULL and user data assertions aren't really useful there.
2023-10-10xwayland: add wlr_xwayland_create_with_server()Simon Ser
Allows compositors to set up the server (and shell) on their own.
2023-10-10xwayland/server: add ready flagSimon Ser
Allows one to check whether the server is currently ready.
2023-10-10backend/drm: Automatic non-blocking commitsKenny Levinsen
We currently only perform non-blocking commits for non-modeset commits with a buffer attached. Perform non-blocking commits whenever there is no pending pageflip event. If a non-blocking modeset commit fails, which can happen if the driver implicitly added more CRTCs to the commit that we did not know we had to wait for, retry with a blocking commit. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2239
2023-10-10docs: add architecture documentSimon Ser