From ffe9dac56488ebfc9f5c37c4e400f4f5469a8a46 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 26 Dec 2017 17:29:28 +0100 Subject: Add device memory, device frame. Rendering works --- src/RenderBackend/OpenGL/DeviceFrame.cpp | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/RenderBackend/OpenGL/DeviceFrame.cpp (limited to 'src/RenderBackend/OpenGL/DeviceFrame.cpp') 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(); + } + } +} -- cgit v1.2.3