#opengl #gl #api-bindings #tinygl

tgl

Bindings to TinyGL, a Small, Free and Fast Subset of OpenGL

2 releases

Uses old Rust 2015

0.1.1 Dec 1, 2022
0.1.0 Mar 18, 2022

#928 in Graphics APIs

MIT/Apache

290KB
6.5K SLoC

C 5.5K SLoC // 0.1% comments Rust 1K SLoC Shell 2 SLoC // 0.8% comments

tgl - Rust bindings to TinyGL

Crates.io Documentation

TinyGL is a very lightweight partial OpenGL implementation. Its small size makes it ideal for static linking.

These bindings aim to broadly replicate the API of the gl crate, though there are notable differences.

Features

  • Impressive performance with low resource requirements
  • Highly portable OpenGL implementation, with no runtime dependencies
  • #[no_std] support out of the box

Call for Examples

Want to contribute a neat example of something you've made with tgl? Got a project that uses tgl as a dependency you'd like to see featured here? Open a PR!

Use tgl::Init to set up a "zbuffer", which TinyGL provides and we expose via tgl::zbuffer::open. A zbuffer can copy to framebuffers such as rust_minifb with ease. Check out the examples directory to see this in action.

With a framebuffer up and running, you can start making GL calls. Remember that TinyGL is only a partial implementation, and not all the methods you might expect are present.

Dependencies

~0–2MB
~38K SLoC