Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::DXContext Class Reference

#include <HWDXApplication.h>

Collaboration diagram for Harlinn::Windows::DXContext:
[legend]

Classes

struct  FrameContext
 

Public Member Functions

 DXContext ()
 
UINT FrameIndex () const
 
const DX::DeviceDevice () const
 
const EventWaitHandleFenceEvent () const
 
const DX::FenceFence () const
 
const DX::DescriptorHeapShaderResourceViewDescHeap () const
 
const DX::DescriptorHeapRenderTargetViewDescHeap () const
 
const DX::GraphicsCommandListCommandList () const
 
const DX::CommandQueueCommandQueue () const
 
const std::array< FrameContext, FRAMES_IN_FLIGHT_COUNT > & FrameContexts () const
 
UInt64 FenceLastSignaledValue () const
 
const Graphics::DXGI::SwapChain4SwapChain () const
 
HANDLE SwapChainWaitableObject () const
 
const std::array< DX::Resource, BACK_BUFFERS_COUNT > & RenderTargetResources () const
 
const std::array< D3D12_CPU_DESCRIPTOR_HANDLE, BACK_BUFFERS_COUNT > & RenderTargetDescriptors () const
 
virtual HW_EXPORT bool CreateDeviceD3D (HWND hWnd)
 
virtual HW_EXPORT void CleanupDeviceD3D ()
 
virtual HW_EXPORT void CreateRenderTargetViews ()
 
virtual HW_EXPORT void CleanupRenderTarget ()
 
virtual HW_EXPORT void WaitForLastSubmittedFrame ()
 
virtual HW_EXPORT FrameContextWaitForNextFrameResources ()
 
virtual HW_EXPORT void ResizeSwapChain (HWND hWnd, int width, int height)
 
void Resize (HWND hWnd, int width, int height)
 
virtual HW_EXPORT void PrepareFrame ()
 
virtual HW_EXPORT void PrepareCommandList ()
 
virtual HW_EXPORT void CloseCommandList ()
 
virtual HW_EXPORT void ExecuteCommandList ()
 
virtual HW_EXPORT void Present ()
 
virtual HW_EXPORT void FrameCompleted ()
 

Public Attributes

boost::signals2::signal< void(DXContext *context)> OnInvalidateDeviceObjects
 
boost::signals2::signal< void(DXContext *context)> OnCreateDeviceObjects
 

Static Public Attributes

static constexpr size_t FRAMES_IN_FLIGHT_COUNT = 3
 
static constexpr size_t BACK_BUFFERS_COUNT = 3
 

Protected Member Functions

virtual HW_EXPORT DX::DescriptorHeap CreateRenderTargetViewDescriptorHeap ()
 
HW_EXPORT void SetupRenderTargetDescriptors ()
 
virtual HW_EXPORT DX::DescriptorHeap CreateShaderResourceViewDescriptorHeap ()
 
virtual HW_EXPORT DX::CommandQueue CreateCommandQueue ()
 
HW_EXPORT void SetupFrameContexts ()
 
virtual HW_EXPORT DX::GraphicsCommandList CreateCommandList (const DX::CommandAllocator &commandAllocator)
 
virtual HW_EXPORT Graphics::DXGI::SwapChain4 CreateSwapChain (HWND windowHandle)
 
virtual void DoOnInvalidateDeviceObjects ()
 
virtual void DoOnCreateDeviceObjects ()
 

Private Attributes

UINT frameIndex_ = 0
 
Graphics::DXGI::Factory4 dxgiFactory_
 
Graphics::DXGI::Adapter4 hardwareAdapter_
 
DX::Device device_
 
EventWaitHandle fenceEvent_
 
DX::Fence fence_
 
DX::DescriptorHeap shaderResourceViewDescHeap_
 
DX::DescriptorHeap renderTargetViewDescHeap_
 
DX::GraphicsCommandList commandList_
 
DX::CommandQueue commandQueue_
 
std::array< FrameContext, FRAMES_IN_FLIGHT_COUNTframeContexts_ = {}
 
UInt64 fenceLastSignaledValue_ = 0
 
Graphics::DXGI::SwapChain4 swapChain_
 
HANDLE swapChainWaitableObject_ = nullptr
 
std::array< DX::Resource, BACK_BUFFERS_COUNTrenderTargetResources_
 
std::array< D3D12_CPU_DESCRIPTOR_HANDLE, BACK_BUFFERS_COUNTrenderTargetDescriptors_ = {}
 
