Browse Source

remove 'name_len' from gl_uniform struct and use new helper

main
cinnaboot 5 years ago
parent
commit
608ae99f2e
  1. 16
      src/shader.cpp
  2. 1
      src/shader.h

16
src/shader.cpp

@ -157,11 +157,12 @@ parseUniform(memory_arena* arena, shader_program* s, u32 uniform_idx)
{ {
gl_uniform unif = {0}; gl_uniform unif = {0};
GLchar unif_name[256] = {0}; GLchar unif_name[256] = {0};
GLsizei name_len = 0;
glGetActiveUniform(s->prog_id, glGetActiveUniform(s->prog_id,
uniform_idx, uniform_idx,
sizeof(unif_name), sizeof(unif_name),
&unif.name_len, &name_len,
&unif.num_elements, &unif.num_elements,
&unif.data_type, &unif.data_type,
unif_name); unif_name);
@ -171,10 +172,7 @@ parseUniform(memory_arena* arena, shader_program* s, u32 uniform_idx)
unif.idx = uniform_idx; unif.idx = uniform_idx;
unif.data_size = getGLTypeSize(unif.data_type); unif.data_size = getGLTypeSize(unif.data_type);
assert(unif.data_size > 0); assert(unif.data_size > 0);
unif.name_len += 1; // NOTE: gl param dosen't account for null terminator unif.name = arenaCopyCStr(arena, unif_name);
unif.name =
(char*) arenaAllocateBlock(arena, (unif.name_len) * sizeof(char));
std::strncpy(unif.name, unif_name, unif.name_len);
unif.location = glGetUniformLocation(s->prog_id, unif.name); unif.location = glGetUniformLocation(s->prog_id, unif.name);
if (unif.data_size == 0) if (unif.data_size == 0)
@ -301,13 +299,7 @@ initTransforms(memory_arena* arena,
xform_ubo->target = GL_UNIFORM_BUFFER; xform_ubo->target = GL_UNIFORM_BUFFER;
xform_ubo->data_type = GL_FLOAT; xform_ubo->data_type = GL_FLOAT;
xform_ubo->data_size = sizeof(*xforms); xform_ubo->data_size = sizeof(*xforms);
xform_ubo->name = arenaCopyCStr(arena, "matrices");
// TODO: make an arenaAddCStr(arena, char*& str_ref) for this nonsense
const char* block_name = "matrices";
u32 name_len = std::strlen(block_name) + 1;
xform_ubo->name = (char*) arenaAllocateBlock(arena, name_len);
std::strncpy(xform_ubo->name, block_name, name_len);
// END TODO:
glBindBuffer(xform_ubo->target, xform_ubo->id); glBindBuffer(xform_ubo->target, xform_ubo->id);
glBufferData(xform_ubo->target, sizeof(*xforms), xforms, glBufferData(xform_ubo->target, sizeof(*xforms), xforms,

1
src/shader.h

@ -37,7 +37,6 @@ struct gl_uniform
GLenum data_type; GLenum data_type;
GLint data_size; GLint data_size;
GLint num_elements; GLint num_elements;
GLsizei name_len;
char* name; char* name;
}; };

Loading…
Cancel
Save