Age | Commit message (Collapse) | Author |
|
Client examples using wlr_egl would fail with EGL_BAD_CONFIG because they
need an EGL config. Set the config attribs to a non-NULL value to make
sure wlr_egl creates an EGL config.
Fixes: 037710b1d428 ("render/egl: support config-less wlr_egl")
|
|
The Wayland EGL platform doesn't have visuals.
|
|
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.
|
|
Just use wlr_texture.{width,height} directly.
|
|
Now that the Wayland backend has moved to wlr_swapchain, only
client examples use the dependency. Stop linking against wayland-egl
in the wlroots library.
|
|
This uncovered many places where we were using things without directly
including them.
|
|
There's no reason to have duplicate enums
|
|
Based on the wlr-protocols PR:
https://github.com/swaywm/wlr-protocols/pull/52
|
|
|
|
This example was relying on wl_display_dispatch being enough to fetch
output information. This worked by chance.
Add an explicit wl_display_roundtrip.
Other examples don't setup wl_output listeners, so they should be fine.
Fixes: 297354f84772 ("Remove unnecessary wl_display_dispatch calls")
Closes: https://github.com/swaywm/wlroots/issues/2386
|
|
wl_display_roundtrip already takes care of dispatching the display.
|
|
|
|
|
|
|
|
|
|
|
|
Closes #2303
|
|
|
|
Calling wlr_renderer_end after wlr_output_commit would make an
assertion fail.
|
|
Remove the wlr_linux_dmabuf_v1_create call. wlr_renderer_init_wl_display
will take care of creating the linux-dmabuf global if the OpenGL
implementation supports it.
|
|
The original code wasn't wrong since we were manually writing a null
byte anyway, but this makes GCC happy.
Closes: https://github.com/swaywm/wlroots/issues/2273
|
|
|
|
|
|
This makes it a little bit less annoying to provide the right arguments.
All options have reasonable defaults.
|
|
Closes: https://github.com/swaywm/wlroots/issues/1963
|
|
If someone want to use screencopy as is processing multiple screenshots - it could be hard to find this issue with shm.
|
|
Again, copy'n'search'n'replace the idle inhibit example to become a
simple keyboard shortcuts inhibit example, adding the active and
inactive events.
Getting the initial inhibitor needs to be done later than for idle
inhibit to avoid an error "xdg_surface has never been configured".
Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
|
|
|
|
Due to the way the wlr_output API was changed, these examples would
never get a frame event to start the rendering loop. We now commit the
outputs to start it.
|
|
|
|
|
|
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
|
|
$ screencopy
shm_open failed
failed to create buffer
$ posixshmcontrol ls
MODE OWNER GROUP SIZE PATH
--------- foo foo 33177600 /wlroots-screencopy
|
|
This requires functions without a prototype definition to be static.
This allows to detect dead code, export less symbols and put shared
functions in headers.
|
|
|
|
|
|
|
|
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.
|
|
These are undocumented, outdated protocols that have a better wlr-protocols
equivalent.
|
|
|
|
This is necessary for direct scan-out and other upcoming features. This patch
changes the output API to look like the wl_surface API.
Outputs now have some double-buffered state: the frame to be submitted
(currently only wlr_renderer frames are supported) and the damaged region.
To attach a pending frame, use wlr_output_attach_render. To set the pending
damaged region, use wlr_output_set_damage.
To submit the pending state, call wlr_output_commit. This will submit the
pending frame to the backend.
To migrate from the old API to the new one:
- Replace wlr_output_make_current calls by wlr_output_attach_render
- Replace wlr_output_swap_buffers calls by wlr_output_set_damage and
wlr_output_commit
|
|
|
|
|
|
|
|
fullscreen-shell-v1: initial protocol implementation
|
|
|
|
As evdev-proto is installed by CI some files have been missed:
../examples/pointer-constraints.c:2:10: fatal error: 'linux/input-event-codes.h' file not found
#include <linux/input-event-codes.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~
../examples/relative-pointer-unstable-v1.c:5:10: fatal error: 'linux/input-event-codes.h' file not found
#include <linux/input-event-codes.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Relative pointers
|
|
|