D3D12_RESOURCE_BARRIER barrier_ = {}
 
FrameContextcurrentFrameContext_ = nullptr
 
UINT backBufferIdx_ = 0
 

Constructor & Destructor Documentation

◆ DXContext()

Harlinn::Windows::DXContext::DXContext ( )
inline

Member Function Documentation

◆ CleanupDeviceD3D()

void Harlinn::Windows::DXContext::CleanupDeviceD3D ( )
virtual

◆ CleanupRenderTarget()

void Harlinn::Windows::DXContext::CleanupRenderTarget ( )
virtual

◆ CloseCommandList()

void Harlinn::Windows::DXContext::CloseCommandList ( )
virtual

◆ CommandList()

const DX::GraphicsCommandList & Harlinn::Windows::DXContext::CommandList ( ) const
inline

◆ CommandQueue()

const DX::CommandQueue & Harlinn::Windows::DXContext::CommandQueue ( ) const
inline

◆ CreateCommandList()

DX::GraphicsCommandList Harlinn::Windows::DXContext::CreateCommandList ( const DX::CommandAllocator & commandAllocator)
protectedvirtual

◆ CreateCommandQueue()

DX::CommandQueue Harlinn::Windows::DXContext::CreateCommandQueue ( )
protectedvirtual

◆ CreateDeviceD3D()

bool Harlinn::Windows::DXContext::CreateDeviceD3D ( HWND hWnd)
virtual

◆ CreateRenderTargetViewDescriptorHeap()

DX::DescriptorHeap Harlinn::Windows::DXContext::CreateRenderTargetViewDescriptorHeap ( )
protectedvirtual

◆ CreateRenderTargetViews()

void Harlinn::Windows::DXContext::CreateRenderTargetViews ( )
virtual

◆ CreateShaderResourceViewDescriptorHeap()

DX::DescriptorHeap Harlinn::Windows::DXContext::CreateShaderResourceViewDescriptorHeap ( )
protectedvirtual

◆ CreateSwapChain()

Graphics::DXGI::SwapChain4 Harlinn::Windows::DXContext::CreateSwapChain ( HWND windowHandle)
protectedvirtual

◆ Device()

const DX::Device & Harlinn::Windows::DXContext::Device ( ) const
inline

◆ DoOnCreateDeviceObjects()

virtual void Harlinn::Windows::DXContext::DoOnCreateDeviceObjects ( )
inlineprotectedvirtual

◆ DoOnInvalidateDeviceObjects()

virtual void Harlinn::Windows::DXContext::DoOnInvalidateDeviceObjects ( )
inlineprotectedvirtual

◆ ExecuteCommandList()

void Harlinn::Windows::DXContext::ExecuteCommandList ( )
virtual

◆ Fence()

const DX::Fence & Harlinn::Windows::DXContext::Fence ( ) const
inline

◆ FenceEvent()

const EventWaitHandle & Harlinn::Windows::DXContext::FenceEvent ( ) const
inline

◆ FenceLastSignaledValue()

UInt64 Harlinn::Windows::DXContext::FenceLastSignaledValue ( ) const
inline

◆ FrameCompleted()

void Harlinn::Windows::DXContext::FrameCompleted ( )
virtual

◆ FrameContexts()

const std::array< FrameContext, FRAMES_IN_FLIGHT_COUNT > & Harlinn::Windows::DXContext::FrameContexts ( ) const
inline

◆ FrameIndex()

UINT Harlinn::Windows::DXContext::FrameIndex ( ) const
inline

◆ PrepareCommandList()

void Harlinn::Windows::DXContext::PrepareCommandList ( )
virtual

◆ PrepareFrame()

void Harlinn::Windows::DXContext::PrepareFrame ( )
virtual

◆ Present()

void Harlinn::Windows::DXContext::Present ( )
virtual

◆ RenderTargetDescriptors()

const std::array< D3D12_CPU_DESCRIPTOR_HANDLE, BACK_BUFFERS_COUNT > & Harlinn::Windows::DXContext::RenderTargetDescriptors ( ) const
inline

◆ RenderTargetResources()

const std::array< DX::Resource, BACK_BUFFERS_COUNT > & Harlinn::Windows::DXContext::RenderTargetResources ( ) const
inline

◆ RenderTargetViewDescHeap()

const DX::DescriptorHeap & Harlinn::Windows::DXContext::RenderTargetViewDescHeap ( ) const
inline

◆ Resize()

void Harlinn::Windows::DXContext::Resize ( HWND hWnd,
int width,
int height )
inline

