diff --git a/src/shader.cpp b/src/shader.cpp index cfeb054..d4c5e89 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -238,11 +238,10 @@ parseUniformBlocks(memory_arena* arena, shader_program* s, GLContext* gl_ctx) ub.block_id = i; GLchar block_name[256] = {0}; + GLsizei name_len = 0; glGetActiveUniformBlockName( - s->prog_id, i, 256, &ub.name_len, block_name); - ub.name_len++; // NOTE: space for null term - ub.name = (char*) arenaAllocateBlock(arena, ub.name_len * sizeof(char)); - std::strncpy(ub.name, block_name, ub.name_len); + s->prog_id, i, 256, &name_len, block_name); + ub.name = arenaCopyCStr(arena, block_name); glGetActiveUniformBlockiv(s->prog_id, i, GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS, (GLint*) &ub.num_uniforms); diff --git a/src/shader.h b/src/shader.h index 16f19a3..b93c014 100644 --- a/src/shader.h +++ b/src/shader.h @@ -46,7 +46,6 @@ struct GLUniformBlock GLint binding_idx; GLuint num_uniforms; gl_uniform* uniforms; - GLsizei name_len; char* name; };