NDEVR
API Documentation
ShaderDefinition.h
1#pragma once
2#include <NDEVR/Dictionary.h>
3#include <NDEVR/String.h>
4#include <NDEVR/DesignObjectBase.h>
5namespace NDEVR
6{
14 {
16 uint04 index = Constant<uint04>::Invalid;
17 };
18
26
43
61
75
89}
A hash-based key-value store, useful for quick associative lookups.
Definition Dictionary.h:64
Registry that stores all available vertex and fragment shader definitions keyed by UUID.
The core String class for the NDEVR API.
Definition String.h:95
Any text displayed to the user should be defined as a TranslatedString which allows the program to lo...
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:61
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Shader definition specialized for the fragment (pixel) processing stage.
UUID input_data_id
Linkage UUID for the fragment input interface. Must match the corresponding VertexShaderDefinition::o...
Dictionary< String, ResolveableLocation > material_property_bind_locations
Maps material property names to their shader uniform locations.
Dictionary< PrimitiveProperty, ResolveableLocation > image_bind_locations
Maps PrimitiveProperty enum values to texture/image sampler bind locations.
A named location that can be resolved to an index within a shader program.
uint04 index
The resolved numeric index of the location, or Invalid if not yet resolved.
String name
The string name of the location as declared in the shader source.
Base definition for a shader program, holding source data and uniform bindings.
Dictionary< String, String > graphics_engine_data
Maps graphics engine names to their corresponding shader source code.
UUID id
Unique identifier for this shader definition.
Dictionary< String, ShaderUniform > attribute_locations
Maps uniform block names to their ShaderUniform descriptors.
TranslatedString shader_name
User-facing display name of the shader.
UUID fallback_id
Fallback shader UUID used when the target graphics engine lacks support for this shader.
String icon
Icon identifier used for UI representation of the shader.
Describes the set of attribute locations associated with a single shader uniform block.
Dictionary< String, ResolveableLocation > attribute_locations
Maps attribute names to their resolveable locations within this uniform block.
Shader definition specialized for the vertex processing stage.
ResolveableLocation offset
Location of the vertex offset uniform.
ResolveableLocation flags
Location of the rendering flags uniform.
Dictionary< String, ResolveableLocation > model_channel_locations
Maps per-model data channel names to their shader input locations.
ResolveableLocation transform
Location of the model transform matrix uniform.
Dictionary< VertexProperty, ResolveableLocation > geometry_channel_locations
Maps VertexProperty enum values to their shader input locations for geometry data.
UUID output_data_id
Linkage UUID for the vertex output interface. Must match the corresponding FragmentShaderDefinition::...
Dictionary< String, ResolveableLocation > extra_channel_locations
Maps additional named data channels to their shader input locations.