nshader

Cross-platform shader compiler and runtime library

View the Project on GitHub luppichristian/nshader

nshader_info.h

Type definitions and metadata structures for shader reflection.

Purpose

Defines the complete type system: backends, stages, binding types, and metadata structures. All reflection data is exposed through these types.

Enumerations

nshader_backend_t

Target compilation backends:

nshader_type_t

Shader program type:

nshader_stage_type_t

Individual shader stages:

nshader_binding_type_t

Variable data types for input/output bindings: INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, FLOAT16, FLOAT32, FLOAT64

Metadata Structures

nshader_stage_binding_t

Single input/output variable:

nshader_stage_metadata_vertex_t / fragment_t

Graphics stage metadata:

nshader_stage_metadata_compute_t

Compute stage metadata:

nshader_info_t

Top-level shader info:

Utility Functions

const char* nshader_backend_to_string(nshader_backend_t);      // "DXIL", "SPIR-V", etc.
const char* nshader_backend_to_extension(nshader_backend_t);   // ".dxil", ".spv", etc.
const char* nshader_stage_type_to_string(nshader_stage_type_t);
const char* nshader_binding_type_to_string(nshader_binding_type_t);
nshader_type_t nshader_stage_type_to_shader_type(nshader_stage_type_t);

When to Use