.. _program_listing_file_Source_Azura_RenderSystem_Inc_D3D12_D3D12Renderer.h: Program Listing for File D3D12Renderer.h ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``Source\Azura\RenderSystem\Inc\D3D12\D3D12Renderer.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "Generic/Renderer.h" #include "Generic/Window.h" #include "Log/Log.h" #include "D3D12/D3D12DrawablePool.h" #include "D3D12/D3D12Core.h" #include "D3D12/D3D12ScopedShader.h" #include "Memory/MonotonicAllocator.h" #include "Memory/HeapMemoryBuffer.h" #include "D3D12/D3D12ScopedCommandBuffer.h" #include "D3D12/D3D12ScopedSwapChain.h" #include "D3D12/D3D12ScopedRenderPass.h" #include "D3D12/D3D12ScopedComputePass.h" #include "D3D12/D3D12ComputePool.h" namespace Azura { namespace D3D12 { class D3D12Renderer : public Renderer { public: D3D12Renderer(const ApplicationInfo& appInfo, const DeviceRequirements& deviceRequirements, const ApplicationRequirements& appRequirements, const SwapChainRequirements& swapChainRequirements, const RenderPassRequirements& renderPassRequirements, const DescriptorRequirements& descriptorRequirements, const ShaderRequirements& shaderRequirements, Memory::Allocator& mainAllocator, Memory::Allocator& drawAllocator, Window& window); String GetRenderingAPI() const override; DrawablePool& CreateDrawablePool(const DrawablePoolCreateInfo& createInfo) override; ComputePool& CreateComputePool(const ComputePoolCreateInfo& createInfo) override; void Submit() override; void RenderFrame() override; void SnapshotFrame(const String& exportPath) const override; void BindRenderTarget(U32 renderTargetId, const TextureDesc& desc, const U8* buffer) override; void BindBufferTarget(U32 bufferTargetId, const U8* buffer) override; private: void AddShader(const ShaderCreateInfo& info) override; Log log_D3D12RenderSystem; Memory::HeapMemoryBuffer m_perFrameBuffer; Memory::MonotonicAllocator m_perFrameAllocator; Memory::HeapMemoryBuffer m_initBuffer; Memory::MonotonicAllocator m_initAllocator; D3D12ScopedSwapChain m_swapChain; Microsoft::WRL::ComPtr m_device; Microsoft::WRL::ComPtr m_commandAllocator; Microsoft::WRL::ComPtr m_mainGraphicsCommandQueue; Microsoft::WRL::ComPtr m_mainComputeCommandQueue; UINT m_rtvDescriptorSize; UINT m_dsvDescriptorSize; CD3DX12_VIEWPORT m_viewport; CD3DX12_RECT m_scissorRect; D3D12ScopedImage m_depthTexture{}; D3D12ScopedBuffer m_stagingBuffer; Containers::Vector m_renderTargetUpdates; Containers::Vector m_bufferTargetUpdates; Containers::Vector> m_renderSequence; Containers::Vector m_targetImages; Containers::Vector m_targetBuffers; Containers::Vector m_renderPasses; Containers::Vector m_computePasses; Containers::Vector m_drawablePools; Containers::Vector m_computePools; Containers::Vector m_shaders; }; } // namespace D3D12 } // namespace Azura