mirror of
https://github.com/hyprwm/aquamarine.git
synced 2026-05-07 11:28:14 +02:00
Read-only mirror of https://github.com/hyprwm/aquamarine
use CRTC Sequence handler if we can, poll the current sequence drmCrtcGetSequence and if it succeeds, try queue the next one if we can or fallback to the old pageflip handler. by using crtc sequences we are allowed a much higher resolution timestamp and get much more correct timestamps for our presentation events that is not rounded away. will reduce jitters and drifting in timestamps and get us lower latencies. |
||
|---|---|---|
| .github/workflows | ||
| data | ||
| docs | ||
| include/aquamarine | ||
| nix | ||
| protocols | ||
| src | ||
| tests | ||
| .clang-format | ||
| .clang-tidy | ||
| .gitignore | ||
| aquamarine.pc.in | ||
| CMakeLists.txt | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
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