Physics Simulation & Visualization Tool 0.1
A C++ physics simulation engine with real-time 3D visualization
Loading...
Searching...
No Matches
UniformBuffer.cpp
Go to the documentation of this file.
1#include "UniformBuffer.h"
2#include <iostream>
3#include <glm/vec4.hpp>
4
5UniformBuffer::UniformBuffer(unsigned int size, unsigned int bindingPoint, QOpenGLFunctions_4_5_Core* glFuncs)
6 : binding(bindingPoint), bufferSize(size), funcs(glFuncs) {
7
8 funcs->glGenBuffers(1, &id);
9 funcs->glBindBuffer(GL_UNIFORM_BUFFER, id);
10 funcs->glBufferData(GL_UNIFORM_BUFFER, size, nullptr, GL_DYNAMIC_DRAW);
11 funcs->glBindBufferBase(GL_UNIFORM_BUFFER, binding, id);
12 funcs->glBindBuffer(GL_UNIFORM_BUFFER, 0);
13}
14
16 funcs->glDeleteBuffers(1, &id);
17}
18
19void UniformBuffer::bind() const {
20 funcs->glBindBuffer(GL_UNIFORM_BUFFER, id);
21}
22
23void UniformBuffer::updateData(const void* data, unsigned int size, unsigned int offset) {
24 funcs->glBindBuffer(GL_UNIFORM_BUFFER, id);
25 funcs->glBufferSubData(GL_UNIFORM_BUFFER, offset, size, data);
26 funcs->glBindBuffer(GL_UNIFORM_BUFFER, 0);
27}
UniformBuffer(unsigned int size, unsigned int bindingPoint, QOpenGLFunctions_4_5_Core *glFuncs)
void bind() const
void updateData(const void *data, unsigned int size, unsigned int offset=0)