Browse Source

add arenaCopyCStr() utility function

main
cinnaboot 5 years ago
parent
commit
78edb249a9
  1. 12
      src/asset.cpp
  2. 2
      src/asset.h
  3. 5
      src/shader.cpp

12
src/asset.cpp

@ -70,6 +70,18 @@ arenaAllocateBlock(memory_arena* arena, size_t block_size)
return ret;
}
#define MAX_NAME_LENGTH 256
char*
arenaCopyCStr(memory_arena* arena, const char* input)
{
u32 name_len = std::strlen(input) + 1;
assert(name_len < MAX_NAME_LENGTH);
// TODO: make an arena alloc macro
char* out = (char*) arenaAllocateBlock(arena, name_len);
std::strncpy(out, input, name_len);
return out;
}
// forward declarations
void dumpNodes(tinygltf::Model t_mdl);

2
src/asset.h

@ -35,6 +35,8 @@ uint arenaGetFreeSize(memory_arena* arena);
void* arenaAllocateBlock(memory_arena* arena, size_t block_size);
char* arenaCopyCStr(memory_arena* arena, const char* input);
// NOTE: wrapper for stb_image
struct util_image
{

5
src/shader.cpp

@ -45,10 +45,7 @@ addShaderProgram(memory_arena* arena,
shader_program* s = &gl_ctx->shaders[gl_ctx->num_shaders];
gl_ctx->num_shaders++;
u32 name_len = std::strlen(name) + 1;
s->name = (char*) arenaAllocateBlock(arena, name_len);
std::strncpy(s->name, name, name_len);
s->name = arenaCopyCStr(arena, name);
const u32 max_len = 256;
std::string hash_str = vs;

Loading…
Cancel
Save