Class Effect
Effect abstract base class.
Inherited Members
Namespace: Evergine.Framework.Graphics.Effects
Assembly: Evergine.Framework.dll
Syntax
public abstract class Effect : DisposableObject, ILoadable, IDisposable, IDependencyObject
Constructors
Effect()
Initializes a new instance of the Effect class.
Declaration
public Effect()
Fields
ConstantBufferPool
The effect constant buffer pool.
Declaration
public ConstantBufferPool ConstantBufferPool
Field Value
| Type | Description |
|---|---|
| ConstantBufferPool |
directivesGroups
The directives groups.
Declaration
protected DirectivesGroup[] directivesGroups
Field Value
| Type | Description |
|---|---|
| DirectivesGroup[] |
graphicsContext
The graphics context.
Declaration
public GraphicsContext graphicsContext
Field Value
| Type | Description |
|---|---|
| GraphicsContext |
graphicsResourcesInfo
The graphics resources information.
Declaration
protected GraphicsResourceInfo[] graphicsResourcesInfo
Field Value
| Type | Description |
|---|---|
| GraphicsResourceInfo[] |
passes
The passes.
Declaration
protected string[] passes
Field Value
| Type | Description |
|---|---|
| string[] |
sharedCBufferBySlot
The shared c buffer by slot.
Declaration
protected Dictionary<int, ConstantBuffer> sharedCBufferBySlot
Field Value
| Type | Description |
|---|---|
| Dictionary<int, ConstantBuffer> |
techniquesCached
The techniques cached.
Declaration
protected Dictionary<int, EffectTechnique> techniquesCached
Field Value
| Type | Description |
|---|---|
| Dictionary<int, EffectTechnique> |
Properties
Dependencies
Gets the dependency list.
Declaration
public Lazy<List<IDependencyLink>> Dependencies { get; }
Property Value
| Type | Description |
|---|---|
| Lazy<List<IDependencyLink>> |
Directives
Gets the directive list.
Declaration
public DirectivesGroup[] Directives { get; }
Property Value
| Type | Description |
|---|---|
| DirectivesGroup[] |
EffectType
Gets the effect type.
Declaration
public abstract ShaderAnalyzer.EffectTypes EffectType { get; }
Property Value
| Type | Description |
|---|---|
| ShaderAnalyzer.EffectTypes |
GraphicsResourcesInfo
Gets the ResourceLayout information.
Declaration
public GraphicsResourceInfo[] GraphicsResourcesInfo { get; }
Property Value
| Type | Description |
|---|---|
| GraphicsResourceInfo[] |
Id
Gets or sets the asset Id.
Declaration
public Guid Id { get; set; }
Property Value
| Type | Description |
|---|---|
| Guid | The asset path. |
Passes
Gets the passes.
Declaration
public string[] Passes { get; }
Property Value
| Type | Description |
|---|---|
| string[] |
ReaderVersion
Gets the reader version.
Declaration
public Version ReaderVersion { get; }
Property Value
| Type | Description |
|---|---|
| Version | The reader version. |
SharedCBufferBySlot
Gets the shared c buffer by slot.
Declaration
public Dictionary<int, ConstantBuffer> SharedCBufferBySlot { get; }
Property Value
| Type | Description |
|---|---|
| Dictionary<int, ConstantBuffer> |
Methods
CreateSharedResources()
This method must be called after obtain graphicsResourcesInfo and it creates the shared cbuffers.
Declaration
protected void CreateSharedResources()
Destroy()
Destroy all resources of this instance.
Declaration
protected override void Destroy()
Overrides
GetEffectTechnique(string, string[])
Gets Effect Technique with a specific directives group.
Declaration
public abstract EffectTechnique GetEffectTechnique(string passName, string[] activeDirectives)
Parameters
| Type | Name | Description |
|---|---|---|
| string | passName | Pass name. |
| string[] | activeDirectives | Active directives. |
Returns
| Type | Description |
|---|---|
| EffectTechnique | Effect technique. |
GetResourceLayout(GraphicsResourceUsage[])
Gets a resource layout.
Declaration
protected ResourceLayout GetResourceLayout(GraphicsResourceUsage[] resourceLayoutUsage)
Parameters
| Type | Name | Description |
|---|---|---|
| GraphicsResourceUsage[] | resourceLayoutUsage | The resource layout usage. |
Returns
| Type | Description |
|---|---|
| ResourceLayout | The resource layout. |
Invalidate(ILoadable)
Invalidates this instance and raise the Invalidated event with the new ILoadable instance.
Declaration
public void Invalidate(ILoadable newInstance)
Parameters
| Type | Name | Description |
|---|---|---|
| ILoadable | newInstance | The new ILoadable instance. |
IsPassRequiredWithDirectives(string, string[])
Gets if the pass is required with current active directives.
Declaration
public abstract bool IsPassRequiredWithDirectives(string passName, string[] activeDirectives)
Parameters
| Type | Name | Description |
|---|---|---|
| string | passName | Pass Name. |
| string[] | activeDirectives | Active Directives. |
Returns
| Type | Description |
|---|---|
| bool | If the pass is required or not. |
ReleaseUnusedMemory()
Release unused memory.
Declaration
public void ReleaseUnusedMemory()
Events
Invalidated
Occurs when this instance has been invalidated and all references must be reloaded.
Declaration
public event EventHandler<ILoadable> Invalidated
Event Type
| Type | Description |
|---|---|
| EventHandler<ILoadable> |