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)
{
#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;

2
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;

4
src/input.cpp

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

5
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() &&

1
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;

Loading…
Cancel
Save