* core: use -Wpedantic and fix warnings
dont use anonymous structs, iso c++ forbids it. compound literals is a
c99 thing use designated c++20 initializing instead.
* flake.lock: update
* core: rename .bits to .values
make the name more appropiate to its usage.
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* drm/renderer: use gles3 vertex array objects
depend on gles3 and use vertex array objects in shaders, and upon drawing
only bind/unbind the vao instead of calling glVertexAttribPointer every blit.
* renderer: ensure same program is used once
ensure we only call glUseProgram on same program once.
* renderer: remove gles2 context creation
we are now using gles3 functions that will not work in a gles2 context,
remove any attempts of using it.
* renderer: move SShader functions to source
move SShader out of gl struct and move createVao and destructor to
source file.
From cmake documentation, Linux-specific chapter:
Projects may use the ``OpenGL::GL`` target (or ``OPENGL_LIBRARIES``
variable) to use legacy GL interfaces. These will use the legacy GL
library located by ``OPENGL_gl_LIBRARY``, if available. If
``OPENGL_gl_LIBRARY`` is empty or not found and GLVND is available,
the ``OpenGL::GL`` target will use GLVND ``OpenGL::OpenGL`` and
``OpenGL::GLX`` (and the ``OPENGL_LIBRARIES`` variable will use the
corresponding libraries). Thus, for non-EGL-based Linux targets, the
``OpenGL::GL`` target is most portable.
which means linking with OpenGL::GL makes cmake find legacy libGL.so or
GLX libraries, and as for now, the former contains GLX symbols and cannot
be built without X libraries. Since we are working with EGL, it wouldn't
provide extra portability, either.
This patch switches to link aquamarine with modern OpenGL::OpenGL, which
contains core OpenGL API only, makes it possible to build on a
wayland-only system. Tested on eweOS, which is a distro without X
libraries.
Link: https://os.ewe.moe/
Signed-off-by: Yao Zi <ziyao@disroot.org>
This would fix a cross-compile issue where hyprwayland-scanner is pulled in for
target but needs to run on host.
Signed-off-by: Markus Volk <f_l_k@t-online.de>