MiXenia / glbt

Graphics Library, BatTeries included

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Graphics Library, BatTeries included


Languages

Language:C 98.2%Language:Objective-C 1.3%Language:Python 0.3%Language:GLSL 0.1%Language:CMake 0.1%