Browse Source

reorder tangerine.h interface into logical groups

main
cinnaboot 5 years ago
parent
commit
54a68455cc
  1. 81
      src/tangerine.cpp
  2. 4
      src/tangerine.h

81
src/tangerine.cpp

@ -19,46 +19,6 @@ GLContext* initGLContext(MemoryArena* arena,
// interface // interface
void
initRenderGroup(RenderGroup* rg,
MemoryArena* arena,
shader_program* shader,
u32 num_entities,
const char* name)
{
rg->max_entities = num_entities;
rg->shader = shader;
rg->name = arenaCopyCStr(arena, name);
rg->entities = ARENA_ALLOC(arena, Entity, num_entities);
}
void
freeRenderGroup(RenderGroup* rg, MemoryArena* arena)
{
printf("%s(), should probably look into freeing arena memory?\n",
__FUNCTION__);
assert(0);
}
Entity*
getFreeEntity(RenderGroup* rg)
{
if (rg->num_entities < rg->max_entities)
return &rg->entities[rg->num_entities++];
printf("%s(), render group full\n", __FUNCTION__);
return nullptr;
}
RenderGroup*
getFreeRenderGroup(RenderState* rs)
{
if (rs->num_render_groups < rs->max_render_groups)
return &rs->render_groups[rs->num_render_groups++];
printf("%s(), no free render group\n", __FUNCTION__);
return nullptr;
}
RenderState* RenderState*
initRenderState(u32 max_models, initRenderState(u32 max_models,
@ -115,6 +75,47 @@ freeRenderState(RenderState*& rs)
SDL_Quit(); SDL_Quit();
} }
void
initRenderGroup(RenderGroup* rg,
MemoryArena* arena,
shader_program* shader,
u32 num_entities,
const char* name)
{
rg->max_entities = num_entities;
rg->shader = shader;
rg->name = arenaCopyCStr(arena, name);
rg->entities = ARENA_ALLOC(arena, Entity, num_entities);
}
void
freeRenderGroup(RenderGroup* rg, MemoryArena* arena)
{
printf("%s(), should probably look into freeing arena memory?\n",
__FUNCTION__);
assert(0);
}
RenderGroup*
getFreeRenderGroup(RenderState* rs)
{
if (rs->num_render_groups < rs->max_render_groups)
return &rs->render_groups[rs->num_render_groups++];
printf("%s(), no free render group\n", __FUNCTION__);
return nullptr;
}
Entity*
getFreeEntity(RenderGroup* rg)
{
if (rg->num_entities < rg->max_entities)
return &rg->entities[rg->num_entities++];
printf("%s(), render group full\n", __FUNCTION__);
return nullptr;
}
void void
doRenderLoop(RenderState* rs, doRenderLoop(RenderState* rs,
u32 framerate, u32 framerate,

4
src/tangerine.h

@ -103,8 +103,6 @@ RenderState* initRenderState(u32 max_models = DEFAULT_MODEL_COUNT,
void freeRenderState(RenderState*& rs); void freeRenderState(RenderState*& rs);
RenderGroup* getFreeRenderGroup(RenderState* rs);
#define DEFAULT_ENTITY_COUNT 256 #define DEFAULT_ENTITY_COUNT 256
void initRenderGroup(RenderGroup* rg, void initRenderGroup(RenderGroup* rg,
MemoryArena* arena, MemoryArena* arena,
@ -114,6 +112,8 @@ void initRenderGroup(RenderGroup* rg,
void freeRenderGroup(RenderGroup* rg, MemoryArena* arena); void freeRenderGroup(RenderGroup* rg, MemoryArena* arena);
RenderGroup* getFreeRenderGroup(RenderState* rs);
Entity* getFreeEntity(RenderGroup* rg); Entity* getFreeEntity(RenderGroup* rg);
// NOTE: callback function signature to use with renDoRenderLoop() // NOTE: callback function signature to use with renDoRenderLoop()

Loading…
Cancel
Save