From ab30228b1a57053323363674fa7f137c0329a180 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Tue, 7 Jul 2020 23:12:04 -0300 Subject: Voltage heat map implemented Voltage heat map implemented using modern OpenGL =) New external library required: -GLEW -GLFW -GLM (incorporeted at the source) Old memory leaks fixed =) --- Project/VertexArray.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Project/VertexArray.cpp (limited to 'Project/VertexArray.cpp') diff --git a/Project/VertexArray.cpp b/Project/VertexArray.cpp new file mode 100644 index 0000000..2ae8725 --- /dev/null +++ b/Project/VertexArray.cpp @@ -0,0 +1,44 @@ +#include "VertexArray.h" +#include "Renderer.h" +#include "VertexBufferLayout.h" + +VertexArray::VertexArray() +{ + GLCall(glGenVertexArrays(1, &m_rendererID)); +} + +VertexArray::~VertexArray() +{ + GLCall(glDeleteVertexArrays(1, &m_rendererID)); +} + +void VertexArray::AddBuffer(const VertexBuffer& vb, const VertexBufferLayout& layout) +{ + Bind(); + vb.Bind(); + const auto& elements = layout.GetElements(); + unsigned int offset = 0; + for (unsigned int i = 0; i < elements.size(); ++i) { + const auto& element = elements[i]; + GLCall(glEnableVertexAttribArray(i)); + GLCall(glVertexAttribPointer(i, element.count, element.type, element.normalized, layout.GetStride(), (const void*)offset)); + offset += element.count * VertexBufferElement::GetSizeOfType(element.type); + } +} + +void VertexArray::UpdateBuffer(const VertexBuffer& vb, const void* newVBData, const unsigned int& newVBSize) +{ + Bind(); + vb.Bind(); + vb.SetSubData(newVBData, newVBSize); +} + +void VertexArray::Bind() const +{ + GLCall(glBindVertexArray(m_rendererID)); +} + +void VertexArray::Unbind() const +{ + GLCall(glBindVertexArray(0)); +} -- cgit