Class GraphicsResourceBase
Base class for a Graphics Resource.
public abstract class GraphicsResourceBase : ComponentBase, IDisposable, IComponent, IReferencable, ICollectorHolder
- Inheritance
-
objectGraphicsResourceBase
- Implements
- Derived
- Inherited Members
- Extension Methods
Constructors
GraphicsResourceBase()
Initializes a new instance of the GraphicsResourceBase class.
protected GraphicsResourceBase()
GraphicsResourceBase(GraphicsDevice)
Initializes a new instance of the GraphicsResourceBase class.
protected GraphicsResourceBase(GraphicsDevice device)
Parameters
deviceGraphicsDeviceThe graphics device.
GraphicsResourceBase(GraphicsDevice, string?)
Initializes a new instance of the GraphicsResourceBase class.
protected GraphicsResourceBase(GraphicsDevice device, string? name)
Parameters
deviceGraphicsDeviceThe graphics device.
namestringA name that can be used to identify the Graphics Resource. Specify null to use the type's name instead.
Fields
Reload
A delegate that will be invoked when the GraphicsDevice is reset and the Graphics Resource needs to be created / loaded again.
public Action<GraphicsResourceBase, IServiceRegistry> Reload
Field Value
Properties
GraphicsDevice
Gets the GraphicsDevice the Graphics Resource depends on.
public GraphicsDevice GraphicsDevice { get; }
Property Value
IsDebugMode
Gets a value indicating whether the Graphics Resource is in "Debug mode".
protected bool IsDebugMode { get; }
Property Value
NativeDevice
Gets the internal Direct3D 11 device (Silk.NET.Direct3D11.ID3D11Device) if the resource is attached to a GraphicsDevice, or null if not.
protected ComPtr<ID3D11Device> NativeDevice { get; }
Property Value
- ComPtr<ID3D11Device>
Remarks
If the reference is going to be kept, use ComPtr<T>.AddRef() to increment the internal reference count, and Silk.NET.Core.Native.ComPtr<T>.Dispose() when no longer needed to release the object.
NativeDeviceChild
Gets or sets the internal Silk.NET.Direct3D11.ID3D11DeviceChild.
protected ComPtr<ID3D11DeviceChild> NativeDeviceChild { get; set; }
Property Value
- ComPtr<ID3D11DeviceChild>
Remarks
If the reference is going to be kept, use ComPtr<T>.AddRef() to increment the internal reference count, and Silk.NET.Core.Native.ComPtr<T>.Dispose() when no longer needed to release the object.
NativeResource
Gets the internal Direct3D 11 Resource.
protected ComPtr<ID3D11Resource> NativeResource { get; }
Property Value
- ComPtr<ID3D11Resource>
Remarks
If the reference is going to be kept, use ComPtr<T>.AddRef() to increment the internal reference count, and Silk.NET.Core.Native.ComPtr<T>.Dispose() when no longer needed to release the object.
Methods
Destroy()
Disposes the resources associated with the Graphics Resource, removes itself from the GraphicsDevice's resource registry, and transitions to the Destroyed state.
protected override void Destroy()
OnDestroyed(bool)
Called when the GraphicsDevice has been detected to be internally destroyed, or when the Destroy() methad has been called. Raises the Destroyed event.
protected virtual void OnDestroyed(bool immediately = false)
Parameters
immediatelyboolA value indicating whether the resource should be destroyed immediately (true), or if it can be deferred until it's safe to do so (false).
Remarks
This method releases the underlying native resources (Silk.NET.Direct3D11.ID3D11Resource and Silk.NET.Direct3D11.ID3D11DeviceChild).
OnPause()
Called when the GraphicsDevice is inactive (put in the background and rendering is paused). By default, it does nothing.
protected virtual bool OnPause()
Returns
Remarks
This method may be overriden in derived classes to voluntarily release objects that can be easily recreated, such as Dynamic Buffers and Frame Buffers / Render Targets.
OnRecreate()
Called when the GraphicsDevice has been recreated.
protected virtual bool OnRecreate()
Returns
OnResume()
Called when the GraphicsDevice has resumed from either a paused or destroyed state. By default, it does nothing.
protected virtual void OnResume()
Remarks
This method may be overriden in derived classes to recreate the Graphics Resource if possible.
SetNativeDeviceChild(ComPtr<ID3D11DeviceChild>)
Internal method to set the internal Silk.NET.Direct3D11.ID3D11DeviceChild without incrementing or decrementing the reference count.
protected void SetNativeDeviceChild(ComPtr<ID3D11DeviceChild> deviceChild)
Parameters
deviceChildComPtr<ID3D11DeviceChild>
UnsetNativeDeviceChild()
Internal method to detach the internal Silk.NET.Direct3D11.ID3D11DeviceChild without incrementing or decrementing the reference count.
protected void UnsetNativeDeviceChild()
Events
Destroyed
Raised when the internal Graphics Resource gets destroyed.
public event EventHandler<EventArgs> Destroyed
Event Type
Remarks
This event is useful when user-allocated handles associated with the internal resource need to be released.