light/Engine/src/Platform/GraphicsAPI/DirectX/dxFramebuffer.h

38 lines
956 B
C
Raw Normal View History

#pragma once
#include "Graphics/Framebuffer.h"
2021-07-29 17:12:13 +04:30
#include "Base/Base.h"
#include <d3d11.h>
#include <wrl.h>
namespace Light {
class dxSharedContext;
class dxFramebuffer : public Framebuffer
{
private:
Ref<dxSharedContext> m_Context;
FramebufferSpecification m_Specification;
Microsoft::WRL::ComPtr<ID3D11RenderTargetView> m_RenderTargetView;
Microsoft::WRL::ComPtr<ID3D11Texture2D> m_ColorAttachment;
Microsoft::WRL::ComPtr<ID3D11Texture2D> m_DepthStencilAttachment;
2021-07-29 17:12:13 +04:30
Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> m_ShaderResourceView;
Microsoft::WRL::ComPtr<ID3D11DepthStencilView> m_DepthStencilView;
public:
dxFramebuffer(const FramebufferSpecification& specification, Ref<dxSharedContext> sharedContext);
2021-07-29 17:12:13 +04:30
inline void* GetColorAttachment() override { return (void*)m_ShaderResourceView.Get(); }
void BindAsTarget() override;
void BindAsResource() override;
2021-07-29 17:12:13 +04:30
void Resize(const glm::uvec2& size) override;
};
}