#include "../../../include/RenderBackend/OpenGL/DeviceFrame.hpp" #include "../../../include/RenderBackend/OpenGL/DeviceMemory.hpp" #include "../../../include/RenderBackend/OpenGL/opengl.hpp" #include "../../../include/RenderBackend/OpenGL/ShaderProgram.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(ShaderProgram *shader) { shader->use(); //glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); for(DeviceMemory *deviceMemory : buffers) { deviceMemory->draw(); } //glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } }