mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-06 05:38:02 +03:00
GL: Reworked Buffer (re)creation
This commit is contained in:
+8
-8
@@ -43,9 +43,9 @@ struct EffectStorage {
|
||||
}
|
||||
|
||||
void Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
const EffectStorageAttrib* attribs);
|
||||
const EffectStorageAttrib* attribs, GL::BufferUsage usage = GL::BUFFER_USAGE_STREAM);
|
||||
void Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
const EffectStorageAttrib* attribs, const void* data, bool dynamic = false);
|
||||
const EffectStorageAttrib* attribs, const void* data, GL::BufferUsage usage = GL::BUFFER_USAGE_STATIC);
|
||||
void Destroy();
|
||||
|
||||
inline void Bind(p_gl_rend_state& p_gl_rend_st, int32_t index) {
|
||||
@@ -1767,9 +1767,9 @@ bool effect_manager_unload() {
|
||||
}
|
||||
|
||||
void EffectStorage::Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
const EffectStorageAttrib* attribs) {
|
||||
const EffectStorageAttrib* attribs, GL::BufferUsage usage) {
|
||||
if (GLAD_GL_VERSION_4_3) {
|
||||
ssbo.Create(gl_st, size * count);
|
||||
ssbo.Create(gl_st, size * count, usage);
|
||||
return;
|
||||
}
|
||||
else if (vao || !attribs)
|
||||
@@ -1778,7 +1778,7 @@ void EffectStorage::Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
glGenVertexArrays(1, &vao);
|
||||
gl_st.bind_vertex_array(vao, true);
|
||||
|
||||
vbo.Create(gl_st, size * count);
|
||||
vbo.Create(gl_st, size * count, usage);
|
||||
gl_st.bind_array_buffer(vbo, true);
|
||||
|
||||
const EffectStorageAttrib* attrib = attribs;
|
||||
@@ -1795,9 +1795,9 @@ void EffectStorage::Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
}
|
||||
|
||||
void EffectStorage::Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
const EffectStorageAttrib* attribs, const void* data, bool dynamic) {
|
||||
const EffectStorageAttrib* attribs, const void* data, GL::BufferUsage usage) {
|
||||
if (GLAD_GL_VERSION_4_3) {
|
||||
ssbo.Create(gl_st, size * count, data, dynamic);
|
||||
ssbo.Create(gl_st, size * count, data, usage);
|
||||
return;
|
||||
}
|
||||
else if (vao || !attribs)
|
||||
@@ -1806,7 +1806,7 @@ void EffectStorage::Create(gl_state_struct& gl_st, size_t size, size_t count,
|
||||
glGenVertexArrays(1, &vao);
|
||||
gl_st.bind_vertex_array(vao, true);
|
||||
|
||||
vbo.Create(gl_st, size * count, data, true);
|
||||
vbo.Create(gl_st, size * count, data, usage);
|
||||
gl_st.bind_array_buffer(vbo, true);
|
||||
|
||||
const EffectStorageAttrib* attrib = attribs;
|
||||
|
||||
Reference in New Issue
Block a user