#pragma once #include #include #include namespace lt { class dxSharedContext; class dxFramebuffer: public Framebuffer { public: dxFramebuffer( const FramebufferSpecification &specification, Ref sharedContext ); auto get_color_attachment() -> void * override { return (void *)m_shader_resource_view.Get(); } void bind_as_target(const glm::vec4 &clearColor) override; void bind_as_resource() override; void resize(const glm::uvec2 &size) override; private: Ref m_context; FramebufferSpecification m_specification; Microsoft::WRL::ComPtr m_render_target_view; Microsoft::WRL::ComPtr m_color_attachment; Microsoft::WRL::ComPtr m_depth_stencil_attachment; Microsoft::WRL::ComPtr m_shader_resource_view; Microsoft::WRL::ComPtr m_depth_stencil_view; }; } // namespace lt