-
If you have relatively new GL, this one is good: https://diligentgraphics.com/diligent-engine/
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
There's https://openframeworks.cc/. It's basically the C++ equivalent to https://processing.org/. Unfortunately, it's not really a library but rather a complete app framework, but it shows how a C++ wrapper API could look like. It definitely makes OpenGL programming easier and more fun.
-
OpenFrameworks
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
There's https://openframeworks.cc/. It's basically the C++ equivalent to https://processing.org/. Unfortunately, it's not really a library but rather a complete app framework, but it shows how a C++ wrapper API could look like. It definitely makes OpenGL programming easier and more fun.
-
> Unfortunately, it's not really a library
I made it a library with a single header: https://github.com/redgpu/framework
-
-
Rust also has this, from what I understand:
https://github.com/EmbarkStudios/rust-gpu
-
-
bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
-
-
makepad
Makepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl
Makepad does something simular with its universal shading language: https://makepad.dev/
-
This does unfortunately feel like the case. We've gone all-in on SYCL, mainly because of a pre-existing Intel relationship, but it never really seems to have gotten mindshare and e.g. never seems to have been dicussed here https://hn.algolia.com/?query=sycl
-
I think shader specialisation is handled pretty well in circle. Since you can essentially run arbitrary C++ code at compile time, selection and specialisation of a shader can even depend on hardware specific benchmarks. There is an extensive repo with examples here: https://github.com/seanbaxter/shaders. One example decodes a sprite sheet stored as a png at compile time and creates a specialised compute shader for it. You can also easily implement a control UI based on reflection of uniform shader parameters.