aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2023-02-01xcursors: Alias existing cursor defaults to cursor-spec cursor namesConsolatis
wlr_xcursor_get_resize_name() returns cursor-spec [1] based names but the default cursor icons shipped in include/xcursor/cursor_data.h use traditional X cursor names instead. Compositors that use wlr_xcursor_get_resize_name() to resolve an edge to a cursor icon name may thus be unable to render appropriate cursor icons for users that don't have a cursor-spec compliant cursor theme installed on their system or have it installed in an unusual place. This patch adds cursor-spec cursor icon name aliases. [1] https://www.freedesktop.org/wiki/Specifications/cursor-spec/
2023-01-31xdg-shell: rename wlr_xdg_popup.committed to sent_initial_configureSimon Ser
We made a similar change to wlr_xdg_toplevel.
2023-01-31xdg-shell: rename wlr_xdg_toplevel.added to sent_initial_configureSimon Ser
This is more descriptive, and avoids the confusion with wlr_xdg_surface.added.
2023-01-31backend/drm: set "max bpc" property based on pixel formatSimon Ser
Since 1d581656c756 ("backend/drm: set "max bpc" to the max") we set the "max bpc" property to the maximum value. The kernel driver is supposed to clamp this value depending on hardware capabilities. All kernel drivers lower the value depending on the GPU capabilities. However, none of the drivers lower the value depending on the DP-MST link capabilities. Thus, enabling a 4k@60Hz mode can fail on some DP-MST setups due to the "max bpc" property. Additionally, it's not a good idea to unconditionally set "max bpc" to the max. A high bpc consumes more lanes and more clock speed, which means higher power consumption and the busy lanes cannot be used for something else (e.g. other data transfers on a USB-C cable). For now, let's tie the "max bpc" to the pixel format of the buffer. Introduce a heuristic to make "high bit-depth buffer" a synonym of "I want the best quality". This is not perfect: a "max bpc" higher than 8 might be desirable for pixel formats with a color depth of 8 bits, for instance when the color management KMS properties are used. But we don't really support that yet, so let's leave this for later. Closes: https://github.com/swaywm/sway/issues/7367
2023-01-26seat/keyboard: constify wlr_seat_keyboard_notify_enter()Simon Ser
2023-01-26seat/keyboard: constify wlr_seat_keyboard_notify_modifiers()Simon Ser
2023-01-26seat/keyboard: constify args in wlr_seat_keyboard_enter()Simon Ser
2023-01-26seat/keyboard: constify wlr_seat_keyboard_send_modifiers()Simon Ser
2023-01-21wlr_scene: Send intersecting list of scene outputs for outputs_update signalAlexander Orzechowski
2023-01-21output-layout: improve closest point for no outputs caseKirill Primak
Without outputs, all points are equally invalid anyway, but for e.g. cursor warping it makes more sense to preserve the original position.
2023-01-03tablet-tool: revert bitfield in enum wlr_tablet_tool_tip_stateSimon Ser
This was changed to a bitfield by mistake. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3484#note_1697926
2022-12-23session-lock: send more protocol errorsIsaac Freund
The invalid_destroy and invalid_unlock protocol errors aren't currently sent by wlroots and instead left up to the compositor. However, we can handle these as well without much additional complexity. This also adds a missing wl_resource_destroy() call if the lock is inert in lock_handle_unlock_and_destroy().
2022-12-15keyboard: improve documentationSimon Ser
2022-12-15backend/drm: remove wlr_drm_crtc.legacy_crtcSimon Ser
We only need it for one thing: gamma size. Moreover, some bits in the drmModeCrtc will become out-of-date, for instance the current mode, so let's avoid caching the whole struct and only keep what we know won't change.
2022-12-14keyboard: only update LEDs when changedxiliuya
2022-12-13backend/drm: rename wlr_drm_backend.outputs to connectorsSimon Ser
This list contains wlr_drm_connector entries, and there is no guarantee that the wlr_output fields are initialized.
2022-12-13backend/drm: add drm_connector_status_str()Simon Ser
Helper to stringify a connector status.
2022-12-09util/region: forbid "shrinking" a region with wlr_region_expand()Kirill Primak
The logic isn't correct.
2022-12-07backend/drm: store pending FB in stateSimon Ser
Instead of having a pending_fb field on the struct wlr_drm_plane, move it to struct wlr_drm_connector_state. That way, there's no risk having a stale pending FB around: the state doesn't survive across tests and commits. The cursor is a special case because it's disconnected from the atomic state: the wlr_backend_impl.set_cursor hook sets the cursor for the next commit. Move the field to wlr_drm_connector.cursor_pending_fb.
2022-12-07backend/drm: use separate field to store pending cursor FBSimon Ser
We'll move the pending primary FB into the connector state in the next commit, dropping wlr_drm_plane.pending_fb in the process. Introduce a dedicated field for the cursor, which has to be managed in a special way due to our set_cursor API.
2022-12-06build: unify naming for HAVE_* definesSimon Ser
We sometimes used HAS_, sometimes polluted the LIBINPUT_ namespace, etc.
2022-12-06backend/libinput: use internal_configSimon Ser
Removes project arguments.
2022-12-06xwayland: use internal_configSimon Ser
Avoids the need to have a separate config.h, and removes C compiler arguments.
2022-12-06build: use a configuration file for internal featuresSimon Ser
This avoids re-building the whole project when switching one Meson option. This shrinks down the compiler invocation command line, making it more readable and making it easier to inspect which flags are passed in (the generated file can be opened). Additionally this is more consistent with our external feature handling, which uses <wlr/config.h> already.
2022-12-06backend/x11: ensure buffers are released on shutdownSimon Ser
2022-12-06util/env: make env_parse_switch() return a size_tSimon Ser
This function is guaranteed to never return a negative value. This is important because we use arr[env_parse_switch(...)] in a few places.
2022-12-06util/env: add docsSimon Ser
I always forget what env_parse_switch() does on error.
2022-12-06render/vulkan: wait for DMA-BUF fencesSimon Ser
The Vulkan spec doesn't guarantee that the driver will wait for implicitly synchronized client buffers before texturing from them. radv happens to perform the wait, but anv doesn't. Fix this by extracting implicit fences from DMA-BUFs, importing them into Vulkan as a VkSemaphore objects, and make the render pass wait on these VkSemaphores.
2022-12-06render/dmabuf: add dmabuf_export_sync_file()Simon Ser
2022-12-06wlr_xdg_activation_v1: add new_token eventRonan Pigott
2022-12-05output-layout: improve APIKirill Primak
- wlr_output_layout_add{,_auto}() now return a bool indicating whether the function has succeeded. - wlr_output_layout_move() is removed. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1083
2022-12-05output-layout: remove wlr_output_layout_output_stateKirill Primak
wlroots uses "// private state" comments to denote structure fields which shouldn't be accessed by compositors, so let's drop wlr_output_layout_output_state and inline its fields into wlr_output_layout_output; this also simplifies layout output creation.
2022-12-05output-layout: fix function decl indentationKirill Primak
2022-12-05xwayland/xwm: replace role with addonSimon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3545
2022-12-05compositor: add wlr_surface.events.precommitSimon Ser
2022-12-03compositor: document wlr_surface_{enter,leave,send_frame_done}Simon Ser
2022-12-03wlr_drm: Add missing wlr_buffer importAlexander Orzechowski
2022-12-02render/vulkan: make shm/dmabuf split clearer in wlr_vk_format_propsSimon Ser
struct wlr_vk_format_props contains a mix of properties for shm and dmabuf, and it's not immediately clear which fields are for which kind of buffer. Use a nested struct to group the fields.
2022-12-02render/vulkan: make vulkan_format_props_find_modifier() return value constSimon Ser
2022-12-02wl-drm: don't store wlr_rendererSimon Ser
Query the formats at init time, then forget about the renderer. This will allow wl_drm to be created with a list of formats instead of a renderer, and will behave better after a GPU reset.
2022-12-02render/drm-format-set: add wlr_drm_format_set_copy()Simon Ser
2022-12-02render/vulkan: drop "_format" in wlr_vk_format fieldsSimon Ser
"format" is already in the name, no need to repeat ourselves. `format->vk_format` sounds a bit redundant.
2022-12-01output: drop enable/mode eventsSimon Ser
The backend no longer changes the output state behind the compositor's back. Instead, compositors can listen to the "commit" event and check for WLR_OUTPUT_STATE_ENABLED/WLR_OUTPUT_STATE_MODE. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2300
2022-12-01output-damage: stop listening for output mode eventsSimon Ser
These will go away.
2022-12-01scene: stop listening for output enable/mode eventsSimon Ser
These will go away.
2022-12-01output_init_render: Allow re-initializationAlexander Orzechowski
This lets the compositor call this function after the fact to replace the renderer/allocator after a renderer context lost.
2022-12-01wlr_texture: Expose owning rendererAlexander Orzechowski
2022-11-30linux-dmabuf-v1: introduce wlr_linux_dmabuf_v1_create()Simon Ser
Some compositors may want to use the linux-dmabuf-v1 implementation with a completely custom renderer. Add a function to create the global with a default feedback.
2022-11-30linux-dmabuf-v1: drop wlr_renderer fieldSimon Ser
This isn't used anymore.
2022-11-30linux-dmabuf-v1: don't use wlr_renderer to send legacy format listSimon Ser
The wlr_renderer field will go away in a subsequent commit. Build the legacy device list from the default feedback instead.