Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

281 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCGP: Resource Contracts for Graphics Programming

RCGP is a pure-C++ graphics programming framework based on the SIGGRAPH 2026 paper RCGP: Resource Contracts for Graphics Programming. It establishes a type system for resources in graphics applications, such as storage buffers and textures, that enables static verification of resource usage in both shader code and host code.

Usage

RCGP is designed to be usable in any Vulkan project using C++26 and beyond, and is supported on GCC 15+ and Clang 19+ compilers.

To use the framework, do the following:

#include <rcgp.hpp>

// Recommended, especially for shader code
using namespace rcgp;

This repository does not come with batteries included; users will need to provide the following dependencies:

  • Vulkan, for the core graphics backend.
  • glslang, for compiling the transpiled GLSL shader modules to SPIR-V.
  • fmt, for various IO utilities.
  • glfw, for OS-window management.
  • Python 3, used for parts of the build process.

Optionally, to enable automatic conversions to glm matrix and vector types, define RCGP_SUPPORT_GLM before the inclusion of rcgp.hpp and, of course, include the glm library itself.

Samples are available in a separate repository, rcgp-samples, covering rasterization, glTF geometry and textured materials, with more on the way. Documentation will be coming soon!

About

Implementation of the SIGGRAPH 2026 paper "RCGP: Resource Contracts for Graphics Programming"

Resources

Stars

21 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages