FixedFunctionBlock struct
One captured "void fixed_function([<target>[, <target>...]]) { ... }" block.
The body is captured verbatim (like the vertex()/fragment() entry bodies) and transpiled to C++ offline by the fixed-function emitter (ConsoleFixedFunction) — it never becomes part of the lowered GLSL stages, so a shader that carries a block emits byte-identical per-shader headers.
Public variables
-
std::
vector<FixedFunctionTarget> Targets - Which backends the block implements, in declaration order — EMPTY for the generic block.
-
std::
vector<SourceLine> Lines - Raw (unpreprocessed) statement lines of the block body.
-
std::
int32_t Line - 1-based line number of the block header
Variable documentation
std:: vector<FixedFunctionTarget> ShaderCompiler:: FixedFunctionBlock:: Targets
Which backends the block implements, in declaration order — EMPTY for the generic block.
A comma-separated target list lets one block serve several backends, which is what shaders whose implementation for two consoles is literally the same code use instead of keeping two byte-identical copies. Capabilities are then validated against the INTERSECTION of the listed targets, so a shared block can only use what every one of them can do.