#pragma once #include "Base.h" #include "Graphics/Shader.h" #include #include #include namespace Light { class dxSharedContext; class dxShader : public Shader { private: std::shared_ptr m_Context; Microsoft::WRL::ComPtr m_VertexShader; Microsoft::WRL::ComPtr m_PixelShader; Microsoft::WRL::ComPtr m_VertexBlob; public: dxShader(const std::string& vertexSource, const std::string& pixelSource, std::shared_ptr sharedContext); ~dxShader(); void Bind() override; void UnBind() override; void SetUniformMat4(const std::string& name, const glm::mat4& value) override; Microsoft::WRL::ComPtr GetVertexBlob() { return m_VertexBlob; } }; }