Files
sophia/engine/include/sophia/canvas.hpp
T
2026-09-06 23:41:20 -07:00

43 lines
768 B
C++

#pragma once
#include <memory>
#include <sophia/frame_info.hpp>
#include <vector>
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/glm.hpp>
namespace sophia {
class Application;
struct CanvasVertex {
glm::vec2 position;
glm::vec3 color;
};
class Canvas {
public:
Canvas(const Canvas&) = delete;
Canvas& operator=(const Canvas&) = delete;
~Canvas();
void triangle(glm::vec2 a, glm::vec2 b, glm::vec2 c,
glm::vec3 color = {1.0f, 1.0f, 1.0f});
void quad(glm::vec2 position, glm::vec2 size,
glm::vec3 color = {1.0f, 1.0f, 1.0f});
void clear();
private:
friend class Application;
Canvas(Application* application);
class Impl;
std::unique_ptr<Impl> impl;
};
} // namespace sophia