aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-06-03seat: Allow binding to inert seatsVäinö Mäkelä
If a seat is destroyed while a client is trying to bind it, wlroots needs to create an inert seat resource instead of crashing.
2023-06-02output/cursor: fix scale and transformSimon Ser
Many issues here: - wlr_output_cursor_set_buffer() takes a buffer already scaled for the output, not a buffer with scale=1. - wlr_output_cursor.{width,height,hotspot_x,hotspot_y} are in output buffer coordinates. - render_cursor_buffer() had hardcoded no-ops for scale and transform, instead of using the cursor surface's. Fixes: b64e7e88bfb8 ("output: add output_cursor_set_texture()")
2023-06-02cursor: fix wl_pointer.set_cursor hotspot updatesSimon Ser
A client might update the cursor with the same wl_surface as before, but with a different hotspot. Don't ignore such updates. Fixes: 9c9e3f626350 ("cursor: ignore wlr_cursor_set_surface() with same surface")
2023-06-02session-lock: fix buffer checkKirill Primak
If the first commit has no buffer, the unmap hook won't catch it. Check in the commit hook instead.
2023-06-02session-lock: remove unused wlr_session_lock_surface_v1.events.mapKirill Primak
2023-06-02xwm: check for a buffer before mappingKirill Primak
2023-06-02compositor: remove wlr_surface_role.precommitKirill Primak
It was previously used to handle unmapping properly but is obsolete now.
2023-06-02xwm: use unified map logicKirill Primak
2023-06-02drag: use unified map logicKirill Primak
2023-06-02input-method: use unified map logicKirill Primak
2023-06-02session-lock: use unified map logicKirill Primak
2023-06-02layer-shell: use unified map logicKirill Primak
2023-06-02xdg-shell: use unified map logicKirill Primak
2023-06-02subcompositor: use unified map logicKirill Primak
2023-06-02compositor: introduce unified map logicKirill Primak
2023-06-02cursor: unset wlr_output_cursor.texture on surface destroySimon Ser
When the surface is destroyed, its current wlr_texture is about to get destroyed as well. Reset wlr_output_cursor.texture to prevent use-after-free. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3652
2023-06-02cursor: ignore wlr_cursor_set_surface() with same surfaceSimon Ser
Avoids damaging the output and rendering the cursor again if it hasn't changed.
2023-06-02xwm: introduce associate/dissociate eventsKirill Primak
We'll soon introduce a unified wlr_surface map event. Up until now, compositors have been using wlr_xwayland_surface's map event to setup various wlr_surface related listeners (e.g. commit). This will no longer be possible when that event is moved over to wlr_surface. Introduce new events where the compositor can add/remove wlr_surface event listeners.
2023-06-02Revert "xwm: emit new_surface/destroy on associate/dissociate"Kirill Primak
Firing new_surface when a wlr_surface is associated to the X11 window is too late: the X11 client might've sent configure events before that. This reverts commit 039cca8a51ed0783d45fb7a5215e9ae83e4e02e2. Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3606
2023-06-01render/vulkan: improve error handling in vulkan_begin_render_pass()Simon Ser
Release the command buffer if we end up not submitting it.
2023-06-01render/vulkan: improve error handling in render_pass_submit()Simon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
2023-05-31backend/drm: introduce wlr_drm_mode_get_info()Simon Ser
This allows compositors to get back the raw drmModeModeInfo and look at DRM-specific fields and flags.
2023-05-31render/vulkan: handle vulkan_record_stage_cb() failuresSimon Ser
2023-05-31backend/drm: move forward decl up for drmModeModeInfoSimon Ser
This allows doc generators to properly associate the doc comment with the function instead of the typedef.
2023-05-30output/cursor: use new rendering APISimon Ser
2023-05-30examples: convert to new rendering APISimon Ser
Left out multi-pointer (will be removed) and quads (requires arbitrary rotation).
2023-05-30backend/drm: use new rendering APISimon Ser
2023-05-30output: add wlr_output_begin_render_pass()Simon Ser
2023-05-30wlr_scene: Introduce wlr_scene_buffer_set_opacityAlexander Orzechowski
2023-05-30wlr_scene: Make scene_rect_from_node publicAlexander Orzechowski
This is in an effort to be more consistent with both already public getters: wlr_scene_buffer_from_node and wlr_scene_tree_from_node
2023-05-30wlr_scene: Make scene_tree_from_node publicAlexander Orzechowski
This is to allow for compositors that want to be more implicit about how their scene is organized. Such a compositor may want to walk up at a certain scene node to find something such as a surface to focus on.
2023-05-30wlr_scene: Add documentation to wlr_scene_buffer_from_nodeAlexander Orzechowski
2023-05-30render/vulkan: implement render pass APISimon Ser
2023-05-28renderer/gles2: Implement render pass interfaceAlexander Orzechowski
2023-05-28renderer/gles2: Compute texture coordinates based off of vertex positionsAlexander Orzechowski
2023-05-28renderer/gles2: Merge get_buffer and create_bufferAlexander Orzechowski
2023-05-28renderer/gles2: Interpret matrix as column major in shaderAlexander Orzechowski
Avoids us needing to transpose.
2023-05-28render/vulkan: add 10, 12, and 16-bit YCbCr formatsSimon Ser
2023-05-26output: use pending render format if anySimon Ser
If a modeset contains a render format change, use that instead of the current one stored in wlr_output.render_format. This fixes render_bit_depth configuration not being applied without a second modeset in Sway.
2023-05-26render/vulkan: document TEXTURE_TRANSFORM_* in shaderSimon Ser
2023-05-26render/vulkan: drop unused vulkan_has_extension()Simon Ser
2023-05-26render/vulkan: drop unused vulkan_change_layout_queue()Simon Ser
2023-05-24render/egl: check for EGL_EXT_device_query in get_egl_device_from_drm_fd()Simon Ser
We use eglQueryDeviceStringEXT() later on, which is optional and requires support for the EGL_EXT_device_query extension.
2023-05-24render/vulkan: de-dup pipeline layout initializationSimon Ser
2023-05-24render/vulkan: add more YCbCr formatsSimon Ser
The Vulkan spec states: > For the purposes of range expansion and Y′CBCR model conversion, > the R and B components contain color difference (chroma) values > and the G component contains luma. The equations below that sentence also help understand the mapping.
2023-05-24render/vulkan: require support for linear filter for YCbCrSimon Ser
YCBCR_CONVERSION_LINEAR_FILTER is not enough: this one only covers chromaFilter. For magFilter/minFilter we need FILTER_LINEAR as well.
2023-05-24render/vulkan: check format support before creating YCbCr samplerSimon Ser
We need to check whether the format supports dma_tex_ycbcr_features before creating the YCbCr sampler.
2023-05-24render/vulkan: generalize YCbCr format supportSimon Ser
2023-05-24render/vulkan: add init_{default,ycbcr}_pipeline_layout()Simon Ser
2023-05-24render/vulkan: add vulkan_get_pipeline_layout()Simon Ser
Will make it easier to add more pipeline layouts for other YCbCr formats.