◆ ResizeSwapChain()

void Harlinn::Windows::DXContext::ResizeSwapChain ( HWND hWnd,
int width,
int height )
virtual

◆ SetupFrameContexts()

void Harlinn::Windows::DXContext::SetupFrameContexts ( )
protected

◆ SetupRenderTargetDescriptors()

void Harlinn::Windows::DXContext::SetupRenderTargetDescriptors ( )
protected

◆ ShaderResourceViewDescHeap()

const DX::DescriptorHeap & Harlinn::Windows::DXContext::ShaderResourceViewDescHeap ( ) const
inline

◆ SwapChain()

const Graphics::DXGI::SwapChain4 & Harlinn::Windows::DXContext::SwapChain ( ) const
inline

◆ SwapChainWaitableObject()

HANDLE Harlinn::Windows::DXContext::SwapChainWaitableObject ( ) const
inline

◆ WaitForLastSubmittedFrame()

void Harlinn::Windows::DXContext::WaitForLastSubmittedFrame ( )
virtual

◆ WaitForNextFrameResources()

DXContext::FrameContext * Harlinn::Windows::DXContext::WaitForNextFrameResources ( )
virtual

Member Data Documentation

◆ BACK_BUFFERS_COUNT

size_t Harlinn::Windows::DXContext::BACK_BUFFERS_COUNT = 3
staticconstexpr

◆ backBufferIdx_

UINT Harlinn::Windows::DXContext::backBufferIdx_ = 0
private

◆ barrier_

D3D12_RESOURCE_BARRIER Harlinn::Windows::DXContext::barrier_ = {}
private

◆ commandList_

DX::GraphicsCommandList Harlinn::Windows::DXContext::commandList_
private

◆ commandQueue_

DX::CommandQueue Harlinn::Windows::DXContext::commandQueue_
private

◆ currentFrameContext_

FrameContext* Harlinn::Windows::DXContext::currentFrameContext_ = nullptr
private

◆ device_

DX::Device Harlinn::Windows::DXContext::device_
private

◆ dxgiFactory_

Graphics::DXGI::Factory4 Harlinn::Windows::DXContext::dxgiFactory_
private

◆ fence_

DX::Fence Harlinn::Windows::DXContext::fence_
private

◆ fenceEvent_

EventWaitHandle Harlinn::Windows::DXContext::fenceEvent_
private

◆ fenceLastSignaledValue_

UInt64 Harlinn::Windows::DXContext::fenceLastSignaledValue_ = 0
private

◆ frameContexts_

std::array<FrameContext, FRAMES_IN_FLIGHT_COUNT> Harlinn::Windows::DXContext::frameContexts_ = {}
private

◆ frameIndex_

UINT Harlinn::Windows::DXContext::frameIndex_ = 0
private

◆ FRAMES_IN_FLIGHT_COUNT

size_t Harlinn::Windows::DXContext::FRAMES_IN_FLIGHT_COUNT = 3
staticconstexpr

◆ hardwareAdapter_

Graphics::DXGI::Adapter4 Harlinn::Windows::DXContext::hardwareAdapter_
private

◆ OnCreateDeviceObjects

boost::signals2::signal<void( DXContext* context )> Harlinn::Windows::DXContext::OnCreateDeviceObjects

◆ OnInvalidateDeviceObjects

boost::signals2::signal<void( DXContext* context )> Harlinn::Windows::DXContext::OnInvalidateDeviceObjects

◆ renderTargetDescriptors_

std::array<D3D12_CPU_DESCRIPTOR_HANDLE, BACK_BUFFERS_COUNT> Harlinn::Windows::DXContext::renderTargetDescriptors_ = {}
private

◆ renderTargetResources_

std::array<DX::Resource, BACK_BUFFERS_COUNT> Harlinn::Windows::DXContext::renderTargetResources_
private

◆ renderTargetViewDescHeap_

DX::DescriptorHeap Harlinn::Windows::DXContext::renderTargetViewDescHeap_
private

◆ shaderResourceViewDescHeap_

DX::DescriptorHeap Harlinn::Windows::DXContext::shaderResourceViewDescHeap_
private

◆ swapChain_

Graphics::DXGI::SwapChain4 Harlinn::Windows::DXContext::swapChain_
private

◆ swapChainWaitableObject_

HANDLE Harlinn::Windows::DXContext::swapChainWaitableObject_ = nullptr
private

The documentation for this class was generated from the following files: