]> git.localhorst.tv Git - space.git/blob - src/graphics/Canvas.h
move to SDL2
[space.git] / src / graphics / Canvas.h
1 #ifndef SPACE_CANVAS_H_
2 #define SPACE_CANVAS_H_
3
4 #include "Color.h"
5 #include "Vector.h"
6
7 #include <SDL.h>
8
9
10 namespace space {
11
12 class Canvas {
13
14 public:
15         Canvas() : canv(nullptr) { }
16         Canvas(SDL_Window *win, int index, Uint32 flags);
17         ~Canvas();
18
19         Canvas(Canvas &&);
20         Canvas &operator =(Canvas &&);
21
22         Canvas(const Canvas &) = delete;
23         Canvas &operator =(const Canvas &) = delete;
24
25 public:
26         Vector<int> Size() const;
27
28         void Present();
29
30         void SetColor(Color);
31
32         void Fill();
33         void Outline();
34
35         void Line(Vector<int> from, Vector<int> to);
36         void FillRect(Vector<int> pos, Vector<int> size);
37         void OutlineRect(Vector<int> pos, Vector<int> size);
38
39         void Dot(Vector<int> pos);
40         void Cross(Vector<int> pos, int extent);
41
42         void Grid(Vector<int> pos, Vector<int> size, Vector<int> step);
43         void Grid(Vector<int> pos, Vector<int> size, Vector<float> step);
44
45         void Grid2(Vector<int> pos, Vector<int> size, Vector<int> step,
46                         Vector<int> n, Color, Color);
47         void Grid2(Vector<int> pos, Vector<int> size, Vector<float> step,
48                         Vector<int> n, Color, Color);
49
50 private:
51         SDL_Renderer *canv;
52
53 };
54
55 }
56
57 #endif