Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class D3D12Core
- {
- public:
- D3D12Core();
- ~D3D12Core() = default;
- static D3D12Core& Get()
- {
- if(s_Instance == nullptr)
- s_Instance = new D3D12Core();
- return *s_Instance;
- }
- ComPtr<ID3D12Device2> GetDevice() const { return m_Device; }
- Ref<CommandQueue> GetCommandQueue(D3D12_COMMAND_LIST_TYPE type);
- ComPtr<ID3D12Resource> GetCurrentBackBuffer(UINT current) { return m_BackBuffers[current]; }
- uint32_t GetClientWidth() const {return m_ClientWidth;}
- uint32_t GetClientHeight() const { return m_ClientHeight; }
- ComPtr<ID3D12Device2> CreateDevice(bool bUseWarp);
- ComPtr<ID3D12DescriptorHeap> CreateDescriptorHeap(UINT numDescriptors, D3D12_DESCRIPTOR_HEAP_TYPE type);
- ComPtr<IDXGISwapChain4> CreateSwapChain(HWND windowHandle,ComPtr<ID3D12CommandQueue> commandqueue, uint32_t width, uint32_t Height);
- void UpdateRenderTargetViews(ComPtr<IDXGISwapChain4> swapChain, ComPtr<ID3D12DescriptorHeap> descriptorHeap);
- bool CheckTearingSupport();
- static const uint8_t m_BufferCount = 3;
- ComPtr<ID3D12Resource> m_BackBuffers[m_BufferCount];
- uint64_t m_FenceValues[m_BufferCount];
- private:
- void ParseCommandLineArguments();
- uint32_t m_ClientWidth = 1280;
- uint32_t m_ClientHeight = 720;
- Ref<CommandQueue> m_DirectCommandQueue;
- Ref<CommandQueue> m_ComputeCommandQueue;
- Ref<CommandQueue> m_CopyCommandQueue;
- ComPtr<ID3D12Device2> m_Device;
- bool m_UseWarp;
- static D3D12Core* s_Instance;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement