rswinkle/PortableGL
An implementation of OpenGL 3.x-ish in clean C observed · 2026-08-28
Health v2 · maintenance only
80/100
- Activity 96
- Release rhythm 49
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 171
- age_days: 2183
- days_rel: 181
- days_push: 29
- n_releases_24m: 2
Adoption not part of the score
1279 stars · 60 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
PortableGL is a software implementation of OpenGL 3.x core written in clean C99 as a single-header library in the style of the stb libraries. It renders to arbitrary 32- or 16-bit framebuffers, using C/C++ functions instead of GLSL for shaders.
Use cases
- render 3D graphics without GPU or OpenGL drivers
- add OpenGL-style rendering to any codebase via a single header
- learn how an OpenGL rendering pipeline works internally
- write shaders as plain C functions instead of GLSL
- render to offscreen framebuffers or image files
- port OpenGL applications to platforms without native GL support
When to choose
- you need portable software rendering with no GPU dependency
- you want a small, easy-to-integrate single-header C library
- you want readable source code to study or modify the rendering pipeline
- you need to match OpenGL 3.x features in pure C/C++
When to avoid
- you need maximum rendering performance or hardware acceleration
- you require exact OpenGL API compliance or a GLSL compiler
- you are building a production game that should use the real GPU driver
Facets
library · maturity active
graphics game-engine simulation graphics cross-platform cross-platform windows cpp c opengl software-rendering rasterizer single-header c99 shaders 3d-graphics sdl2 game-development linux macos
1 source
- readme: https://github.com/rswinkle/PortableGL · fetched 2026-08-28 · 6bd1638d1ae3
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| rswinkle/PortableGL | main | 80 |
For agents
markdown · JSON · MCP: product_card(name="rswinkle/PortableGL")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem