Class VfxStaticComboData
Namespace: ValveResourceFormat.CompiledShader
Assembly: ValveResourceFormat.dll
Represents data for a static shader combination.
public sealed class VfxStaticComboDataInheritance
Constructors
VfxStaticComboData(KVObject, long, VfxShaderAttribute[], IReadOnlyList<KVObject>, VfxProgramData)
Initializes a new instance of the class from a KV object.
public VfxStaticComboData(KVObject data, long staticComboId, VfxShaderAttribute[] attributes, IReadOnlyList<KVObject> byteCodeDataArray, VfxProgramData programData)Parameters
data KVObject
staticComboId long
attributes VfxShaderAttribute[]
byteCodeDataArray IReadOnlyList<KVObject>
programData VfxProgramData
VfxStaticComboData(Stream, long, VfxProgramData)
Initializes a new instance of the class from a stream.
public VfxStaticComboData(Stream stream, long staticComboId, VfxProgramData programData)Parameters
stream Stream
staticComboId long
programData VfxProgramData
Properties
AllVariables
Gets the variable write sequence shared by all dynamic combos of this static combo.
public VfxVariableIndexArray AllVariables { get; }Property Value
Attributes
Gets the shader attributes.
public VfxShaderAttribute[] Attributes { get; }Property Value
ConstantBufferBindingFlags
Gets the constant buffer binding flags.
public byte[] ConstantBufferBindingFlags { get; }Property Value
byte[]
ConstantBufferBindingSlots
Gets the constant buffer binding slots.
public byte[] ConstantBufferBindingSlots { get; }Property Value
byte[]
ConstantBufferSize
Gets the constant buffer size.
public int ConstantBufferSize { get; }Property Value
DynamicComboRenderStates
Gets the dynamic combos render state info.
public VfxRenderStateInfo[] DynamicComboRenderStates { get; }Property Value
DynamicComboVariables
Gets the variable write sequences, one per dynamic combo.
public VfxVariableIndexArray[] DynamicComboVariables { get; }Property Value
GlobalsBDA
Gets the globals buffer device address flag. Not seen set in shipped files.
public bool GlobalsBDA { get; }Property Value
ParentProgramData
Gets the parent program data or null after disposal.
public VfxProgramData? ParentProgramData { get; }Property Value
ShaderFiles
Gets the shader files for this combo.
public VfxShaderFile[] ShaderFiles { get; }Property Value
StaticCB
Gets whether a static constant buffer is used.
public bool StaticCB { get; }Property Value
StaticComboId
Gets the static combo identifier.
public long StaticComboId { get; }Property Value
UsesGlslSources
Gets whether the shader files were produced by the GLSL based compiler backends (PCGL, MOBILE_GLES, and early Vulkan). False for D3D and current Vulkan files.
public bool UsesGlslSources { get; }Property Value
VsInputSignatureIndices
Gets the vertex shader input signature indices, one entry per dynamic combo, indexing .
public int[] VsInputSignatureIndices { get; }Property Value
int[]
Methods
AttributesStringDescription()
Returns a string description of all attributes.
public string AttributesStringDescription()Returns
DetachFromProgram()
Clears the parent program data reference, invalidating this combo. Called when it is evicted from the .
public void DetachFromProgram()GetDynamicComboIndex(long)
Gets the index to address the per dynamic combo arrays with (,
, ).public int GetDynamicComboIndex(long dynamicComboId)Parameters
dynamicComboId long
The dynamic combo id, as found on .
Returns
The array index, or -1 when this combo is not present in this static combo.
GetWriteSequences()
Deduplicates write sequences, returning the unique ones in order of first appearance along with a map of write sequence indices to sequence IDs (-1 for write sequences without data). The leading write sequence (always present) is sequence 0 even when it carries no data, as configurations may refer to it.
public (List<VfxVariableIndexArray> Unique, SortedDictionary<int, int> IndexToSequence) GetWriteSequences()Returns
(List<VfxVariableIndexArray> Unique, SortedDictionary<int, int> IndexToSequence)

