Frame rate independent animation updates
This commit is contained in:
parent
710ff2d511
commit
e502785b1f
5 changed files with 76 additions and 59 deletions
|
|
@ -611,6 +611,27 @@ public:
|
|||
err = swapChain.queuePresent(queue, currentBuffer, semaphores.submitSignal);
|
||||
assert(!err);
|
||||
}
|
||||
|
||||
void render()
|
||||
{
|
||||
if (prepared)
|
||||
{
|
||||
startTiming();
|
||||
if (animating)
|
||||
{
|
||||
// Update rotation
|
||||
state.rotation.y += 0.05f * frameTimer;
|
||||
if (state.rotation.y > 360.0f)
|
||||
{
|
||||
state.rotation.y -= 360.0f;
|
||||
|
||||
}
|
||||
updateUniformBuffers();
|
||||
}
|
||||
draw();
|
||||
endTiming();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static int32_t handleInput(struct android_app* app, AInputEvent* event)
|
||||
|
|
@ -656,7 +677,6 @@ void android_main(struct android_app* state)
|
|||
{
|
||||
VulkanExample *engine = new VulkanExample();
|
||||
|
||||
//memset(&engine, 0, sizeof(engine));
|
||||
state->userData = engine;
|
||||
state->onAppCmd = handleCommand;
|
||||
state->onInputEvent = handleInput;
|
||||
|
|
@ -687,21 +707,6 @@ void android_main(struct android_app* state)
|
|||
}
|
||||
}
|
||||
|
||||
// Render frame
|
||||
if (engine->prepared)
|
||||
{
|
||||
if (engine->animating)
|
||||
{
|
||||
// Update rotation
|
||||
engine->state.rotation.y += 0.25f;
|
||||
if (engine->state.rotation.y > 360.0f)
|
||||
{
|
||||
engine->state.rotation.y -= 360.0f;
|
||||
|
||||
}
|
||||
engine->updateUniformBuffers();
|
||||
}
|
||||
engine->draw();
|
||||
}
|
||||
engine->render();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue