Aquamarine is a very light linux rendering backend library
Go to file
Ikalco 561f50bfae
drm: don't connect before crtcs are guaranteed (#68)
2024-08-29 15:51:04 +02:00
.github/workflows
data
docs docs: document AQ_DRM_DEVICES 2024-08-11 21:43:58 +02:00
include/aquamarine drm: recheck crtcs before connecting on udev event (#65) 2024-08-26 20:36:16 +02:00
nix Nix: add note about wayland-scanner 2024-08-22 14:31:09 +03:00
protocols
src drm: don't connect before crtcs are guaranteed (#68) 2024-08-29 15:51:04 +02:00
tests
.clang-format
.gitignore
CMakeLists.txt CMakeLists: wayland.xml is in wayland-scanner pkgdatadir (#55) 2024-08-19 14:02:14 +01:00
LICENSE
README.md
VERSION props: bump version to 0.3.3 2024-08-19 20:21:51 +02:00
aquamarine.pc.in
flake.lock
flake.nix

README.md

Aquamarine

Aquamarine is a very light linux rendering backend library. It provides basic abstractions for an application to render on a Wayland session (in a window) or a native DRM session.

It is agnostic of the rendering API (Vulkan/OpenGL) and designed to be lightweight, performant, and minimal.

Aquamarine provides no bindings for other languages. It is C++-only.

Stability

Aquamarine depends on the ABI stability of the stdlib implementation of your compiler. Sover bumps will be done only for aquamarine ABI breaks, not stdlib.

Building

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`

TODOs

  • Wayland backend
  • DRM backend (DRM / KMS / libinput)
  • Virtual backend (aka. Headless)
  • Hardware plane support