diff --git a/examples/render_groups/main.cpp b/examples/render_groups/main.cpp index cd2e233..d6e5e19 100644 --- a/examples/render_groups/main.cpp +++ b/examples/render_groups/main.cpp @@ -112,6 +112,18 @@ doFrameCallbackPre(render_state* rs) square.world_transform * glm::vec4(10000, 0, -1000, 1)); rs->lights->needs_update = true; #endif + static input_state is = {}; + inputProcessEvents(&is); + + if (is.window_closed || is.escape) { + rs->running = false; + return; + } + + static float angle = 1.2 / 60; // NOTE: 60 FPS + static glm::vec3 axis(0, 1, 0); + entity* spaceship = &rs->render_groups->groups[0].entities[0]; + entRotate(spaceship, angle, axis); } int @@ -124,6 +136,7 @@ main() return 1; } +#if 0 cameraInitPerspective( rs->cam, glm::vec3(0, -2000, 0), @@ -134,7 +147,6 @@ main() renAddLight(rs, glm::vec3()); renAddLight(rs, glm::vec3()); -#if 0 // FIXME: this introduces a potential buffer overrun. Need to implement // a memory manager for render_groups, eg: // renPushGroup(rs, new_group) @@ -191,25 +203,41 @@ main() 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: need a debug shader that shows geometry and normals // FIXME: remove platform_wait_for_vblank + // FIXME: clean up examples with new asset system + // FIXME: merger render_group_fix branch back into master // 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 shader_wrapper sw = { DEFAULT_SHADER, rs->default_shader, nullptr }; render_group* rg = rgAlloc(rs->render_groups, 64, sw); + +#if 0 entity* e = rgAppend(rg, rs->assets, rs->arena, "../data/blender/spaceship.gltf"); - //rgAppend(rg, rs->assets, rs->arena, "../data/blender/icosphere.gltf"); - uint scale = 200; - entScale(*e, glm::vec3(scale, scale, scale)); 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)); - renDoRenderLoop(rs, 60); - //renRenderFrame(rs); + //renDoRenderLoop(rs, 60); + renDoRenderLoop(rs, 60, doFrameCallbackPre); renShutdown(rs); return 0;