grr!
A bare metal library for OpenGL 4.5+
[]
= "0.6"
grr
aims at providing a thin layer above OpenGL 4.5+, exposing a modern API orientated on Vulkan.
The sole purpose of the library is to have a cleaned up API for fast prototyping.
Features
- API is built around direct state access
- Following Vulkan terminology and function names
- Only provided latest GL functionality
- Enforce sRGB framebuffer handling
Getting started
Checkout our Hello Triangle example to see the library in action!
Example
// Bind graphics pipeline (shaders)
grr.bind_pipeline;
// Configure vertex attributes
grr.bind_vertex_array;
// Bind vertex buffers for fetching attribute data
grr.bind_vertex_buffers;
// Clear default framebuffer
grr.clear_attachment;
// Draw triangles
grr.draw;
// Present on screen!
window.swap_buffers.unwrap;
Examples
Hello Triangle
cargo run --example triangle
Device Information
cargo run --example device
Texture (Logo)
cargo run --example texture
(Maybe-)Physically-based Rendering (IBL)
Assets (model and HDRI) need to be extracted into examples/assets
before running it!
cargo run --example pbr --release
- Example ported from/based on the PBR tutorial from https://learnopengl.com/ (CC BY-NC 4.0).
Cerberus
model by Andrew Maximov (https://artisaverb.info/Cerberus.html)Popcorn Lobby
HDRI from sIBL Archive (http://www.hdrlabs.com/sibl/archive.html)