Horizon
Loading...
Searching...
No Matches
picture_renderer.hpp
1#pragma once
2#include "common/common.hpp"
3#include "util/uuid.hpp"
4#include "color_palette.hpp"
5#include "util/gl_inc.h"
6#include <memory>
7#include "util/picture_data.hpp"
8
9namespace horizon {
10
12 friend class CanvasGL;
13
14public:
15 PictureRenderer(const class CanvasGL &c);
16 void realize();
17 void render(bool on_top);
18 void push();
19
20private:
21 const CanvasGL &ca;
22
23 GLuint program;
24 GLuint vao;
25 GLuint vbo;
26
27 GLuint screenmat_loc;
28 GLuint viewmat_loc;
29 GLuint scale_loc;
30 GLuint size_loc;
31 GLuint shift_loc;
32 GLuint angle_loc;
33 GLuint tex_loc;
34 GLuint opacity_loc;
35
36 std::map<UUID, std::pair<std::shared_ptr<const PictureData>, GLuint>> textures;
37 void cache_picture(std::shared_ptr<const PictureData> d);
38 void uncache_picture(const UUID &uu);
39};
40} // namespace horizon
Definition canvas_gl.hpp:20
Definition picture_renderer.hpp:11
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16