aboutsummaryrefslogtreecommitdiff
path: root/src/RenderBackend/OpenGL/DeviceFrame.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2017-12-26 17:29:28 +0100
committerdec05eba <dec05eba@protonmail.com>2021-11-18 15:21:48 +0100
commitffe9dac56488ebfc9f5c37c4e400f4f5469a8a46 (patch)
tree5958b66f16d217e31215d2f6ec56bb341ec06a76 /src/RenderBackend/OpenGL/DeviceFrame.cpp
parentb5f06b6c4cd07f3073897af32626b9b21a4d2ef8 (diff)
Add device memory, device frame. Rendering works
Diffstat (limited to 'src/RenderBackend/OpenGL/DeviceFrame.cpp')
-rw-r--r--src/RenderBackend/OpenGL/DeviceFrame.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/RenderBackend/OpenGL/DeviceFrame.cpp b/src/RenderBackend/OpenGL/DeviceFrame.cpp
new file mode 100644
index 0000000..9d60597
--- /dev/null
+++ b/src/RenderBackend/OpenGL/DeviceFrame.cpp
@@ -0,0 +1,36 @@
+#include "../../../include/RenderBackend/OpenGL/DeviceFrame.hpp"
+#include "../../../include/RenderBackend/OpenGL/DeviceMemory.hpp"
+#include "../../../include/RenderBackend/OpenGL/opengl.hpp"
+
+namespace amalgine
+{
+ DeviceFrame::DeviceFrame()
+ {
+ glGenVertexArrays(1, &vertexArrayObjectId);
+ }
+
+ DeviceFrame::~DeviceFrame()
+ {
+ for(DeviceMemory *deviceMemory : buffers)
+ {
+ delete deviceMemory;
+ }
+ glDeleteVertexArrays(1, &vertexArrayObjectId);
+ }
+
+ DeviceMemory* DeviceFrame::alloc()
+ {
+ glBindVertexArray(vertexArrayObjectId);
+ DeviceMemory *deviceMemory = new DeviceMemory();
+ buffers.push_back(deviceMemory);
+ return deviceMemory;
+ }
+
+ void DeviceFrame::draw()
+ {
+ for(DeviceMemory *deviceMemory : buffers)
+ {
+ deviceMemory->draw();
+ }
+ }
+}