Browse Source

remove some nullptr assertions

render_group_fix
cinnaboot 5 years ago
parent
commit
4019d1cded
  1. 41
      examples/render_groups/main.cpp
  2. 2
      src/asset.cpp
  3. 4
      src/input.cpp
  4. 5
      src/renderer.cpp
  5. 1
      src/util.cpp

41
examples/render_groups/main.cpp

@ -54,8 +54,6 @@ createModelEntities(render_group* rg,
glm::vec3 scaling) glm::vec3 scaling)
{ {
#if 0 #if 0
assert(rg != nullptr);
for (uint i = 0; i < item_count; i++) { for (uint i = 0; i < item_count; i++) {
entity& e = rg->entities[i]; entity& e = rg->entities[i];
@ -196,20 +194,6 @@ main()
renDoRenderLoop(rs, 60, doFrameCallbackPre); renDoRenderLoop(rs, 60, doFrameCallbackPre);
#endif #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 // NOTE: testing entity system with new asset structures
// FIXME: remove mesh.h, mesh.cpp // FIXME: remove mesh.h, mesh.cpp
// FIXME: remove platform_wait_for_vblank // FIXME: remove platform_wait_for_vblank
@ -218,26 +202,37 @@ main()
// FIXME: make a test case for overflowing default array sizes, rg->assets // FIXME: make a test case for overflowing default array sizes, rg->assets
// rg_info->groups, render_group->enitities // rg_info->groups, render_group->enitities
// FIXME: look for glm::mat4 in structs, and replace with pointers // 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 }; shader_wrapper sw = { DEFAULT_SHADER, rs->default_shader, nullptr };
render_group* rg = rgAlloc(rs->render_groups, 64, sw); render_group* rg = rgAlloc(rs->render_groups, 64, sw);
#if 0 #if 1
entity* e = entity* e =
rgAppend(rg, rs->assets, rs->arena, "../data/blender/spaceship.gltf"); rgAppend(rg, rs->assets, rs->arena, "../data/blender/spaceship.gltf");
assert(e != nullptr);
uint scale = 4; uint scale = 4;
//entRotate(e, -1 * M_PI_2, glm::vec3(1, 0, 0)); //entRotate(e, -1 * M_PI_2, glm::vec3(1, 0, 0));
#else #else
entity* e = entity* e =
rgAppend(rg, rs->assets, rs->arena, "../data/blender/icosphere.gltf"); rgAppend(rg, rs->assets, rs->arena, "../data/blender/icosphere.gltf");
assert(e != nullptr);
uint scale = 20; uint scale = 20;
#endif #endif
entScale(*e, glm::vec3(scale, scale, scale)); if (e != nullptr) {
entScale(*e, glm::vec3(scale, scale, scale));
//renDoRenderLoop(rs, 60); //renDoRenderLoop(rs, 60);
renDoRenderLoop(rs, 60, doFrameCallbackPre); renDoRenderLoop(rs, 60, doFrameCallbackPre);
} else {
LOG(Error) << "failed to load entity\n";
}
renShutdown(rs); renShutdown(rs);
return 0; return 0;

2
src/asset.cpp

@ -62,10 +62,8 @@ assetInitBlock(memory_arena* arena, uint asset_count)
{ {
model_assets* assets = model_assets* assets =
(model_assets*) arenaAllocateBlock(arena, sizeof(model_assets)); (model_assets*) arenaAllocateBlock(arena, sizeof(model_assets));
assert(assets != nullptr);
assets->models = assets->models =
(model*) arenaAllocateBlock(arena, asset_count * sizeof(model)); (model*) arenaAllocateBlock(arena, asset_count * sizeof(model));
assert(assets->models != nullptr);
assets->max = asset_count; assets->max = asset_count;
return assets; return assets;

4
src/input.cpp

@ -1,14 +1,10 @@
#include <cassert>
#include "input.h" #include "input.h"
void void
inputProcessEvent(input_state* is, SDL_Event& e) inputProcessEvent(input_state* is, SDL_Event& e)
{ {
assert(is != nullptr);
switch (e.type) { switch (e.type) {
case SDL_QUIT: case SDL_QUIT:
is->window_closed = true; is->window_closed = true;

5
src/renderer.cpp

@ -40,8 +40,6 @@ void setDefaults(render_state* rs, glm::vec2 viewport_dims);
render_group* render_group*
rgAlloc(rg_info* rgi, uint num_entites, shader_wrapper shader) rgAlloc(rg_info* rgi, uint num_entites, shader_wrapper shader)
{ {
assert(rgi != nullptr);
if (rgi->count < rgi->max_size) { if (rgi->count < rgi->max_size) {
render_group* rg = &rgi->groups[rgi->count]; render_group* rg = &rgi->groups[rgi->count];
rgi->count++; rgi->count++;
@ -107,7 +105,8 @@ renInit(const char* title,
rs->lights = lightsInit(); rs->lights = lightsInit();
setDefaults(rs, viewport_dims); 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) && createWindow(title, rs->handles, rs->viewport_dims) &&
initContext(rs->handles) && initContext(rs->handles) &&
initGlOptions() && initGlOptions() &&

1
src/util.cpp

@ -132,6 +132,7 @@ arenaGetFreeSize(memory_arena* arena)
void* void*
arenaAllocateBlock(memory_arena* arena, size_t block_size) arenaAllocateBlock(memory_arena* arena, size_t block_size)
{ {
// TODO: resizable memory arena
assert(arenaGetFreeSize(arena) >= block_size); assert(arenaGetFreeSize(arena) >= block_size);
void* ret = arena->next_free; void* ret = arena->next_free;
arena->next_free = (uint8_t*) arena->next_free + block_size; arena->next_free = (uint8_t*) arena->next_free + block_size;

Loading…
Cancel
Save