Zen 0.3.0
Loading...
Searching...
No Matches
QuadBuilder.h
1#pragma once
2#include <memory>
3#include <glm/glm.hpp>
4
5#include <zen/renderer/ZEN_VertexArray.h>
6#include <zen/renderer/ZEN_Buffer.h>
7#include <zen/renderer/ZEN_Shader.h>
8#include <zen/renderer/ZEN_Renderer.h>
9
11public:
12
13 void init(std::shared_ptr<Zen::Shader> shader);
14
15 void drawQuad(const glm::vec2& position, const glm::vec2& size, const glm::vec4& colour);
16
17
18 const std::shared_ptr<Zen::VertexArray>& vao() const { return m_vao; }
19 const std::shared_ptr<Zen::Shader>& shader() const { return m_shader; }
20
21private:
22 struct QuadVertex {
23 glm::vec2 pos;
24 glm::vec4 color;
25 };
26
27 std::shared_ptr<Zen::VertexArray> m_vao;
28 std::shared_ptr<Zen::VertexBuffer> m_vbo;
29 std::shared_ptr<Zen::IndexBuffer> m_ibo;
30 std::shared_ptr<Zen::Shader> m_shader;
31
32};