aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-07fix outdated comment in wlr_output.hMaxVerevkin
2024-01-04Fix bool return typesSimon Ser
This makes wlroots build in C23 mode. C23 is more strict and rejects implicit conversions from bool to a pointer.
2024-01-03render: stop auto-creating wl_drmSimon Ser
wl_drm is a legacy interface superseded by the linux-dmabuf protocol. All clients should migrate. As a first step, stop creating the wl_drm global by default. This should let us discover any remaining issues in clients. Compositors can still manually create the global if they want to. As a second step, we can completely drop our implementation.
2024-01-03wl_drm: add deprecation noticeSimon Ser
2024-01-03region: add docs for wlr_region_scale_xy() and wlr_region_confine()Simon Ser
2023-12-30backend/drm: save current refresh rateSimon Ser
wlr_output.refresh is populated by core wlr_output, and thus will be zero for a custom mode with an unset refresh rate. Save the refresh rate from the drmModeModeInfo in wlr_drm_connector instead. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3791
2023-12-27scene: drop wlr_scene_set_presentation()Simon Ser
2023-12-27presentation-time: drop wlr_presentation argSimon Ser
There can only be a single presentation-time global advertised to clients, this it's unnecessary to pass around the wlr_presentation pointer.
2023-12-25tearing-control-v1: synchronize state with surfaceSimon Ser
2023-12-25session-lock-v1: use wlr_surface_syncedSimon Ser
2023-12-25session-lock-v1: drop negative buffer size checksSimon Ser
The buffer size will never be negative, and the negative checks are distracting from the real checks here.
2023-12-25content-type-v1: use wlr_surface_syncedSimon Ser
2023-12-25pointer-constraints-v1: use wlr_surface_syncedSimon Ser
2023-12-25layer-shell-v1: use wlr_surface_syncedSimon Ser
2023-12-25xdg-decoration: use wlr_surface_synced for toplevelSimon Ser
2023-12-25subcompositor: use wlr_surface_syncedSimon Ser
2023-12-25presentation-time: use wlr_surface_syncedSimon Ser
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.