RootEffectRenderFeature Class
Namespace: Stride.Rendering
Assembly: Stride.Rendering.dll
A root render feature that can manipulate effects.
public abstract class RootEffectRenderFeature : RootRenderFeature, IComponent, IReferencable, ICollectorHolder, IGraphicsRendererCore, IDisposable
Name |
Description |
Fields
|
|
EffectCompiled |
|
|
InstantiatedEffects |
Stores reflection info for each effect.
|
|
RenderEffectKey |
Key to store extra info for each effect instantiation of each object.
|
|
ResourceGroupPool |
|
Properties
|
|
ComputeFallbackEffect |
|
|
EffectDescriptorSetSlotCount |
|
|
EffectObjectNodes |
|
|
EffectPermutationSlotCount |
Gets number of effect permutation slot, which is the number of effect cached per object.
|
|
FrameLayouts |
|
|
PipelineProcessors |
|
Methods
|
|
ComputeDataArrayExpectedSize(DataType) |
|
|
ComputeResourceGroupOffset(RenderNodeReference) |
Compute the index of first descriptor set stored in ResourceGroupPool.
|
|
CreateDrawCBufferOffsetSlot(String) |
|
|
CreateDrawLogicalGroup(String) |
|
|
CreateEffectPermutationSlot(String) |
Creates a slot for storing a particular effect instantiation (per RenderObject).
|
|
CreateFrameCBufferOffsetSlot(String) |
|
|
CreateUniqueDescriptorSetLayout(DescriptorSetLayoutBuilder) |
|
|
CreateViewCBufferOffsetSlot(String) |
|
|
CreateViewLogicalGroup(String) |
|
|
Destroy() |
|
|
GetEffectPermutationSlot(RenderStage) |
Gets the effect slot for a given render stage.
|
|
GetOrCreateEffectDescriptorSetSlot(String) |
|
|
InitializeCore() |
Initializes this instance.
Query for specific cbuffer (either new one, like PerMaterial, or parts of an existing one, like PerObject=>Skinning)
|
|
InvalidateEffectPermutation(RenderObject, RenderEffect) |
Implemented by subclasses to reset effect dependent data.
|
|
Prepare(RenderDrawContext) |
Performs most of the work (computation and resource preparation). Later game simulation might be running during that step.
|
|
PrepareEffectPermutations(RenderDrawContext) |
Perform effect permutations, before Prepare(RenderDrawContext).
|
|
PrepareEffectPermutationsImpl(RenderDrawContext) |
Actual implementation of PrepareEffectPermutations(RenderDrawContext).
|
|
ProcessPipelineState(RenderContext, RenderNodeReference, ref RenderNode, RenderObject, PipelineStateDescription) |
|
|
RemoveViewCBufferOffsetSlot(ConstantBufferOffsetReference) |
|
|
Reset() |
|
|
Improve this Doc
View Source
Fields
EffectCompiled
public Action<RenderSystem, Effect, RenderEffectReflection> EffectCompiled
Field Value
InstantiatedEffects
Stores reflection info for each effect.
public Dictionary<Effect, RenderEffectReflection> InstantiatedEffects
Field Value
RenderEffectKey
Key to store extra info for each effect instantiation of each object.
public StaticObjectPropertyKey<RenderEffect> RenderEffectKey
Field Value
ResourceGroupPool
public ResourceGroup[] ResourceGroupPool
Field Value
|
Improve this Doc
View Source
Properties
ComputeFallbackEffect
public RootEffectRenderFeature.ComputeFallbackEffectDelegate ComputeFallbackEffect { get; set; }
Property Value
EffectDescriptorSetSlotCount
public int EffectDescriptorSetSlotCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
EffectObjectNodes
public ConcurrentCollector<EffectObjectNode> EffectObjectNodes { get; }
Property Value
EffectPermutationSlotCount
Gets number of effect permutation slot, which is the number of effect cached per object.
public int EffectPermutationSlotCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
FrameLayouts
public ConcurrentCollector<FrameResourceGroupLayout> FrameLayouts { get; }
Property Value
PipelineProcessors
[DataMember]
public List<PipelineProcessor> PipelineProcessors { get; }
Property Value
|
Improve this Doc
View Source
Methods
ComputeDataArrayExpectedSize(DataType)
protected override int ComputeDataArrayExpectedSize(DataType type)
Parameters
Returns
Type |
Description |
System.Int32 |
|
Overrides
ComputeResourceGroupOffset(RenderNodeReference)
protected int ComputeResourceGroupOffset(RenderNodeReference renderNode)
Parameters
Returns
Type |
Description |
System.Int32 |
|
CreateDrawCBufferOffsetSlot(String)
public ConstantBufferOffsetReference CreateDrawCBufferOffsetSlot(string variable)
Parameters
Type |
Name |
Description |
System.String |
variable |
|
Returns
CreateDrawLogicalGroup(String)
public LogicalGroupReference CreateDrawLogicalGroup(string logicalGroup)
Parameters
Type |
Name |
Description |
System.String |
logicalGroup |
|
Returns
CreateEffectPermutationSlot(String)
Creates a slot for storing a particular effect instantiation (per RenderObject).
public EffectPermutationSlot CreateEffectPermutationSlot(string effectName)
Parameters
Type |
Name |
Description |
System.String |
effectName |
|
Returns
CreateFrameCBufferOffsetSlot(String)
public ConstantBufferOffsetReference CreateFrameCBufferOffsetSlot(string variable)
Parameters
Type |
Name |
Description |
System.String |
variable |
|
Returns
CreateUniqueDescriptorSetLayout(DescriptorSetLayoutBuilder)
public DescriptorSetLayout CreateUniqueDescriptorSetLayout(DescriptorSetLayoutBuilder descriptorSetLayoutBuilder)
Parameters
Returns
CreateViewCBufferOffsetSlot(String)
public ConstantBufferOffsetReference CreateViewCBufferOffsetSlot(string variable)
Parameters
Type |
Name |
Description |
System.String |
variable |
|
Returns
CreateViewLogicalGroup(String)
public LogicalGroupReference CreateViewLogicalGroup(string logicalGroup)
Parameters
Type |
Name |
Description |
System.String |
logicalGroup |
|
Returns
Destroy()
protected override void Destroy()
Overrides
GetEffectPermutationSlot(RenderStage)
Gets the effect slot for a given render stage.
public EffectPermutationSlot GetEffectPermutationSlot(RenderStage renderStage)
Parameters
Returns
GetOrCreateEffectDescriptorSetSlot(String)
public EffectDescriptorSetReference GetOrCreateEffectDescriptorSetSlot(string name)
Parameters
Type |
Name |
Description |
System.String |
name |
|
Returns
InitializeCore()
Initializes this instance.
Query for specific cbuffer (either new one, like PerMaterial, or parts of an existing one, like PerObject=>Skinning)
protected override void InitializeCore()
Overrides
InvalidateEffectPermutation(RenderObject, RenderEffect)
Implemented by subclasses to reset effect dependent data.
protected virtual void InvalidateEffectPermutation(RenderObject renderObject, RenderEffect renderEffect)
Parameters
Prepare(RenderDrawContext)
Performs most of the work (computation and resource preparation). Later game simulation might be running during that step.
public override void Prepare(RenderDrawContext context)
Parameters
Overrides
PrepareEffectPermutations(RenderDrawContext)
public override void PrepareEffectPermutations(RenderDrawContext context)
Parameters
Overrides
PrepareEffectPermutationsImpl(RenderDrawContext)
public virtual void PrepareEffectPermutationsImpl(RenderDrawContext context)
Parameters
ProcessPipelineState(RenderContext, RenderNodeReference, ref RenderNode, RenderObject, PipelineStateDescription)
protected virtual void ProcessPipelineState(RenderContext context, RenderNodeReference renderNodeReference, ref RenderNode renderNode, RenderObject renderObject, PipelineStateDescription pipelineState)
Parameters
RemoveViewCBufferOffsetSlot(ConstantBufferOffsetReference)
public void RemoveViewCBufferOffsetSlot(ConstantBufferOffsetReference cbufferOffsetSlot)
Parameters
Reset()
public override void Reset()
Overrides
Extension Methods