aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
AgeCommit message (Collapse)Author
2022-11-25shm: add create() function without a wlr_rendererSimon Ser
This allows compositors which don't use wlr_renderer to still use wlroots' wl_shm implementation.
2022-11-24scene: introduce wlr_scene_buffer.events.outputs_updateKirill Primak
This event is useful for e.g. sending the preferred buffer scale to the client.
2022-11-24compositor: make renderer optionalSimon Ser
This is a first step towards moving texture uploading out of wlr_compositor. This commit allows compositors to opt-out of the texture uploading by passing a NULL wlr_renderer. An immediate user of this is gamescope, which currently implements a stub wlr_renderer just to make wlr_compositor happy.
2022-11-24compsitor: document wlr_compositor_create()Simon Ser
2022-11-24backend/multi: stop pulling <wlr/backend/session.h>Simon Ser
Unused.
2022-11-24render/gles2, render/pixman: stop pulling <wlr/backend.h>Simon Ser
No reason why the GLES2/Pixman renderers should depend on the backend.
2022-11-24backend: stop pulling <wlr/backend/session.h>Simon Ser
We can just forward-declare the struct instead.
2022-11-24backend/session: drop unused <libudev.h>Simon Ser
We don't actually need to pull that header here.
2022-11-24render: stop pulling <wlr/backend.h>Simon Ser
Let's just forward-declare struct wlr_backend instead. We need to fixup the Vulkan renderer: it needs makedev(), which got included by chance via <wlr/backend.h> → <wlr/backend/session.h> → <libudev.h>.
2022-11-18xwayland/xwm: add support for xwayland-shell-v1Simon Ser
2022-11-18xwayland/shell: add wlr_xwayland_shell_v1_surface_from_serial()Simon Ser
2022-11-18xwayland/server: delay non-lazy startupSimon Ser
This allows users to setup event listeners before the server is actually started.
2022-11-18xwayland/server: add start signalSimon Ser
This can be used to know when wlr_xwayland_server decides to start a new Xwayland process. At that point the wl_client has already been created but the Xwayland process hasn't been started yet.
2022-11-18xwayland: add wlr_xwayland_shell_v1_destroy()Simon Ser
2022-11-18xwayland: add wlr_xwayland_shell_v1_set_client()Simon Ser
2022-11-18xwayland-shell-v1: new protocol implementationSimon Ser
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/163
2022-11-17Nuke deprecated include/wlr/types/wlr_surface.hKirill Primak
Use wlr_compositor.h and wlr_subcompositor.h instead.
2022-11-17output: drop wlr_output_damage_whole()Simon Ser
This function is not used anymore. Backends have no good reason to damage outputs.
2022-11-15backend: drop wlr_backend_get_session()Simon Ser
This no longer has purpose.
2022-11-15backend: return wlr_session in wlr_backend_autocreate() callSimon Ser
Up until now, wlr_backend_autocreate() created the wlr_session and then stuffed it into struct wlr_multi_backend so that compositors can grab it later. This is an abuse of wlr_multi_backend and the wlr_backend API: wlr_backend_get_session() and wlr_multi_backend.session only exist to accomodate the needs of wlr_backend_autocreate(). What's more, the DRM and libinput backends don't implement wlr_backend_impl.get_session. Instead, return the struct wlr_session to the compositor in the wlr_backend_autocreate() call. wlr_backend_get_session() will be removed in the next commit.
2022-11-15Introduce wlr_shmSimon Ser
This is a re-implementation of wl_shm. The motivations for using this over the one shipped in libwayland are: - Properly handle SIGBUS when accessing a wl_buffer's underlying data after the wl_buffer protocol object has been destroyed. With the current code, we just crash if the client does that and then shrinks the backing file. - No need to fight the wl_shm_buffer API anymore. This was awkward because we weren't notified when clients created a wl_shm buffer, and this doesn't play well with our wlr_buffer abstraction. - Access to the underlying FD. This makes it possible to forward the wl_shm buffer to a parent compositor with the Wayland/X11 backends. - Better stride checks. We can use our format table to ensure that the stride is consistent with the bpp and width.
2022-11-15input-inhibitor: deprecateKirill Primak
The protocol itself has been deprecated.
2022-11-15render: add wlr_renderer.events.lostSimon Ser
2022-11-15render: make wlr_renderer_begin return a boolSimon Ser
2022-11-15render: allow wlr_renderer_impl.begin to failSimon Ser
Make it return a bool to indicate success/failure. Adapt the various implementations to check errors.
2022-11-15render: make some wlr_renderer fields privateSimon Ser
2022-11-15render: add docs for wlr_rendererSimon Ser
2022-11-15content-type-v1: add version param to wlr_content_type_manager_v1_create()Simon Ser
2022-11-15output: introduce request_state eventSimon Ser
This allows backends to request the compositor to change the state of an output. References: https://github.com/swaywm/wlroots/issues/2300#issuecomment-761819673
2022-11-15content-type-v1: new protocol implementationSimon Ser
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/150
2022-11-15compositor: drop wlr_surface.{sx,sy}Simon Ser
The concept of a persistent accumulated surface offset is wrong from a protocol point-of-view. wl_surface.offset is tied to a commit, its interpretation depends on the surface role. For example, with the following sequence: wl_surface@1.offset(1, 1) wl_surface@1.commit() wl_pointer@2.set_cursor(wl_surface@1, 42, 42) The final cursor hotspot is (42, 42): the commit which happened before the set_cursor request has no impact on the hotspot computation. The wlr_output_cursor logic already uses wlr_surface.current.{dx,dy}. wlr_scene's drag icon doesn't, update it accordingly.
2022-11-15render/vulkan: add wlr_vk_texture_has_alphazccrs
Allow to get whether has alpha channel of the VkImage, it can help an optimization to disable blending when the texture doesn't have alpha. Because the VkFormat isn't enough because it's always set to VK_FORMAT_B8G8R8A8_SRGB or VK_FORMAT_R8G8B8A8_SRGB.
2022-11-14wlr_scene: Add drag icon helperAlexander Orzechowski
2022-11-14layer-shell-v1: specify version in constructorSimon Ser
This allows compositors to indicate which features they support, and is required to eventually make this API stable. References: https://github.com/swaywm/sway/issues/7260
2022-11-13xwayland: fix wlr_xwayland_surface_from_wlr_surface() docsKirill Primak
32daa43a454bcea1306ad0976fd4161ce8c7e86f has removed the asymmetry in the relationship of a wlr_surface and an unmapped wlr_xwayland_surface, when wlr_surface.role_data wasn't NULL but wlr_xwayland_surface.surface was. However, this also means that wlr_xwayland_surface_from_wlr_surface() now returns NULL if the wlr_surface is unmapped. Fix the documentation to reflect this.
2022-11-11scene: constify region APIsSimon Ser
2022-11-11region: constifySimon Ser
2022-11-11output: constify damage APIsSimon Ser
2022-11-11output-damage: constify wlr_output_damage_add()Simon Ser
2022-11-11damage-ring: constify wlr_damage_ring_add()Simon Ser
2022-11-11buffer: constify wlr_client_buffer_apply_damage()Simon Ser
2022-11-11render/texture: constify wlr_texture_update_from_buffer()Simon Ser
2022-11-11util/region: constifySimon Ser
2022-11-11output-damage: deprecateKirill Primak
2022-11-11wlr_scene: Fix texture reuseAlexander Orzechowski
Add private interface to ignore a buffer that's locking a client_buffer for damage tracking. This should eventually be replaced by wlr_raster.
2022-11-08damage-ring: add missing headersKirill Primak
2022-11-08render/vulkan: add some interfaces to allow compositors to integratezccrs
Added wlr_vk_renderer_get_* functions to allow get the VkInstance, VkPhysicalDevice, VkDevice, queue family of a wlr_vk_renderer. Added wlr_vk_renderer_get_current_image_attribs function to allow get the VkImage of current renderer buffer to use on compositors. Added wlr_renderer_is_vk function, it's like the wlr_renderer_is_gles2, returns true if the wlr_renderer is a wlr_vk_renderer. Added wlr_vk_image_get_attribs function to get a VkImage and it's extras information (e.g. a VkImageLayout and VkImageFormat of the VkImage) from a wlr_texture.
2022-11-06xwayland/xwm: use role object destroy handlerKirill Primak
2022-11-06xdg-shell: use role object destroy handlerKirill Primak
2022-11-06drag-icon: use role object destroy handlerKirill Primak