]> git.localhorst.tv Git - space.git/blobdiff - src/graphics/Canvas.h
move to SDL2
[space.git] / src / graphics / Canvas.h
diff --git a/src/graphics/Canvas.h b/src/graphics/Canvas.h
new file mode 100644 (file)
index 0000000..032c7db
--- /dev/null
@@ -0,0 +1,57 @@
+#ifndef SPACE_CANVAS_H_
+#define SPACE_CANVAS_H_
+
+#include "Color.h"
+#include "Vector.h"
+
+#include <SDL.h>
+
+
+namespace space {
+
+class Canvas {
+
+public:
+       Canvas() : canv(nullptr) { }
+       Canvas(SDL_Window *win, int index, Uint32 flags);
+       ~Canvas();
+
+       Canvas(Canvas &&);
+       Canvas &operator =(Canvas &&);
+
+       Canvas(const Canvas &) = delete;
+       Canvas &operator =(const Canvas &) = delete;
+
+public:
+       Vector<int> Size() const;
+
+       void Present();
+
+       void SetColor(Color);
+
+       void Fill();
+       void Outline();
+
+       void Line(Vector<int> from, Vector<int> to);
+       void FillRect(Vector<int> pos, Vector<int> size);
+       void OutlineRect(Vector<int> pos, Vector<int> size);
+
+       void Dot(Vector<int> pos);
+       void Cross(Vector<int> pos, int extent);
+
+       void Grid(Vector<int> pos, Vector<int> size, Vector<int> step);
+       void Grid(Vector<int> pos, Vector<int> size, Vector<float> step);
+
+       void Grid2(Vector<int> pos, Vector<int> size, Vector<int> step,
+                       Vector<int> n, Color, Color);
+       void Grid2(Vector<int> pos, Vector<int> size, Vector<float> step,
+                       Vector<int> n, Color, Color);
+
+private:
+       SDL_Renderer *canv;
+
+};
+
+}
+
+#endif