diff --git a/src/shader.cpp b/src/shader.cpp index a98319e..cfeb054 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -157,11 +157,12 @@ parseUniform(memory_arena* arena, shader_program* s, u32 uniform_idx) { gl_uniform unif = {0}; GLchar unif_name[256] = {0}; + GLsizei name_len = 0; glGetActiveUniform(s->prog_id, uniform_idx, sizeof(unif_name), - &unif.name_len, + &name_len, &unif.num_elements, &unif.data_type, unif_name); @@ -171,10 +172,7 @@ parseUniform(memory_arena* arena, shader_program* s, u32 uniform_idx) unif.idx = uniform_idx; unif.data_size = getGLTypeSize(unif.data_type); assert(unif.data_size > 0); - unif.name_len += 1; // NOTE: gl param dosen't account for null terminator - unif.name = - (char*) arenaAllocateBlock(arena, (unif.name_len) * sizeof(char)); - std::strncpy(unif.name, unif_name, unif.name_len); + unif.name = arenaCopyCStr(arena, unif_name); unif.location = glGetUniformLocation(s->prog_id, unif.name); if (unif.data_size == 0) @@ -301,13 +299,7 @@ initTransforms(memory_arena* arena, xform_ubo->target = GL_UNIFORM_BUFFER; xform_ubo->data_type = GL_FLOAT; xform_ubo->data_size = sizeof(*xforms); - - // 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: + xform_ubo->name = arenaCopyCStr(arena, "matrices"); glBindBuffer(xform_ubo->target, xform_ubo->id); glBufferData(xform_ubo->target, sizeof(*xforms), xforms, diff --git a/src/shader.h b/src/shader.h index 9af7b91..16f19a3 100644 --- a/src/shader.h +++ b/src/shader.h @@ -37,7 +37,6 @@ struct gl_uniform GLenum data_type; GLint data_size; GLint num_elements; - GLsizei name_len; char* name; };