Age | Commit message (Collapse) | Author |
|
According to the spec:
> If <n_rects> is 0 then <rects> is ignored and the entire
> surface is implicitly damaged and the behaviour is equivalent
> to calling eglSwapBuffers.
When we want to swap with an empty damage region, set the damage to a single
empty rectangle.
|
|
|
|
The deleted includes are redundant, because other headers will include
the necessary files. Additionally, they cause build failures, because
including EGL/egl.h or EGL/eglext.h directly, instead of through
wlr/render/egl.h or wlr/render/interface.h, will mean that
MESA_EGL_NO_X11_HEADERS will not have been defined, and so the EGL
headers will attempt to pull in unnecessary X11 headers that may not
exist on the system.
For the headers produced by glgen.sh, the includes couldn't simply be
deleted, because no other header would include the EGL headers. Neither
wlr/render/egl.h or wlr/render/interface.h felt appropriate to include,
so I opted instead to copy the MESA_EGL_NO_X11_HEADERS definition before
the EGL includes.
|
|
|
|
This types adds a container for formats + modifiers.
A list that is of [format [modifier]] was chosen instead of
[format modifer] because that is how GBM accepts them.
Co-Authored-By: emersion <contact@emersion.fr>
|
|
|
|
|
|
Fixes #1094
|
|
The read format is dependent on the output, so we first need to make it
current. This fixes a race condition in wlr-screencopy-v1 where a dmabuf
client would cause EGL_NO_SURFACE to be bound at the time when
screencopy needs to query for the preferred format, causing GL errors.
|
|
|
|
This should be set to EGL_OPENGL_ES2_BIT.
Also fixes EGL config attributes in the headless and X11 backends.
|
|
|
|
We were assuming GL_BGRA_EXT was always supported.
We now check that it's supported for rendering. We fail if it isn't because
this format is specified as "always supported" by the Wayland protocol.
We also check if it's supported for reading pixels. A new preferred_read_format
function returns the preferred format that can be used to read pixels. This is
used by the screencopy protocol.
|
|
|
|
Also rephrase the write_pixels comment.
|
|
It's not allowed to change the format of a texture so remove
the confusing parameter.
|
|
|
|
This removes any assumptions about how the libdrm headers are installed,
and uses the pkg-config include directories as we're "supposed to".
This only adds a partial dependency, since we don't actually need to
link against libdrm.
|
|
Fix headless backend
|
|
This PR broke a private nixpkgs definition I have for wlroots: https://github.com/swaywm/wlroots/pull/1304
It is fixed by changing `#include <drm_fourcc.h>` to `#include <libdrm/drm_fourcc.h>`, which follows what is already done in the dmabuf example.
|
|
It was only working if you ran it underneath an already-working Wayland
compositor. Running with the headless backend on the API would break.
|
|
If a client uses an older version of the dmabuf protocol, use the
`formats` event instead of `modifiers` (since that didn't exist in older
versions).
With a bit of necessary guessing, support dmabuf importing even when
EGL_EXT_image_dma_buf_import_modifiers isn't present instead of
failing up front.
|
|
|
|
This fixes building wlroots as a subproject.
|
|
This reverts commit 9c886f20b97b6ab1ac85b849f1fe7f16eb199ff0.
|
|
This breaks wlroots when used as a meson subproject.
This reverts commit dea311992eb4ff3e343c3cf5b0603034223d2a42, reversing
changes made to 6db9c4b74667c1d917d720f5e96985a2461569fb.
|
|
|
|
Texture functions, that create and manipulate textures should switch
the current context if necessary.
thanks to: @emersion
Fixes #934
|
|
This reverts commit a0afedcd8fbeb2013252e629d524aa83cdd9326e.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
renderer is checked for NULL, but was dereferenced before that.
Found through static analysis
|
|
|
|
Fix GLES2 renderer to use glGetUniformLocations locations
|
|
|
|
|
|
Detecting whether eglSwapBuffersWithDamageEXT or
eglSwapBuffersWithDamageKHR is used should be based on the extension
string, not only on the availability of the function.
|
|
|
|
|
|
|
|
|
|
This is needed as uniform locations are driver implementation-specific.
|
|
render: remove wlr_renderer_check_import_dmabuf
|
|
|
|
Signed-off-by: Genki Sky <sky@genki.is>
|
|
It's possible to implement it outside the renderer, by creating a
texture and destroying it right away. This reduces the API surface
of the renderer.
|