1#include "ShaderStorageBuffer.h"
5ShaderStorageBuffer::ShaderStorageBuffer()
7 glGenBuffers(1, &rendererId);
8 glBindBuffer(GL_SHADER_STORAGE_BUFFER, rendererId);
11ShaderStorageBuffer::~ShaderStorageBuffer()
13 glDeleteBuffers(1, &rendererId);
16void ShaderStorageBuffer::Bind(
int index)
19 glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, rendererId);
22void ShaderStorageBuffer::Bind()
24 glBindBuffer(GL_SHADER_STORAGE_BUFFER, rendererId);
27void ShaderStorageBuffer::Unbind()
29 glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);
32void ShaderStorageBuffer::SetData(
void *data,
unsigned int size,
bool dynamic)
34 glBindBuffer(GL_SHADER_STORAGE_BUFFER, rendererId);
38 glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, GL_DYNAMIC_COPY);
43 glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, GL_STATIC_COPY);
47void ShaderStorageBuffer::GetData(
void *data,
int size)
49 glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, 0, size, data);