https://github.com/ravengine/rgl
RavEngine Graphics Library - a thin RHI for Vulkan, DirectX12, and Metal
https://github.com/ravengine/rgl
abstraction directx12 game-development game-engine-framework metalkit rhi vulkan
Last synced: 3 months ago
JSON representation
RavEngine Graphics Library - a thin RHI for Vulkan, DirectX12, and Metal
- Host: GitHub
- URL: https://github.com/ravengine/rgl
- Owner: RavEngine
- License: apache-2.0
- Created: 2022-12-26T00:05:43.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2025-04-01T01:03:20.000Z (6 months ago)
- Last Synced: 2025-05-15T13:12:09.076Z (5 months ago)
- Topics: abstraction, directx12, game-development, game-engine-framework, metalkit, rhi, vulkan
- Language: C++
- Homepage:
- Size: 4.53 MB
- Stars: 54
- Watchers: 2
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# RGL
RavEngine Graphics Library - a thin RHI for Vulkan, DirectX12, and Metal### Features
- 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)### What it is not
- A game engine. See [RavEngine](https://github.com/RavEngine/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.### Supported Platforms
- macOS (intel + Apple silicon)
- iOS (device only)
- tvOS (device only)
- Windows 10+ (Arm64 + x86_64)
- Linux
- WebAssembly (WIP)### Getting Started
See [RavEngine/RGL-Samples](https://github.com/RavEngine/RGL-Samples) for code samples. To compile the library, use CMake:
```cmake
# ...
add_subdirectory(path/to/RGL)
# ...
target_link_libraries(your_program PUBLIC rgl)```