aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
AgeCommit message (Collapse)Author
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-25pointer-constraints-v1: add cursor_hint.enabledSimon Ser
This allows compositors to check whether the cursor hint is set.
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-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-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-30wlr_texture: Introduce wlr_texture_preferred_read_formatAlexander Orzechowski
2023-11-30wlr_texture: Introduce wlr_texture_read_pixels_options helpersAlexander Orzechowski
2023-11-30wlr_texture: Introduce wlr_texture_read_pixelsAlexander Orzechowski
2023-11-30output: replace wlr_render_timer arg with wlr_buffer_pass_optionsSimon Ser
This scales better when more render pass options are added.
2023-11-30render/gles2: save/restore context when creating/submitting a render passSimon Ser
This is useful for e.g. lazily blitting a texture for readback purposes while rendering.
2023-11-30render/gles2: document EGL context gotchasSimon Ser
2023-11-30output: drop stale references to wlr_output_attach_render()Simon Ser
It turns out we forgot about the function declaration in the header. Also some docs were still referring to that function. Move the wlr_output_attach_render() docs to wlr_output_begin_render_pass().
2023-11-29render: Drop rendering_with_bufferAlexander Orzechowski
This is always true now that we can only render with a buffer.
2023-11-29output: Drop back_bufferAlexander Orzechowski
2023-11-29output: Drop wlr_output_attach_renderAlexander Orzechowski
2023-11-29renderer: Drop wlr_renderer_beginAlexander Orzechowski
2023-11-29damage_ring: add wlr_damage_ring_rotate_buffer()Simon Ser
This adds an alternate way to use wlr_damage_ring without the concept of buffer age. Buffer age is a concept inherited from EGL but there is no real reason why we should continue to use that in wlroots. Instead, use wlr_buffer pointers. Eventually, we should be able to remove the buffer age based functions.
2023-11-25Revert "subcompositor: emit new_subsurface immediately"Kirill Primak
new_subsurface emitted immediately isn't actually that useful. Revert the change and document that this event is special. This reverts commit 504b9491f05d3227d45ea6bcc9c347e1a6bf9586.
2023-11-25matrix: deprecateSimon Ser
Compositors should no longer need matrix operations to render: the old rendering API has been removed, and the new API doesn't take matrices as input.
2023-11-24compositor: deprecate wlr/types/wlr_region.hKirill Primak
The only function in that header is now also declared in wlr/types/wlr_compositor.h.
2023-11-23output: Drop transform matrixAlexander Orzechowski
2023-11-23layer-shell: emit new_surface event at the proper timeKirill Primak
2023-11-23xdg-{shell,decoration}: improve eventsKirill Primak
This commit changes the behavior of `new_*` signals to better match their names (see https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3608). wlr_xdg_shell.events.new_surface is now emitted when an xdg_surface is created, and wlr_xdg_shell.events.new_{toplevel,popup} events are introduced to get notified when an xdg_{toplevel,popup} is created. Same applies to `wlr_xdg_decoration_manager_v1.events.new_toplevel_decoration`. As a result, wlr_xdg_surface.added and wlr_xdg_toplevel_decoration_v1.added are removed, as we no longer need to track whether the corresponding event was emitted. Additionally, this commit changes the behavior of wlr_xdg_surface.events.destroy: it is now emitted when the xdg_surface is destroyed, as the name suggests. wlr_xdg_{toplevel,popup}.events.destroy events are added to get notified when an xdg_{toplevel,popup} is destroyed.
2023-11-23output: take wl_event_loop in wlr_output_init()Simon Ser
We don't need the whole wl_display here anymore. The wl_event_loop is enough.
2023-11-23output: take wl_display in wlr_output_create_global()Simon Ser
Currently wlr_output holds a wl_display, but it will go away soon. Instead of relying on that field in wlr_output_create_global(), make the dependency explicit by taking a wl_display as argument.
2023-11-23output-layout: take wl_display in constructorSimon Ser
The output layout creates and destroys wl_output globals. We will soon need the wl_display to do so.
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-11-23util/transform: add wlr_output_transform_coords()Simon Ser
We hand-roll this in multiple places.
2023-11-23util/transform: move over wl_output_transform helpersSimon Ser
These aren't really tied to wlr_output.
2023-11-22render: drop legacy rendering APISimon Ser
2023-11-21input-inhibitor: dropKirill Primak
wlr_input_inhibitor.h has been marked as deprecated in 0.17.0.
2023-11-20linux-dmabuf-v1: skip import check on split render/display SoCsSimon Ser
Unfortunately we have no way to get back the proper render node in that case. This will be fixed with [1]: with that Mesa patch, the wlr_renderer will return the proper render node and the existing logic will work fine. [1]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825 Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3757
2023-11-14Add missing type declarations in headersKirill Primak
2023-11-14wlr_scene: Introduce wlr_scene_subsurface_tree_set_clipAlexander Orzechowski
2023-11-14wlr_scene_surface: Introduce scene_surface_set_clipAlexander Orzechowski
2023-11-14wlr_scene: Amend scene_buffer.point_accepts_input to take coordinate pointersAlexander Orzechowski
The pointers mean that we can mutate them. This will be useful later so we can hide details from the compositor when we clip subsurface trees.
2023-11-13xdg-shell: add wlr_xdg_{toplevel,popup}_try_from_wlr_surface()Simon Ser
Convenience helpers for compositors. Saves them the trouble of manually checking the role (and if they forget to do so, prevents an invalid cast).
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-10-26xwayland: add wlr_xwayland_set_workareas()John Lindgren
This function allows compositors to set the _NET_WORKAREA property on the root window. XWayland clients use _NET_WORKAREA to determine how much of the screen is not covered by panels/docks. The property is used for example by Qt to determine areas of the screen that popup menus should not overlap (see QScreen::availableVirtualGeometry).
2023-10-26xdg-shell: use wlr_surface.unmap_commitKirill Primak
2023-10-26layer-shell: track surface init stateKirill Primak
2023-10-26compositor: add wlr_surface.unmap_commitKirill Primak
This flag can be used to figure out whether a particular commit has unmapped the surface. Private state for now in case we find a better way to track this.