#pragma once #include "Base.h" #include "Graphics/Framebuffer.h" #include #include namespace Light { class dxSharedContext; class dxFramebuffer : public Framebuffer { private: Ref m_Context; FramebufferSpecification m_Specification; Microsoft::WRL::ComPtr m_RenderTargetView; Microsoft::WRL::ComPtr m_ColorAttachment; Microsoft::WRL::ComPtr m_DepthStencilAttachment; Microsoft::WRL::ComPtr m_ResourceView; Microsoft::WRL::ComPtr m_DepthStencilView; public: dxFramebuffer(const FramebufferSpecification& specification, Ref sharedContext); inline void* GetColorAttachment() override { return (void*)m_ResourceView.Get(); } void BindAsTarget() override; void BindAsResource() override; void Resize(const glm::vec2& size) override; }; }