aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/backend
AgeCommit message (Collapse)Author
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-11-23backend/session: take wl_event_loop instead of wl_displaySimon Ser
wl_display holds a lot more than wlr_session needs: wlr_session only needs to wait for a FD to become readable, but wl_display provides full access to the Wayland client and protocol objects. Switch to wl_event_loop to better reflect the above.
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-08-16backend/wayland: add wlr_wl_output_create_from_surface()Simon Ser
By using this function, a compositor can display a wlroots compositor in a sub-surface, for instance.
2023-08-16backend/wayland: take existing wl_display in wlr_wl_backend_create()Simon Ser
This allows compositors to use an existing wl_display, to integrate wlroots with an existing toolkit.
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-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-03-20backend/wayland: fix undefined reference to wlr_wl_input_device_get_seatzccrs
Amend b7e9ad79 to remove wlr_wl_input_device_get_seat definition. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3611
2022-11-24backend/multi: stop pulling <wlr/backend/session.h>Simon Ser
Unused.
2022-11-24backend/session: drop unused <libudev.h>Simon Ser
We don't actually need to pull that header here.
2022-11-15backend: drop wlr_backend_get_session()Simon Ser
This no longer has purpose.
2022-05-25Reformat doc commentsSimon Ser
Unify the way we document our APIs. See CONTRIBUTING.md for the rules.
2022-03-07types/wlr_input_device: move init and finish function to private APISimon Zeni
2022-02-21backend/headless: remove unused wlr_headless_input_deviceSimon Zeni
2021-11-25backend: remove noop backendSimon Zeni
2021-11-25backend/headless: drop wlr_headless_backend_create_with_rendererSimon Ser
The headless backend no longer needs a parent renderer: it no longer needs to return it in wlr_backend_impl.get_renderer, nor does it need to return its DRM FD in wlr_backend_impl.get_drm_fd. Drop this function altogether since it now behaves exactly like wlr_headless_backend_create.
2021-11-19backend/drm: introduce wlr_drm_leaseSimon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3183
2021-11-19Introduce WLR_DEVICE_LEASE eventsSimon Ser
This will allow the DRM backend to reload its lessee list.
2021-11-18backend: remove wlr_backend_get_rendererSimon Zeni
2021-11-02backend/session: introduce wlr_device_change_eventSimon Ser
This struct contains additional information for session device change events, such as the DRM connector ID that has changed.
2021-09-21backend/drm: add support for panel orientationSimon Ser
Expose the panel orientation with wlr_drm_connector_get_panel_orientation. Leave it to the compositor to consume this information and configure the output accordingly. Closes: https://github.com/swaywm/wlroots/issues/1581
2021-09-08backend/drm: introduce wlr_drm_backend_get_non_master_fdSimon Zeni
2021-09-08backend/drm: implement drm lease functionSimon Zeni
2021-05-21backend: introduce wlr_backend_finishSimon Ser
This new functions cleans up the common backend state. While this currently only emits the destroy signal, this will also clean up the renderer and allocator in upcoming patches.
2021-04-28backend: introduce backend_get_buffer_capsSimon Zeni
2021-04-27backend/session: add wlr_device.events.removeSimon Ser
2021-04-14backend/session: Remove session_implKenny Levinsen
libseat provides all session functionality, so there is no longer need for a session backend abstraction. The libseat device ID, seat handle and event loop handle are moved to the main wlr_session and wlr_device structs.
2021-04-11backend/session: Remove logind backendKenny Levinsen
This is instead delegated to libseat.
2021-01-17backend/drm: add wlr_drm_connector_get_idSimon Ser
This allows a compositor to get a KMS connector object ID from a wlr_output. The compositor can then query more information about the connector via libdrm. This gives more freedom to compositors and allows them to read KMS properties that wlroots doesn't know about. For instance, they could read the EDID or the suggested_{X,Y} properties and change their output configuration based on that.
2021-01-16backend: add get_drm_fd to interfaceSimon Ser
This function allows backends to return the DRM FD they are using. This will allow the allocator and the renderer to use the right device.
2021-01-07remove unnecessary egl includesSimon Zeni
2021-01-04backend/session: allow wlr_session_find_gpus to return an errorSimon Ser
Sometimes wlr_session_find_gpus will encounter an error. This is different from finding zero GPUs. On error, wlr_session_find_gpus already returns -1. However, this is casted to size_t, so callers uncorrectly assume this is a success. Instead, make wlr_session_find_gpus return a ssize_t and allow callers to handle the error accordingly.
2020-12-30Remove wlr_create_renderer_func_tSimon Ser
This callback allowed compositors to customize the EGL config used by the renderer. However with renderer v6 EGL configs aren't used anymore. Instead, buffers are allocated via GBM and GL FBOs are rendered to. So customizing the EGL config is a no-op.
2020-11-19backend/session: replace session_signal with events.activeSimon Ser
This is more idiomatic wlroots API. The new name makes it clear that the signal is emitted when wlr_session.active changes.
2020-11-19backend/session: wait for DRM device if none foundSimon Ser
Wait for a DRM device if none is found in wlr_session_find_gpus. This can happen if the compositor is loaded before the display kernel driver. This supersedes the logind CanGraphical property. To test, e.g. with i915 and sway: rmmod -f i915 sway & modprobe i915 Closes: https://github.com/swaywm/wlroots/issues/2093
2020-11-19backend/session: introduce wlr_session.events.add_drm_cardSimon Ser
This is triggered when a new DRM card is added. An easy way to test this patch is `modprobe vkms`.
2020-11-19backend/session: operate on wlr_deviceSimon Ser
Instead of operating on FDs in {open,close}_device, operate on wlr_devices. This avoids the device lookup in wlr_session and allows callers to have access to wlr_device fields. For now, we use it to remove wlr_session_signal_add and replace it with a more idiomatic wlr_session.events.change field. In the future, other events will be added.
2020-04-22backend/headless: add wlr_headless_backend_create_with_rendererSimon Ser
This allows one to create a headless backend with an existing renderer.
2020-01-10Drop RDP backendDrew DeVault
Users interested in remote access to wlroots compositors should use wayvnc: https://github.com/any1/wayvnc
2019-12-23meson: Various improvementsScott Anderson
Bumps minimum version to 0.51.0 - Remove all intermediate static libraries. They serve no purpose and are just add a bunch of boilerplate for managing dependencies and options. It's now managed as a list of files which are compiled into libwlroots directly. - Use install_subdir instead of installing headers individually. I've changed my mind since I did that. Listing them out is annoying as hell, and it's easy to forget to do it. - Add not_found_message for all of our optional dependencies that have a meson option. It gives some hints about what option to pass and what the optional dependency is for. - Move all backend subdirectories into their own meson.build. This keeps some of the backend-specific build logic (especially rdp and session) more neatly separated off. - Don't overlink example clients with code they're not using. This was done by merging the protocol dictionaries and setting some variables containing the code and client header file. Example clients now explicitly mention what extension protocols they want to link to. - Split compositor example logic from client example logic. - Minor formatting changes
2019-11-13backend/wayland: expose remote objectsSimon Ser
Expose the remote wl_display, wl_surface and wl_seat used by the Wayland backend. This allows compositors to customize the Wayland backend and to have more freedom. For instance a compositor might want to handle clipboard and drag-and-drop from the remote Wayland compositor. Another compositor might want to setup pointer constraints.
2019-10-27backend/drm: add support for custom modesSimon Ser
Use the CVT algorithm to create a drmModeModeInfo.
2019-07-27Remove all wayland-server.h includesSimon Ser
The documentation for wayland-server.h says: > Use of this header file is discouraged. Prefer including > wayland-server-core.h instead, which does not include the server protocol > header and as such only defines the library PI, excluding the deprecated API > below. Replacing wayland-server.h with wayland-server-core.h allows us to drop the WL_HIDE_DEPRECATED declaration.
2019-04-08Add FreeRDP backend for remote desktop supportDrew DeVault
2019-01-20Add wlr_x11_output_set_titleJente Hidskes
2019-01-20wlr/backend/x11.h: add documentationJente Hidskes
Copied from wlr/backend/wayland.h and modified accordingly.
2019-01-19Add noop.h to include/wlr/backend/meson.buildRyan Dwyer
2019-01-17Introduce noop backendRyan Dwyer
The noop backend is similar to headless, but it doesn't contain a renderer. It can be used as a place to stash views for when there's no physical outputs connected.
2019-01-10Add wlr_wl_output_set_titleDrew DeVault
2018-11-13backend/x11: Make header order consistentScott Anderson