#pragma once #include "Shader.hpp" namespace TSE::OpenGL { class BasicShader : public Shader { private: static BasicShader* instance; public: static BasicShader* Instance(); static void Destroy(); static void Init(float width, float height); BasicShader(std::vector>&& parts); protected: void OnEnable() const override; void OnDisable() const override; void OnFlush() override; void OnDrawCall(int indexCount) override; void OnSubmit(const Transformable& t, float*& target, TransformationStack& stack, void (*restartDrawcall)(IRenderer&), IRenderer& rnd) override; }; } // namespace TSE::OpenGL