MaterialGeneratorContext Class
Namespace: Stride.Rendering.Materials
Assembly: Stride.Rendering.dll
Derived from MaterialGeneratorContext:
public class MaterialGeneratorContext : ShaderGeneratorContext, IDisposable, IComponent, IReferencable, ICollectorHolder
Name |
Description |
Constructors
|
|
MaterialGeneratorContext(Material, GraphicsDevice) |
Initializes a new instance of MaterialGeneratorContext.
|
Fields
|
|
DefaultFinalCallbackOrder |
|
Properties
|
|
CurrentMaterialDescriptor |
The current material descriptor on the material stack
|
|
GraphicsProfile |
The graphics profile this material will be compatiable with.
|
|
Material |
Gets the compiled Material.
|
|
MaterialPass |
Gets the compiled MaterialPass. Only valid during GenerateShader.
|
|
PassCount |
In case of multi pass materials, this describe the number of passes.
|
|
PassIndex |
The current pass (used by multipass materials). Only valid during GenerateShader.
|
|
Step |
The current step of material generation.
|
Methods
|
|
AddFinalCallback(MaterialShaderStage, MaterialGeneratorContext.MaterialGeneratorCallback, Int32) |
|
|
AddShaderSource(MaterialShaderStage, ShaderSource) |
|
|
AddShading<T>(T) |
|
|
AddStreamInitializer(MaterialShaderStage, String) |
|
|
ComputeShaderSource(MaterialShaderStage) |
|
|
GenerateStreamInitializers(MaterialShaderStage) |
|
|
GetShading<T>(T) |
|
|
GetStreamBlendShaderSource(String) |
|
|
GetStreamFinalModifier<T>(MaterialShaderStage) |
|
|
HasShaderSources(MaterialShaderStage) |
|
|
PopLayer() |
Pops the current layer.
|
|
PopMaterial() |
|
|
PopPass() |
|
|
PushLayer(IComputeScalar) |
Pushes a new layer with the specified blend map.
|
|
PushMaterial(IMaterialDescriptor, String) |
Push a material for processing.
|
|
PushPass() |
|
|
SetMultiplePasses(String, Int32) |
Register this material with multiple passes. This is only possible once.
|
|
SetStream(MaterialShaderStage, String, IComputeNode, ObjectParameterKey<Texture>, ParameterKey, Nullable<Color>) |
|
|
SetStream(MaterialShaderStage, String, MaterialStreamType, ShaderSource) |
|
|
SetStream(String, IComputeNode, ObjectParameterKey<Texture>, ParameterKey, Nullable<Color>) |
|
|
SetStreamFinalModifier<T>(MaterialShaderStage, ShaderSource) |
|
|
UseStream(MaterialShaderStage, String) |
|
|
UseStreamWithCustomBlend(MaterialShaderStage, String, ShaderSource) |
|
|
Visit(IMaterialFeature) |
|
|
Improve this Doc
View Source
Constructors
MaterialGeneratorContext(Material, GraphicsDevice)
public MaterialGeneratorContext(Material material = null, GraphicsDevice graphicsDevice = null)
Parameters
|
Improve this Doc
View Source
Fields
DefaultFinalCallbackOrder
public const int DefaultFinalCallbackOrder = 0
Field Value
Type |
Description |
System.Int32 |
|
|
Improve this Doc
View Source
Properties
CurrentMaterialDescriptor
The current material descriptor on the material stack
public IMaterialDescriptor CurrentMaterialDescriptor { get; }
Property Value
GraphicsProfile
The graphics profile this material will be compatiable with.
public GraphicsProfile GraphicsProfile { get; set; }
Property Value
Material
public Material Material { get; }
Property Value
MaterialPass
public MaterialPass MaterialPass { get; set; }
Property Value
PassCount
In case of multi pass materials, this describe the number of passes.
public int PassCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
PassIndex
The current pass (used by multipass materials). Only valid during GenerateShader.
public int PassIndex { get; set; }
Property Value
Type |
Description |
System.Int32 |
|
Step
The current step of material generation.
public MaterialGeneratorStep Step { get; set; }
Property Value
|
Improve this Doc
View Source
Methods
AddFinalCallback(MaterialShaderStage, MaterialGeneratorContext.MaterialGeneratorCallback, Int32)
public void AddFinalCallback(MaterialShaderStage stage, MaterialGeneratorContext.MaterialGeneratorCallback callback, int order = 0)
Parameters
AddShaderSource(MaterialShaderStage, ShaderSource)
public void AddShaderSource(MaterialShaderStage stage, ShaderSource shaderSource)
Parameters
AddShading<T>(T)
public ShadingModelShaderBuilder AddShading<T>(T shadingModel)
where T : class, IMaterialShadingModelFeature
Parameters
Type |
Name |
Description |
T |
shadingModel |
|
Returns
Type Parameters
AddStreamInitializer(MaterialShaderStage, String)
public void AddStreamInitializer(MaterialShaderStage stage, string streamInitilizerSource)
Parameters
ComputeShaderSource(MaterialShaderStage)
public ShaderSource ComputeShaderSource(MaterialShaderStage stage)
Parameters
Returns
GenerateStreamInitializers(MaterialShaderStage)
public ShaderSource GenerateStreamInitializers(MaterialShaderStage stage)
Parameters
Returns
GetShading<T>(T)
public ShadingModelShaderBuilder GetShading<T>(T shadingModel)
where T : class, IMaterialShadingModelFeature
Parameters
Type |
Name |
Description |
T |
shadingModel |
|
Returns
Type Parameters
GetStreamBlendShaderSource(String)
public ShaderSource GetStreamBlendShaderSource(string stream)
Parameters
Type |
Name |
Description |
System.String |
stream |
|
Returns
GetStreamFinalModifier<T>(MaterialShaderStage)
public ShaderSource GetStreamFinalModifier<T>(MaterialShaderStage stage)
Parameters
Returns
Type Parameters
HasShaderSources(MaterialShaderStage)
public bool HasShaderSources(MaterialShaderStage stage)
Parameters
Returns
Type |
Description |
System.Boolean |
|
PopLayer()
PopMaterial()
public IMaterialDescriptor PopMaterial()
Returns
PopPass()
PushLayer(IComputeScalar)
Pushes a new layer with the specified blend map.
public void PushLayer(IComputeScalar blendMap)
Parameters
Type |
Name |
Description |
IComputeScalar |
blendMap |
The blend map used by this layer.
|
PushMaterial(IMaterialDescriptor, String)
Push a material for processing.
public bool PushMaterial(IMaterialDescriptor materialDescriptor, string materialName)
Parameters
Type |
Name |
Description |
IMaterialDescriptor |
materialDescriptor |
The material descriptor.
|
System.String |
materialName |
Friendly name of the material.
|
Returns
Type |
Description |
System.Boolean |
true if the material is valid and can be visited, false otherwise.
|
Exceptions
Type |
Condition |
System.ArgumentNullException |
materialDescriptor
|
PushPass()
public MaterialPass PushPass()
Returns
SetMultiplePasses(String, Int32)
Register this material with multiple passes. This is only possible once.
public void SetMultiplePasses(string module, int passCount)
Parameters
Type |
Name |
Description |
System.String |
module |
The module
|
System.Int32 |
passCount |
|
SetStream(MaterialShaderStage, String, IComputeNode, ObjectParameterKey<Texture>, ParameterKey, Nullable<Color>)
public void SetStream(MaterialShaderStage stage, string stream, IComputeNode computeNode, ObjectParameterKey<Texture> defaultTexturingKey, ParameterKey defaultValueKey, Color? defaultTextureValue = null)
Parameters
SetStream(MaterialShaderStage, String, MaterialStreamType, ShaderSource)
public void SetStream(MaterialShaderStage stage, string stream, MaterialStreamType streamType, ShaderSource shaderSource)
Parameters
SetStream(String, IComputeNode, ObjectParameterKey<Texture>, ParameterKey, Nullable<Color>)
public void SetStream(string stream, IComputeNode computeNode, ObjectParameterKey<Texture> defaultTexturingKey, ParameterKey defaultValueKey, Color? defaultTextureValue = null)
Parameters
SetStreamFinalModifier<T>(MaterialShaderStage, ShaderSource)
public void SetStreamFinalModifier<T>(MaterialShaderStage stage, ShaderSource shaderSource)
Parameters
Type Parameters
UseStream(MaterialShaderStage, String)
public void UseStream(MaterialShaderStage stage, string stream)
Parameters
UseStreamWithCustomBlend(MaterialShaderStage, String, ShaderSource)
public void UseStreamWithCustomBlend(MaterialShaderStage stage, string stream, ShaderSource blendStream)
Parameters
Visit(IMaterialFeature)
public void Visit(IMaterialFeature feature)
Parameters
Extension Methods