ShaderCompiler::GlslToCppResult struct

Outcome of transpiling one fragment shader to C++.

Public variables

bool Supported
true when the shader fits the supported subset and Code was emitted
String UnsupportedReason
Why the shader was declined (only meaningful when Supported is false).
String Code
The emitted C++ (a <Program>_Uniforms struct plus the fragment function[s]).
bool HasComputeVaryings
true when a <Program>_ComputeVaryings(void*, const std::uint8_t*) was emitted
std::vector<String> ConstVaryingNames
Names of the constant-varying fields added to <Program>_Uniforms.

Variable documentation

bool ShaderCompiler::GlslToCppResult::HasComputeVaryings

true when a <Program>_ComputeVaryings(void*, const std::uint8_t*) was emitted

Set when the fragment reads at least one per-instance-constant varying. The device calls the function once per instance to fill those varyings (struct fields) from the bound instance block before running the fragment.

std::vector<String> ShaderCompiler::GlslToCppResult::ConstVaryingNames

Names of the constant-varying fields added to <Program>_Uniforms.

They live in the same struct as the loose uniforms but are filled by <Program>_ComputeVaryings (not by ResolveUniform), so the caller excludes them from the loose-uniform field list.