aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-19wlr_scene: Pull scene_node_get_root into a private headerAlexander Orzechowski
We will need this for surface emulation on buffers.
2022-05-19wlr_scene: Make scene_buffer_from_node publicAlexander Orzechowski
2022-05-19wlr_scene: Add a function to also specify damage when applying a buffer to ↵Alexander Orzechowski
wlr_scene_buffer
2022-05-19wlr_scene: Add a way to choose when input interactions happen on a bufferAlexander Orzechowski
2022-05-19wlr_scene: Add frame_done signal for wlr_scene_bufferAlexander Orzechowski
Let's also change the name of the function. Motivation [1]. [1] https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3496#note_1357824
2022-05-19wlr_scene: Add primary_output property to wlr_scene_bufferAlexander Orzechowski
2022-05-19 wlr_scene: Add presentation signal for wlr_scene_bufferAlexander Orzechowski
2022-05-19wlr_scene: Make wlr_scene_render_output privateAlexander Orzechowski
This function sidesteps damage tracking and output awareness on buffers/surfaces. This function isn't a great fit for the API. Let's also inline the function and simplify it.
2022-05-19wlr_scene: Fix missing calls to scene_node_update_outputsAlexander Orzechowski
There were a couple places this was missing - on mode change of an output. If the resolution changes for example nodes may fall out of the view. - on commits on an output for scale or transform changes - when the transform of a buffer is changed. If the dest size is not set, the buffer may have been rotated potentially changing its size if the buffer width != height
2022-05-19wlr_scene: Add output_enter/output_leave signalsAlexander Orzechowski
When we destroy a scene buffer, let's make sure that we call output_leave signals before we finish the node which will call destroy listeners.
2022-05-19wlr_scene_output: Send output leave events before destroying the outputAlexander Orzechowski
2022-05-19wlr_scene: Add setter for buffer of a wlr_scene_bufferAlexander Orzechowski
2022-05-19wlr_scene: Allow buffer in wlr_scene_buffer to be NULLAlexander Orzechowski
This is useful to emulate an unmapped surface.
2022-05-15xdg-shell: specify version in wlr_xdg_shell_createSimon Ser
With protocol additions such as [1], compositors currently have no way to opt out of the version upgrade. The protocol upgrade will always be backwards-compatible but may require new compositor features. The status quo doesn't make it possible to ship a protocol addition without breaking the wlroots API. This will be an issue for API stabilization [2]. To address this, let compositors provide a maximum version in the function creating the global. We need to support all previous versions of the interface anyways because of older clients. This mechanism works the same way as Wayland clients passing a version in wl_global.bind. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3514 [2]: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1008 References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3397
2022-05-12util/shm: clear mode permission bits in allocate_shm_file_pairSimon Ser
This ensures the file cannot be re-opened with write permissions. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3429
2022-05-11backend/drm: fetch EDID manufacturer from udev_hwdbSimon Ser
Maintaining our internal table up-to-date is tedious: one needs to manually go through the PnP ID registry [1] and check whether we're missing any entry. udev_hwdb already has an API to fetch a manufacturer name from its PnP ID. Use that instead. [1]: https://uefi.org/pnp_id_list
2022-05-10tinywl: don't crash when there is no keyboardSimon Ser
Running with WLR_BACKENDS=headless, there is no keyboard device. Avoid crashes like so: ../tinywl/tinywl.c:136:2: runtime error: member access within null pointer of type 'struct wlr_keyboard' ../tinywl/tinywl.c:136:2: runtime error: member access within null pointer of type 'struct wlr_keyboard' AddressSanitizer:DEADLYSIGNAL ================================================================= ==331107==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000120 (pc 0x556ed03e4e99 bp 0x7ffce834bc10 sp 0x7ffce834bbb0 T0) ==331107==The signal is caused by a READ memory access. ==331107==Hint: address points to the zero page. #0 0x556ed03e4e99 in focus_view ../tinywl/tinywl.c:136 #1 0x556ed03eb3be in xdg_toplevel_map ../tinywl/tinywl.c:603 #2 0x7f75d6f768db in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7f75d6e9cac7 in xdg_surface_role_commit ../types/xdg_shell/wlr_xdg_surface.c:315 #4 0x7f75d6eb6944 in surface_commit_state ../types/wlr_compositor.c:466 #5 0x7f75d6eb7b02 in surface_handle_commit ../types/wlr_compositor.c:523 #6 0x7f75d5714d49 (/usr/lib/libffi.so.8+0x6d49) #7 0x7f75d5714266 (/usr/lib/libffi.so.8+0x6266) #8 0x7f75d68cb322 (/usr/lib/libwayland-server.so.0+0xd322) #9 0x7f75d68c65cb (/usr/lib/libwayland-server.so.0+0x85cb) #10 0x7f75d68c91c9 in wl_event_loop_dispatch (/usr/lib/libwayland-server.so.0+0xb1c9) #11 0x7f75d68c6d36 in wl_display_run (/usr/lib/libwayland-server.so.0+0x8d36) #12 0x556ed03eef55 in main ../tinywl/tinywl.c:905 #13 0x7f75d5d2330f in __libc_start_call_main (/usr/lib/libc.so.6+0x2d30f) #14 0x7f75d5d233c0 in __libc_start_main@GLIBC_2.2.5 (/usr/lib/libc.so.6+0x2d3c0) #15 0x556ed03e46e4 in _start (/home/simon/src/wlroots/build/tinywl/tinywl+0x136e4)
2022-05-10backend/headless: allow variable refresh rateSimon Ser
Instead of waking up each 16ms to emit a frame event, arm the timer when the output is committed. This allows the headless backend to idle when nothing changes on screen, and behaves similarly to the other backends.
2022-05-10xdg-toplevel: store states on the stackKirill Primak
2022-05-09examples/layer-shell: premultiply alphaKirill Primak
2022-05-09examples/egl_common: switch rgba formatJohannes
The current ARGB2101010 has really "corase" control over the alpha. Particularily, examples/layer-shell would look really strange with certain parameters. For examples, when passing an alpha of 0.84, the box would not appear transparent at all anymore. Patched as suggested by @mstoeckl -- thank you!
2022-05-07xwayland: terminate when no client is connectedSimon Ser
Automatically shutdown Xwayland 10s after all X11 clients have gone away.
2022-05-07xwayland: add wlr_xwayland_server_options.terminate_delaySimon Ser
This allows users to specify a delay after which the Xwayland process terminates itself when there are no more X11 clients connected.
2022-05-07render/gles: add support for some 16-bpc unsigned shm formatsManuel Stoeckl
These formats require EXT_texture_norm16, which in turn needs OpenGL ES 3.1. The EXT_texture_norm16 extension does not support passing gl_internalformat = GL_RGBA to glTexImage2D, as can be done for formats available in OpenGL ES 2.0, so this commit adds a field to wlr_gles2_pixel_format to provide a more specific internalformat parameter to glTexImage2D.
2022-05-06tinywl/tinywl: clean up tinywl_output when wlr_output is gonexiaoyaobing
Add destroy event processing. Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3416
2022-05-02drm-lease-v1: skip device on wlr_drm_backend_get_non_master_fd failureSimon Ser
On some setups, wlr_drm_backend_get_non_master_fd may fail because of permission issues. Instead of exposing a bogus global, bail out. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3391
2022-05-02xcursor: check that XDG base directory path is absoluteAntonin Décimo
The spec reads: > All paths set in these environment variables must be absolute. If an > implementation encounters a relative path in any of these variables it should > consider the path invalid and ignore it. and > If $XDG_DATA_HOME is either not set or empty, a default equal to > $HOME/.local/share should be used. Testing that the path is absolute also entails that is is non-empty.
2022-05-01render/vulkan: fix undefined reference to wlr_texture_is_vkzccrs
Added the implement of wlr_texture_is_vk. Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3419
2022-04-29backend/wayland: reset active pointer on destroyKirill Primak
2022-04-28CONTRIBUTING.md: update init/finish descriptionKirill Primak
2022-04-28Revert "backend/wayland: zero out finished input devices"Simon Ser
This reverts commit 03c88b07ba64185de7183f52f5f3e4875c5c1d5d. init functions now zero out the structs.
2022-04-28Zero-initialize structs in init functionsSimon Ser
Ensures there is no field left to its previous undefined value after calling an init function.
2022-04-26util/addon: fix public includeSimon Ser
Everything in wlr/ is public and should be included via angle-bracket include directives.
2022-04-24CONTRIBUTING.md: make forks public to let the CI runtiosgz
This little note helps first-time contributors who are in doubt regarding the repo visibility.
2022-04-23xwayland: do not double free server on destroyzsugabubus
2022-04-22backend/wayland: zero out finished input devicesKirill Primak
2022-04-22backend/wayland/pointer: fix indentationKirill Primak
2022-04-22seat: Don't finish wlr_keyboard if server was never startedAlexander Orzechowski
2022-04-17Revert "Copy xcb_icccm structs into wlroots"John Lindgren
The original commit introduced a bug by transposing the order of some of the fields in xcb_size_hints_t. Since XCB ICCCM support is required now, we can just eliminate the duplicate structs. With minor changes: - Remove #ifdef HAS_XCB_ICCCM guards - Fix #includes - Fix references to local size_hints struct This reverts commit 12b9b1a4bdf00742cc510c2329c7a66c649b3ab0.
2022-04-16types/seat/wlr_seat.c: fix focused_client being null after seat_client ↵Ferdinand Bachmann
recreation
2022-04-16types/wlr_pointer_gestures_v1.c: get client from seat client instead of resourceFerdinand Bachmann
2022-04-15types/wlr_pointer_gestures_v1: null-check both focused_surface and ↵Ferdinand Bachmann
focused_client (fixes #3385)
2022-04-14scene/output-layout: fix scene destroy handlerKirill Primak
2022-04-13xdg-toplevel: don't schedule configures on state requestsKirill Primak
2022-04-13xdg-foreign-v2: treat unmapped parents as NULLKirill Primak
2022-04-13xdg-foreign-v1: treat unmapped parents as NULLKirill Primak
2022-04-13xdg-toplevel: treat unmapped parents as NULLKirill Primak
2022-04-03meson: use target_machine instead of host_machineKirill Chibisov
2022-04-01tinywl: remove outdated non-feature from README.mdKirill Primak
Now that tinywl uses wlr_scene under the hood, damage tracking comes for free.
2022-04-01tinywl: don't generate xdg-shell-protocol.cKirill Primak
It's unused, and wlroots-based compositors don't need to do this anyway.