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