45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#ifndef DESTRUM_QUADRENDERINGMANAGER_H
|
|
#define DESTRUM_QUADRENDERINGMANAGER_H
|
|
|
|
#include <vector>
|
|
|
|
#include <glm/glm.hpp>
|
|
|
|
#include <destrum/Graphics/ids.h>
|
|
#include <destrum/Singleton.h>
|
|
|
|
struct QuadSubmission {
|
|
glm::vec2 position;
|
|
glm::vec2 size;
|
|
float rotation;
|
|
glm::vec4 color;
|
|
ImageID textureId;
|
|
};
|
|
|
|
class QuadRenderingManager final : public Singleton<QuadRenderingManager> {
|
|
public:
|
|
friend class Singleton<QuadRenderingManager>;
|
|
|
|
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<QuadSubmission>& GetQuads() const { return quads; }
|
|
void ClearQuads();
|
|
|
|
private:
|
|
QuadRenderingManager() = default;
|
|
|
|
std::vector<QuadSubmission> quads;
|
|
};
|
|
|
|
#endif // DESTRUM_QUADRENDERINGMANAGER_H
|