/glbt

Graphics Library, BatTeries included

Primary LanguageC

Graphics Library, BatTeries included

A slightly-abstracted layer on top of raw GL/GLAD/GLFW.

  • Written in plain C89 with no frills so as to be extensible in other languages via FFI.
  • Designed to be flexible enough to swap out for vulkan, metal, dx12, etc. etc. if I ever feel like it.
  • Honestly I just got tired of writing boilerplate GL code in whatever languages I wanted to explore.

Contributors to ./bindings/ welcome if you know how to write C bindings in your favorite language!

TODOs:

  • make API more modern and less GL-specific. Remove quirks.
  • target WebGL2-level functionality and make full use of those features. We’re already using 4.0 baseline so why not.
  • rework textures to use separate sampler objects.
  • swap out push constants for constant buffers i.e. UBOs and add them to the Pipeline creation along with textures.
  • rework Pipeline to use some kind of bind group rather than just setting textures and buffers and constants individually
  • I know it kinda clashes with GL’s API but if I want to swap out for webgpu or vulkan down the road this needs to happen.