GraphicsResourceAllocator Class
Namespace: Stride.GraphicsAssembly: Stride.Graphics.dll
A GraphicsResource allocator tracking usage reference and allowing to recycle unused resources based on a recycle policy.
public class GraphicsResourceAllocator : ComponentBase, IDisposable, IComponent, IReferencable, ICollectorHolder
Remarks
This class is threadsafe. Accessing a member will lock globally this instance.
Name | Description | |
---|---|---|
Constructors | ||
GraphicsResourceAllocator(GraphicsDevice) | Initializes a new instance of the GraphicsResourceAllocator class. |
|
Properties | ||
RecyclePolicy | Gets or sets the default recycle policy. Default is always recycle no matter the state of the resources. |
|
Services | Gets the services registry. |
|
Methods | ||
AddReference(GraphicsResource) | Increments the reference to a temporary resource. |
|
CreateBuffer(BufferDescription, PixelFormat) | Creates a temporary buffer. |
|
CreateQueryPool(GraphicsResourceAllocator.QueryPoolDescription, PixelFormat) | ||
CreateTexture(TextureDescription, PixelFormat) | Creates a texture for output. |
|
Destroy() | ||
GetQueryPool(QueryType, Int32) | ||
GetTemporaryBuffer(BufferDescription, PixelFormat) | Gets a texture for the specified description. |
|
GetTemporaryTexture(TextureDescription) | Gets a texture for the specified description. |
|
Recycle() | Recycles unused resources (with a ReferenceCount == 0 ) with the RecyclePolicy. By Default, no recycle policy installed. |
|
Recycle(GraphicsResourceRecyclePolicyDelegate) | Recycles unused resource with the specified recycle policy. |
|
ReleaseReference(GraphicsResourceBase) | Decrements the reference to a temporary resource. |
Constructors
GraphicsResourceAllocator(GraphicsDevice)
Initializes a new instance of the GraphicsResourceAllocator class.
public GraphicsResourceAllocator(GraphicsDevice graphicsDevice)
Parameters
Type | Name | Description |
---|---|---|
GraphicsDevice | graphicsDevice | The graphics device. |
Properties
RecyclePolicy
Gets or sets the default recycle policy. Default is always recycle no matter the state of the resources.
public GraphicsResourceRecyclePolicyDelegate RecyclePolicy { get; set; }
Property Value
Type | Description |
---|---|
GraphicsResourceRecyclePolicyDelegate | The default recycle policy. |
Services
Gets the services registry.
public IServiceRegistry Services { get; }
Property Value
Type | Description |
---|---|
IServiceRegistry | The services registry. |
Methods
AddReference(GraphicsResource)
Increments the reference to a temporary resource.
public void AddReference(GraphicsResource resource)
Parameters
Type | Name | Description |
---|---|---|
GraphicsResource | resource |
CreateBuffer(BufferDescription, PixelFormat)
Creates a temporary buffer.
protected virtual Buffer CreateBuffer(BufferDescription description, PixelFormat viewFormat)
Parameters
Type | Name | Description |
---|---|---|
BufferDescription | description | The description. |
PixelFormat | viewFormat | The shader view format on the buffer |
Returns
Type | Description |
---|---|
Buffer | Buffer. |
CreateQueryPool(GraphicsResourceAllocator.QueryPoolDescription, PixelFormat)
protected virtual QueryPool CreateQueryPool(GraphicsResourceAllocator.QueryPoolDescription description, PixelFormat viewFormat)
Parameters
Type | Name | Description |
---|---|---|
GraphicsResourceAllocator.QueryPoolDescription | description | |
PixelFormat | viewFormat |
Returns
Type | Description |
---|---|
QueryPool |
CreateTexture(TextureDescription, PixelFormat)
Creates a texture for output.
protected virtual Texture CreateTexture(TextureDescription description, PixelFormat viewFormat)
Parameters
Type | Name | Description |
---|---|---|
TextureDescription | description | The description. |
PixelFormat | viewFormat | The pixel format seen by the shader |
Returns
Type | Description |
---|---|
Texture | Texture. |
Destroy()
protected override void Destroy()
Overrides
GetQueryPool(QueryType, Int32)
public QueryPool GetQueryPool(QueryType queryType, int queryCount)
Parameters
Type | Name | Description |
---|---|---|
QueryType | queryType | |
System.Int32 | queryCount |
Returns
Type | Description |
---|---|
QueryPool |
GetTemporaryBuffer(BufferDescription, PixelFormat)
Gets a texture for the specified description.
public Buffer GetTemporaryBuffer(BufferDescription description, PixelFormat viewFormat = PixelFormat.None)
Parameters
Type | Name | Description |
---|---|---|
BufferDescription | description | The description. |
PixelFormat | viewFormat | The pixel format seen by the shader |
Returns
Type | Description |
---|---|
Buffer | A texture |
GetTemporaryTexture(TextureDescription)
Gets a texture for the specified description.
public Texture GetTemporaryTexture(TextureDescription description)
Parameters
Type | Name | Description |
---|---|---|
TextureDescription | description | The description. |
Returns
Type | Description |
---|---|
Texture | A texture |
Recycle()
Recycles unused resources (with a ReferenceCount == 0 ) with the RecyclePolicy. By Default, no recycle policy installed.
public void Recycle()
Recycle(GraphicsResourceRecyclePolicyDelegate)
Recycles unused resource with the specified recycle policy.
public void Recycle(GraphicsResourceRecyclePolicyDelegate recyclePolicy)
Parameters
Type | Name | Description |
---|---|---|
GraphicsResourceRecyclePolicyDelegate | recyclePolicy | The recycle policy. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | recyclePolicy |
ReleaseReference(GraphicsResourceBase)
Decrements the reference to a temporary resource.
public void ReleaseReference(GraphicsResourceBase resource)
Parameters
Type | Name | Description |
---|---|---|
GraphicsResourceBase | resource |