RavEngine Graphics Library - a thin RHI for Vulkan, DirectX12, and Metal
- Write shaders in Vanilla GLSL - no macro hacks or custom DSL
- Transpiled shaders retain information in debug, for easier shader source debugging
- Easy-to-understand Metal-like API that maintains the conventions of modern graphics APIs
- Low overhead
- most calls map directly to their platform-specific counterparts
- If only one backend is enabled (default for Apple platforms), all virtual function calls dissapear
- Runtime shader compilation via compiler library
- Automatically-managed resource barriers (when using Vulkan or DX12)
- A game engine. See RavEngine if that is what you are looking for.
- A windowing / input library. See the code samples for an example that integrates with SDL2.
- Production-ready. Use at your own risk.
- For beginners. Users should be familiar with at least one other modern graphics API.
- macOS (intel + Apple silicon)
- iOS (device only)
- tvOS (device only)
- Windows 10+ (Arm64 + x86_64)
- Windows 10+ UWP (Arm64 + x86_64)
- Linux
- WebAssembly (WIP)
See RavEngine/RGL-Samples for code samples. To compile the library, use CMake:
# ...
add_subdirectory(path/to/RGL)
# ...
target_link_libraries(your_program PUBLIC rgl)