#pragma once #include "Base/Base.hpp" #include "Graphics/Shader.hpp" #include "Utility/FileManager.hpp" #include #include namespace Light { class dxSharedContext; class dxShader: public Shader { private: Ref m_Context; Microsoft::WRL::ComPtr m_VertexShader; Microsoft::WRL::ComPtr m_PixelShader; Microsoft::WRL::ComPtr m_VertexBlob; public: dxShader(BasicFileHandle vertexFile, BasicFileHandle pixelFile, Ref sharedContext); ~dxShader(); void Bind() override; void UnBind() override; inline Microsoft::WRL::ComPtr GetVertexBlob() { return m_VertexBlob; } }; } // namespace Light