43 lines
777 B
C++
43 lines
777 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;
|
|
|
|
explicit Canvas(Application* application);
|
|
|
|
class Impl;
|
|
std::unique_ptr<Impl> impl;
|
|
};
|
|
|
|
} // namespace sophia
|