diff --git a/examples/render_groups/main.cpp b/examples/render_groups/main.cpp index d6e5e19..a3664bd 100644 --- a/examples/render_groups/main.cpp +++ b/examples/render_groups/main.cpp @@ -54,8 +54,6 @@ createModelEntities(render_group* rg, glm::vec3 scaling) { #if 0 - assert(rg != nullptr); - for (uint i = 0; i < item_count; i++) { entity& e = rg->entities[i]; @@ -196,20 +194,6 @@ main() renDoRenderLoop(rs, 60, doFrameCallbackPre); #endif -#if 0 - model* ret = assetLoadFromFile(rs->assets, - rs->arena, - "../data/blender/spaceship.gltf"); - assert(ret != nullptr); -#endif - - cameraInitPerspective( - rs->cam, - glm::vec3(0, 0, -50), - glm::vec3(0, 0, 0), - glm::vec3(0,1,0) - ); - // NOTE: testing entity system with new asset structures // FIXME: remove mesh.h, mesh.cpp // FIXME: remove platform_wait_for_vblank @@ -218,26 +202,37 @@ main() // FIXME: make a test case for overflowing default array sizes, rg->assets // rg_info->groups, render_group->enitities // FIXME: look for glm::mat4 in structs, and replace with pointers - // FIXME: better shader abstraction, see below + // FIXME: better shader abstraction so we can store a list of shaders on + // render_state + + cameraInitPerspective( + rs->cam, + glm::vec3(0, 50, -100), + glm::vec3(0, 0, 0), + glm::vec3(0,1,0) + ); + shader_wrapper sw = { DEFAULT_SHADER, rs->default_shader, nullptr }; render_group* rg = rgAlloc(rs->render_groups, 64, sw); -#if 0 +#if 1 entity* e = rgAppend(rg, rs->assets, rs->arena, "../data/blender/spaceship.gltf"); - assert(e != nullptr); uint scale = 4; //entRotate(e, -1 * M_PI_2, glm::vec3(1, 0, 0)); #else entity* e = rgAppend(rg, rs->assets, rs->arena, "../data/blender/icosphere.gltf"); - assert(e != nullptr); uint scale = 20; #endif - entScale(*e, glm::vec3(scale, scale, scale)); + if (e != nullptr) { + entScale(*e, glm::vec3(scale, scale, scale)); - //renDoRenderLoop(rs, 60); - renDoRenderLoop(rs, 60, doFrameCallbackPre); + //renDoRenderLoop(rs, 60); + renDoRenderLoop(rs, 60, doFrameCallbackPre); + } else { + LOG(Error) << "failed to load entity\n"; + } renShutdown(rs); return 0; diff --git a/src/asset.cpp b/src/asset.cpp index f838418..ce9d5c4 100644 --- a/src/asset.cpp +++ b/src/asset.cpp @@ -62,10 +62,8 @@ assetInitBlock(memory_arena* arena, uint asset_count) { model_assets* assets = (model_assets*) arenaAllocateBlock(arena, sizeof(model_assets)); - assert(assets != nullptr); assets->models = (model*) arenaAllocateBlock(arena, asset_count * sizeof(model)); - assert(assets->models != nullptr); assets->max = asset_count; return assets; diff --git a/src/input.cpp b/src/input.cpp index 1f2ded3..627360d 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -1,14 +1,10 @@ -#include - #include "input.h" void inputProcessEvent(input_state* is, SDL_Event& e) { - assert(is != nullptr); - switch (e.type) { case SDL_QUIT: is->window_closed = true; diff --git a/src/renderer.cpp b/src/renderer.cpp index c8f383e..8695e33 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -40,8 +40,6 @@ void setDefaults(render_state* rs, glm::vec2 viewport_dims); render_group* rgAlloc(rg_info* rgi, uint num_entites, shader_wrapper shader) { - assert(rgi != nullptr); - if (rgi->count < rgi->max_size) { render_group* rg = &rgi->groups[rgi->count]; rgi->count++; @@ -107,7 +105,8 @@ renInit(const char* title, rs->lights = lightsInit(); setDefaults(rs, viewport_dims); - if (initSDL(rs->handles, SDL_init_flags) && + if (rs->assets != nullptr && + initSDL(rs->handles, SDL_init_flags) && createWindow(title, rs->handles, rs->viewport_dims) && initContext(rs->handles) && initGlOptions() && diff --git a/src/util.cpp b/src/util.cpp index f51228a..4ab78f8 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -132,6 +132,7 @@ arenaGetFreeSize(memory_arena* arena) void* arenaAllocateBlock(memory_arena* arena, size_t block_size) { + // TODO: resizable memory arena assert(arenaGetFreeSize(arena) >= block_size); void* ret = arena->next_free; arena->next_free = (uint8_t*) arena->next_free + block_size;