#ifndef DESTRUM_QUADRENDERINGMANAGER_H #define DESTRUM_QUADRENDERINGMANAGER_H #include #include #include #include struct QuadSubmission { glm::vec2 position; glm::vec2 size; float rotation; glm::vec4 color; ImageID textureId; }; class QuadRenderingManager final : public Singleton { public: friend class Singleton; void SubmitQuad( const glm::vec2& position, const glm::vec2& size, const glm::vec4& color = glm::vec4{1.0f}, ImageID textureId = NULL_IMAGE_ID); void SubmitQuad( const glm::vec2& position, const glm::vec2& size, float rotation, const glm::vec4& color = glm::vec4{1.0f}, ImageID textureId = NULL_IMAGE_ID); [[nodiscard]] const std::vector& GetQuads() const { return quads; } void ClearQuads(); private: QuadRenderingManager() = default; std::vector quads; }; #endif // DESTRUM_QUADRENDERINGMANAGER_H