aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-25xdg-shell: use wlr_surface_synced for popupsSimon Ser
2023-12-25xdg-shell: use wlr_surface_synced for toplevelSimon Ser
2023-12-25xdg-shell: use wlr_surface_synced for wlr_xdg_surfaceSimon Ser
2023-12-25compositor: add wlr_surface_role.client_commitSimon Ser
2023-12-25compositor: add wlr_surface_syncedSimon Ser
A lot of protocols extend the wl_surface state. Such protocols need to synchronize their extended state with wl_surface.commit and cached states. Add a new utility for this purpose.
2023-12-25compositor: add wlr_surface_state_has_buffer()Simon Ser
2023-12-25compositor: fix wlr_surface_has_buffer() doc commentSimon Ser
The function does not check whether the upload succeeded: it does not check the wlr_client_buffer.
2023-12-25compositor: remove unnecessary wlr_surface.has_bufferSimon Ser
No need to store this bit, we can infer it from buffer_width and buffer_height.
2023-12-25compositor: adjust surface_state_move() commentSimon Ser
2023-12-25pointer-constraints-v1: reset committed on commitSimon Ser
Knowing which fields changed in the last commit is more useful than knowing which fields were ever set on the surface.
2023-12-25pointer-constraints-v1: add cursor_hint.enabledSimon Ser
This allows compositors to check whether the cursor hint is set.
2023-12-25compositor: reset wlr_surface.current.committed on commitSimon Ser
Knowing which fields changed in the last commit is more useful than knowing which fields were ever set on the surface.
2023-12-21backend: fix build against upcoming `gcc-14` (`-Werror=calloc-transposed-args`)Sergei Trofimovich
`gcc-14` added a new `-Wcalloc-transposed-args` warning recently. It detected minor infelicity in `calloc()` API usage in `wlroots`: ../backend/libinput/tablet_pad.c: In function 'add_pad_group_from_libinput': ../backend/libinput/tablet_pad.c:36:38: error: 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 36 | group->rings = calloc(sizeof(unsigned int), group->ring_count); | ^~~~~~~~ ../backend/libinput/tablet_pad.c:36:38: note: earlier argument should specify number of elements, later size of each element
2023-12-21output-layout: fix missing global for outputs with a custom modeSimon Ser
Before we were populating wlr_output.current_mode with a generated fixed mode when a custom mode was committed in the DRM backend. But that's no longer the case: now a custom mode behaves the same under the DRM backend and other backends. wlr_output_layout was still assuming that an output without a current_mode was disabled. Fix that assumption. Fixes: 5567aefb1c56 ("backend/drm: Don't add pollute fixed modes list with custom modes") Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3743
2023-12-18input-method: Simplify resetting of input stateGuido Günther
We have current and pending state and the code uses struct assignments between them and resets and frees in multiple places. Introduce a reset() function so we can unify that.
2023-12-18input-method-v2: validate commit serialpastel raschke
2023-12-18input-method-v2: free current strings on commitpastel raschke
2023-12-18input-method-v2: drop unnecessary variable and castSimon Ser
2023-12-12xcursor: fix duplicate cursor check check in load_callback()Simon Ser
wlr_xcursor_theme_get_cursor() now does some fallback logic. We don't want that for checking whether a cursor has already been loaded. Fixes: dbedcdb418f4 ("xcursor: add fallbacks for legacy names") Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3783
2023-12-12cursor: drop unnecessary commented codeSimon Ser
This is unused.
2023-12-12cursor: fix initial cursor position for new outputsSimon Ser
The fresh new wlr_output_cursor is positioned at (0, 0). Call wlr_output_cursor_move() after creating the wlr_output_cursor to fix this. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3777
2023-12-12backend/drm: return secondary backend DRM FDSimon Ser
It can be useful for compositors to get the real DRM FD instead of the one from the parent compositor. For instance, some compositors might want to perform some DRM IOCTLs there to check the driver name, fetch some DRM resources, etc. This will also be a requirement for direct scanout on secondary GPUs.
2023-12-12linux-dmabuf-v1: ignore scanout output for secondary DRM backendsSimon Ser
We don't support direct scanout on such backends yet.
2023-12-12backend/drm: add wlr_drm_backend_get_parent()Simon Ser
Allows compositors to figure out whether a DRM backend is secondary on a multi-GPU setup.
2023-12-11render/pixman: add wlr_pixman_renderer_get_buffer_image()Roman Gilg
This is similar to wlr_pixman_texture_get_image and can be useful for compositors to access the rendering data.
2023-12-10ci: drop stale dependenciesSimon Ser
ffmpeg, epoll-shim, libpng were dependencies for client examples. These have been split into a separate repository so we no longer need to install them.
2023-12-08build: automatically compute soversionSimon Ser
Instead of requiring a manual soversion bump each time we do a release, automatically compute it from the version number. In the early days we used to not bump soversion, so there is an hardcoded offset. This will need to be updated once we ship 1.0, so assert that we're still on 0.x.
2023-12-07tinywl: check initialized instead of initial_commitKirill Primak
oops
2023-12-07tinywl: don't send configures to uninitialized xdg_surfacesKirill Primak
2023-12-05render/gles2: add wlr_gles2_renderer_get_buffer_fbo()Simon Ser
Replacement for wlr_gles2_renderer_get_current_fbo(). Wayfire uses it for instance.
2023-12-04compositor: drop surface precommit eventSimon Ser
This is unused.
2023-12-04cursor: send surface scale eventsSimon Ser
wlr_cursor is responsible for sending enter/leave events, but doesn't send fractional-scale-v1 and wl_surface.preferred_buffer_scale events. This is not an easy thing to do from a compositor, so let's just do it in wlr_cursor itself.
2023-12-04render: disable linux-dmabuf without DRM FDSimon Ser
linux-dmabuf used to not need a DRM FD, however since v4 a DRM FD is required for the main_device event.
2023-12-04render/vulkan: use _SRGB image view when possibleManuel Stoeckl
This is the last of a set of commits which ensures that both textures and render buffers can be accessed through _UNORM and _SRGB image views. While _UNORM image views are not yet used for 8-bpc image formats, they will be needed in the future to support color transforms for both textures and render buffers.
2023-12-04render/vulkan: constify vulkan_format_props_find_modifierManuel Stoeckl
2023-12-04render/vulkan: create VkImage with option for _SRGB view, if possibleManuel Stoeckl
2023-12-04render/vulkan: detect which _UNORM formats support _SRGB viewsManuel Stoeckl
2023-12-04render/vulkan: extract shm texture format query into functionManuel Stoeckl
2023-12-04render/vulkan: track and use _UNORM variants of _SRGB formatsManuel Stoeckl
Later commits will start using _SRGB image views again, where appropriate.
2023-12-04wlr_damage_ring: Fix inverted conditionalAlexander Orzechowski
2023-12-04wlr_scene: fix transformed outputs backend damage clearingAlexander Orzechowski
When we cleared the pending backend damage when the output committed, we would not take into account the output transform. It's easiest to fix this by just changing pending_commit_damage to always have transformed coordinates.
2023-12-04wlr_scene: Apply output damage onceAlexander Orzechowski
We would apply it twice if we failed direct scanout. Once when we attempt direct scanout and again when we composite.
2023-12-03wlr_scene: Don't damage whole damage ring when exiting direct scanoutAlexander Orzechowski
Direct scanout damage will just accumulate on the damage ring while in direct scanout and properly damage when we exit anyway. On the flip side since we now manage backend damage submission ourselves, this won't break that either.
2023-12-03wlr_scene: Use wlr_damage_ring_rotate_buffer()Alexander Orzechowski
Compositors who use _build_state are no longer required to call damage_ring_rotate themselves. This is a minor breaking change.
2023-12-03wlr_scene: Track output damage separatelyAlexander Orzechowski
The damage ring is only supposed to keep track of damage within the swapchain
2023-12-03swapchain: Add wlr_swapchain_has_bufferAlexander Orzechowski
2023-11-30renderer: Drop buffer bindingAlexander Orzechowski
2023-11-30render: Nuke old read pixels APIAlexander Orzechowski
Sadly, the new API is not backwards compatible with the old API. Since we have already switched all users in wlroots to the new API compositors are already practically mandated to implement the new API. Let's get rid of the old one since there is no point.
2023-11-30screencopy_v1: Use new read pixels APIAlexander Orzechowski
2023-11-30backend/x11: Use wlr_texture_read_pixelsAlexander Orzechowski