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
- SmallVector<FixedFunctionTarget, 0> Targets
- Which backends the block implements, in declaration order — EMPTY for the generic block.
- SmallVector<SourceLine, 0> Lines
- Raw (unpreprocessed) statement lines of the block body.
-
std::
int32_t Line - 1-based line number of the block header
Variable documentation
SmallVector<FixedFunctionTarget, 0> 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.