Unified Shader Programming in C++

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • DiligentEngine

    A modern cross-platform low-level graphics library and rendering framework

    If you have relatively new GL, this one is good: https://diligentgraphics.com/diligent-engine/

  • magnum

    Lightweight and modular C++11 graphics middleware for games and data visualization

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • processing

    Source code for the Processing Core and Development Environment (PDE)

    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.

  • framework

    > Unfortunately, it's not really a library

    I made it a library with a single header: https://github.com/redgpu/framework

  • Ion

    Ion (by google)

  • rust-gpu

    🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

    Rust also has this, from what I understand:

      https://github.com/EmbarkStudios/rust-gpu

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • globjects

    C++ library strictly wrapping OpenGL objects.

  • bgfx

    Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

  • dcompute

    DCompute: Native execution of D on GPUs and other Accelerators

  • 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/

  • shaders

    Circle C++ shaders

    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.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts