Class DX12GraphicsContext
Manages all graphical functionality.
Inherited Members
Namespace: Evergine.DirectX12
Assembly: Evergine.DirectX12.dll
Syntax
public class DX12GraphicsContext : GraphicsContext, IDisposable, IGetNativePointers
Constructors
DX12GraphicsContext()
Initializes a new instance of the DX12GraphicsContext class.
Declaration
public DX12GraphicsContext()
Fields
DXDevice
The DirectX device.
Declaration
public ID3D12Device DXDevice
Field Value
Type | Description |
---|---|
ID3D12Device |
DXFactory
The DXGI factory.
Declaration
public IDXGIFactory4 DXFactory
Field Value
Type | Description |
---|---|
IDXGIFactory4 |
DefaultShader4ComponentMapping
Native DX const used to set 4 components.
Declaration
public static readonly int DefaultShader4ComponentMapping
Field Value
Type | Description |
---|---|
int |
GPU_RESOURCE_HEAP_CBV_COUNT
The default heap size for constant buffer views.
Declaration
public static readonly int GPU_RESOURCE_HEAP_CBV_COUNT
Field Value
Type | Description |
---|---|
int |
GPU_RESOURCE_HEAP_SRV_COUNT
The default heap size for shader resource views.
Declaration
public static readonly int GPU_RESOURCE_HEAP_SRV_COUNT
Field Value
Type | Description |
---|---|
int |
GPU_RESOURCE_HEAP_UAV_COUNT
The default heap size for unordered access views.
Declaration
public static readonly int GPU_RESOURCE_HEAP_UAV_COUNT
Field Value
Type | Description |
---|---|
int |
GPU_SAMPLER_HEAP_COUNT
The default heap size for samplers.
Declaration
public static readonly int GPU_SAMPLER_HEAP_COUNT
Field Value
Type | Description |
---|---|
int |
Properties
BackendType
Gets the backend type (DirectX, OpenGL ...)
Declaration
public override GraphicsBackend BackendType { get; }
Property Value
Type | Description |
---|---|
GraphicsBackend |
Overrides
Capabilities
Gets the capabilities of this graphics context.
Declaration
public override GraphicsContextCapabilities Capabilities { get; }
Property Value
Type | Description |
---|---|
GraphicsContextCapabilities |
Overrides
NativeDevicePointer
Gets the native device pointer.
Declaration
public override IntPtr NativeDevicePointer { get; }
Property Value
Type | Description |
---|---|
IntPtr |
Overrides
Methods
CreateDeviceInternal()
Initialize the graphics context to be used in a compute shader.
Declaration
public override void CreateDeviceInternal()
Overrides
CreateSwapChain(SwapChainDescription)
Initialize the swapchain.
Declaration
public override SwapChain CreateSwapChain(SwapChainDescription description)
Parameters
Type | Name | Description |
---|---|---|
SwapChainDescription | description | The swapchain descriptor. |
Returns
Type | Description |
---|---|
SwapChain | Created Swapchain. |
Overrides
Dispose(bool)
Releases unmanaged and - optionally - managed resources.
Declaration
protected override void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
bool | disposing |
|
Overrides
GenerateTextureMipmapping(Texture)
Generate mipmapping texture levels.
Declaration
public override bool GenerateTextureMipmapping(Texture texture)
Parameters
Type | Name | Description |
---|---|---|
Texture | texture | The texture to generate mipmapping. |
Returns
Type | Description |
---|---|
bool | True if the mipmapping has been generated. |
Overrides
InternalUpdateBufferData(Buffer, IntPtr, uint, uint)
Fill the buffer from a pointer.
Declaration
protected override void InternalUpdateBufferData(Buffer buffer, IntPtr source, uint sourceSizeInBytes, uint destinationOffsetInBytes = 0)
Parameters
Type | Name | Description |
---|---|---|
Buffer | buffer | Buffer instance. |
IntPtr | source | The data pointer. |
uint | sourceSizeInBytes | The size in bytes. |
uint | destinationOffsetInBytes | The offset in bytes. |
Overrides
MapMemory(GraphicsResource, MapMode, uint)
Declaration
public override MappedResource MapMemory(GraphicsResource resource, MapMode mode, uint subResource = 0)
Parameters
Type | Name | Description |
---|---|---|
GraphicsResource | resource | The graphics resource to map. |
MapMode | mode | The MapMode used to map the resource. |
uint | subResource | The subresource to map. Subresources are indexed first by mip slice and then by array layer. Only for Textures. |
Returns
Type | Description |
---|---|
MappedResource | A MappedResource structure describing the mapped data region. |
Overrides
ShaderCompile(string, string, ShaderStages, CompilerParameters)
Converts the shader source into bytecode.
Declaration
public override CompilationResult ShaderCompile(string shaderSource, string entryPoint, ShaderStages stage, CompilerParameters parameters)
Parameters
Type | Name | Description |
---|---|---|
string | shaderSource | The shader source text. |
string | entryPoint | The entrypoint function name. |
ShaderStages | stage | The shader stage, ShaderStages. |
CompilerParameters | parameters | The compiler parameters. |
Returns
Type | Description |
---|---|
CompilationResult | The shader bytecodes. |
Overrides
SyncUpcopyQueue()
Sync the current buffer data in the copyQueue. Internal function used in the uploadbuffer strategy.
Declaration
public override void SyncUpcopyQueue()
Overrides
UnmapMemory(GraphicsResource, uint)
Declaration
public override void UnmapMemory(GraphicsResource resource, uint subResource = 0)
Parameters
Type | Name | Description |
---|---|---|
GraphicsResource | resource | The graphics resource to map. |
uint | subResource | The subresource to map. Subresources are indexed first by mip slice and then by array layer. Only for Textures. |
Overrides
UpdateTextureData(Texture, IntPtr, uint, uint)
Fill the buffer from a pointer.
Declaration
public override void UpdateTextureData(Texture texture, IntPtr source, uint sourceSizeInBytes, uint subResource = 0)
Parameters
Type | Name | Description |
---|---|---|
Texture | texture | Texture instance. |
IntPtr | source | The data pointer. |
uint | sourceSizeInBytes | The size in bytes. |
uint | subResource | The subResource index. |