mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-17 17:05:37 +00:00
Initial commit of current work on Prime World Editor
This commit is contained in:
60
OpenGL/CUniformBuffer.cpp
Normal file
60
OpenGL/CUniformBuffer.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "CUniformBuffer.h"
|
||||
|
||||
CUniformBuffer::CUniformBuffer()
|
||||
{
|
||||
glGenBuffers(1, &mUniformBuffer);
|
||||
SetBufferSize(0);
|
||||
}
|
||||
|
||||
CUniformBuffer::CUniformBuffer(u32 Size)
|
||||
{
|
||||
glGenBuffers(1, &mUniformBuffer);
|
||||
SetBufferSize(Size);
|
||||
}
|
||||
|
||||
CUniformBuffer::~CUniformBuffer()
|
||||
{
|
||||
glDeleteBuffers(1, &mUniformBuffer);
|
||||
}
|
||||
|
||||
void CUniformBuffer::InitializeBuffer()
|
||||
{
|
||||
Bind();
|
||||
glBufferData(GL_UNIFORM_BUFFER, mBufferSize, 0, GL_DYNAMIC_DRAW);
|
||||
Unbind();
|
||||
}
|
||||
|
||||
void CUniformBuffer::Bind()
|
||||
{
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, mUniformBuffer);
|
||||
}
|
||||
|
||||
void CUniformBuffer::Unbind()
|
||||
{
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
||||
}
|
||||
|
||||
void CUniformBuffer::BindBase(GLuint index)
|
||||
{
|
||||
Bind();
|
||||
glBindBufferBase(GL_UNIFORM_BUFFER, index, mUniformBuffer);
|
||||
Unbind();
|
||||
}
|
||||
|
||||
void CUniformBuffer::Buffer(void *pData)
|
||||
{
|
||||
Bind();
|
||||
glBufferSubData(GL_UNIFORM_BUFFER, 0, mBufferSize, pData);
|
||||
Unbind();
|
||||
}
|
||||
|
||||
void CUniformBuffer::SetBufferSize(u32 Size)
|
||||
{
|
||||
mBufferSize = Size;
|
||||
InitializeBuffer();
|
||||
}
|
||||
|
||||
u32 CUniformBuffer::GetBufferSize()
|
||||
{
|
||||
return mBufferSize;
|
||||
}
|
||||
Reference in New Issue
Block a user