diff options
author | dec05eba <dec05eba@protonmail.com> | 2017-12-26 17:29:28 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-11-18 15:21:48 +0100 |
commit | ffe9dac56488ebfc9f5c37c4e400f4f5469a8a46 (patch) | |
tree | 5958b66f16d217e31215d2f6ec56bb341ec06a76 /src/RenderBackend/OpenGL/DeviceFrame.cpp | |
parent | b5f06b6c4cd07f3073897af32626b9b21a4d2ef8 (diff) |
Add device memory, device frame. Rendering works
Diffstat (limited to 'src/RenderBackend/OpenGL/DeviceFrame.cpp')
-rw-r--r-- | src/RenderBackend/OpenGL/DeviceFrame.cpp | 36 |
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(); + } + } +} |