Evan is the rendering and runtime layer used by XIDER. It provides the Vulkan graphics pipeline, platform backends for OpenXR and GLFW, and the frame/update loop that drives the application.
- Vulkan-based rendering and swapchain management.
- Desktop and XR platform abstractions.
- Mesh, shader, and material helpers.
- Optional backend integration for OpenXR or GLFW.
- Engine — owns the frame loop and coordinates update, draw, and present.
- Platform — abstracts the target backend (OpenXR or GLFW) and platform (Android, Linux, Windows, macOS).
- Device & swapchain — manage Vulkan resources and frame ownership.
- Render objects — GPU meshes registered through the engine and drawn each frame.
- Mesh / shader / material — describe renderable content.
Evan is a library; it is consumed by an application (such as XIDER) that provides a platform implementation. A minimal setup selects one backend and one platform:
cmake -S . -B build \
-DBUILD_FOR_GLFW=ON \
-DBUILD_FOR_LINUX=ON
cmake --build build- CMake 3.10+
- A C++20 compiler
- The Vulkan SDK (download from LunarG)
- Doxygen + Graphviz (only for
-DBUILD_DOCS=ON)
Evan fetches its dependencies (Utility, GLM, STB) via CMake FetchContent.
Select exactly one backend and one platform:
cmake -S . -B build \
-DBUILD_FOR_GLFW=ON \
-DBUILD_FOR_LINUX=ON \
-DBUILD_TESTING=ON
cmake --build build
ctest --test-dir build --output-on-failureOptional options:
-DBUILD_TESTING=ON— build and run the test suite. See Testing & Coverage for coverage reports.-DBUILD_DOCS=ON— build Doxygen documentation.-DBUILD_BENCHMARKS=ON— build the benchmark harness.
Once installed, downstream projects can use find_package(evan):
cmake --install build --prefix /path/to/prefixfind_package(evan REQUIRED)
target_link_libraries(my_app PRIVATE evan::evan)- How Evan Works
- Architecture
- Getting Started
- Versioning & Support
- Technical Choices
- Code Conventions
- Commit Conventions
- Testing & Coverage
We welcome contributions from the community! If you're interested in contributing to Evan, please check out our Contributing Guidelines for more information on how to get involved.
Evan is released under the MIT License. See CODE_OF_CONDUCT.md for our community standards and SECURITY.md for reporting vulnerabilities.