Wraps a GPU shader effect.
abstract class
|
ShaderEffect
|
extends
|
Disposable
|
||
implements
|
IShaderEffect
|
Returns the lifecycle state of this object.
public
virtual
property
|
LifecycleState
{
get
}
|
||
type
|
LifecycleState
|
||
value
|
The lifecycle state. | ||
inherited
|
Disposable.LifecycleState
|
The name of this shader effect.
public
property
|
Name
{
get
}
|
||
type
|
string
|
||
value
|
|
The effect name. | |
implements
|
IShaderEffect.Name
|
Returns the names of all shader effect parameters.
public
property
|
ParameterNames
{
get
}
|
||
type
|
string[]
|
||
value
|
|
The list of shader effect parameter names. | |
implements
|
IShaderEffect.ParameterNames
|
See also:
IShaderEffect.ParameterReturns the names of all shader effect techniques.
public
property
|
TechniqueNames
{
get
}
|
||
type
|
string[]
|
||
value
|
|
The list of shader effect technique names. | |
implements
|
IShaderEffect.TechniqueNames
|
See also:
IShaderEffect.TechniqueAcquires a strong reference to this disposable object.
[OwnerReturn, ThreadSafe]
|
||||
public
method
|
AcquireTry
()
|
|||
type
|
IDisposable
|
|||
returns
|
this
if
a
new
strong
reference
has
been
acquired,
null
if
this
object
is
already
being
disposed.
|
|||
inherited
|
Disposable.AcquireTry
|
Remarks:
The object will not be actually disposed by calls to Dispose when there is at least one strong reference left. Code that calls the AcquireTry method is responsible for calling the Dispose method accordingly.
This method is not intended to be used in performance-critical code. It should only be used to high-level resource management.
Applies all changes that have been made to the parameters of this shader effect during an active render pass.
public
abstract
method
|
ApplyChanges
()
|
||
implements
|
IShaderEffect.ApplyChanges
|
Remarks:
The ApplyChanges only needs to be called between calls to BeginPass and EndPass.
Releases all resources held by this object if there are no more strong references to it, decrements the reference counter by one otherwise.
[Dispose, OwnerThis, ThreadSafe]
|
||||
public
method
|
Dispose
()
|
|||
inherited
|
Disposable.Dispose
|
Remarks:
The Dispose method silently returns if the object has already been disposed.
Checks if a parameter of the given name exists.
[Pure]
|
||||
public
method
|
HasParameter
(string name)
|
|||
type
|
bool
|
|||
params
|
name
|
[not-empty]
|
The shader effect parameter name. | |
returns
|
true
if
the
parameter
exists,
false
if
not. |
|||
implements
|
IShaderEffect.HasParameter
|
Checks if a technique of the given name exists.
[Pure]
|
||||
public
method
|
HasTechnique
(string name)
|
|||
type
|
bool
|
|||
params
|
name
|
[not-empty]
|
The shader effect technique name. | |
returns
|
true
if
the
parameter
exists,
false
if
not. |
|||
implements
|
IShaderEffect.HasTechnique
|
Returns a parameter of this shader effect by its name.
[Pure]
|
||||
public
method
|
Parameter
(string name)
|
|||
type
|
IShaderParameter
|
|||
params
|
name
|
[not-empty]
|
The shader effect parameter name. | |
returns
|
|
The shader parameter. | ||
implements
|
IShaderEffect.Parameter
|
See also:
IShaderEffect.HasParameterExceptions:
Returns the index of the given rendering technique.
[Pure]
|
||||
public
method
|
Technique
(string name)
|
|||
type
|
IShaderTechnique
|
|||
params
|
name
|
[not-empty]
|
Name of rendering technique. | |
returns
|
|
The render technique index. | ||
implements
|
IShaderEffect.Technique
|
See also:
IShaderEffect.HasTechniqueExceptions:
Creates a new instance of ShaderEffect.
protected
constructor
|
ShaderEffect
(string name)
|
||
params
|
name
|
[not-empty]
|
The shader effect name. |
Adds a shader parameter.
protected
method
|
Add
([Owner]
IShaderParameter parameter)
|
||
params
|
parameter
|
[not-null]
|
The shader parameter. |
Remarks:
Subclasses call this method to populate the shader effect.
Adds a shader technique.
protected
method
|
Add
([Owner]
IShaderTechnique technique)
|
||
params
|
technique
|
[not-null]
|
The shader technique. |
Remarks:
Subclasses call this method to populate the shader effect.
Disposes the managed resources held by a concrete subclass. This method will be called at most once per subclass.
protected
override
method
|
DisposeManaged
()
|
||
overrides
|
Disposable.DisposeManaged
|
Remarks:
This method will only be called when a disposable object is explicitly destroyed by user code calling the Dispose method. It will not be called when the object is collected as garbage by the system.
Overriding methods must call the DisposeManaged method of their base class. The base call should be the last statement.
The DisposeManaged method is called before the DisposeUnmanaged method.
Disposes the unmanaged resources held by a concrete subclass. This method will be called exactly once per subclass.
protected
virtual
method
|
DisposeUnmanaged
()
|
||
inherited
|
Disposable.DisposeUnmanaged
|
Remarks:
Overriding methods must call the DisposeUnmanaged method of their base class. The base call should be the last statement.
The DisposeUnmanaged method is called after the DisposeManaged method.