summary refs log tree commit diff
path: root/src/GFX/Actions.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GFX/Actions.hpp')
-rw-r--r--src/GFX/Actions.hpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/GFX/Actions.hpp b/src/GFX/Actions.hpp
new file mode 100644
index 0000000..cc19169
--- /dev/null
+++ b/src/GFX/Actions.hpp
@@ -0,0 +1,39 @@
+#pragma once
+#include "Mesh.hpp"
+#include "Resources.hpp"
+#include "../Transform.hpp"
+
+namespace MC::GFX {
+
+enum class DrawMode {
+    Triangles = GL_TRIANGLES,
+    Lines = GL_LINES,
+};
+
+struct Action {
+    Mesh* mesh;
+    Resources::Program program;
+    Transform transform;
+
+    F32 alpha = 1.0f;
+    DrawMode draw_mode = DrawMode::Triangles;
+};
+
+class Actions {
+public:
+    void add(Action const& action) {
+        m_actions.push_back(action);
+    }
+
+    void clear() {
+        m_actions.clear();
+    }
+
+    const std::vector<Action>& actions() const {
+        return m_actions;
+    }
+private:
+    std::vector<Action> m_actions;
+};
+
+}