Skip to content

Shader

Shaders are implemented in VersaMachina as an abstract class allowing for platform-specific to be implemented.

Render/Shader.h

#pragma once

#include <string>

namespace VersaMachina
{
    namespace Render
    {
        class Shader
        {
            public:
                Shader(const std::string& vertexSrc, const std::string& fragmentSrc);
                ~Shader();

                void Bind() const;
                void UnBind() const;
                inline void* GetNativeShader() { return m_Shader; }

            private:
                uint32_t m_RendererID;
                void* m_Shader;

        };
    } // namespace Render

} // namespace VersaMachina