Frame rate independent animation updates
This commit is contained in:
parent
73c11f6dba
commit
4c217cef21
1 changed files with 11 additions and 1 deletions
|
|
@ -15,6 +15,7 @@
|
||||||
#include "vulkanandroid.h"
|
#include "vulkanandroid.h"
|
||||||
#include "vulkanswapchain.hpp"
|
#include "vulkanswapchain.hpp"
|
||||||
#include <android/asset_manager.h>
|
#include <android/asset_manager.h>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
#define GLM_FORCE_RADIANS
|
#define GLM_FORCE_RADIANS
|
||||||
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
|
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
|
||||||
|
|
@ -39,6 +40,7 @@ struct VulkanExample
|
||||||
uint32_t width;
|
uint32_t width;
|
||||||
uint32_t height;
|
uint32_t height;
|
||||||
struct saved_state state;
|
struct saved_state state;
|
||||||
|
float frameTimer;
|
||||||
|
|
||||||
// Vulkan
|
// Vulkan
|
||||||
VkInstance instance;
|
VkInstance instance;
|
||||||
|
|
@ -1159,10 +1161,12 @@ void android_main(struct android_app* state)
|
||||||
// Render frame
|
// Render frame
|
||||||
if (engine->prepared)
|
if (engine->prepared)
|
||||||
{
|
{
|
||||||
|
auto tStart = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
if (engine->animating)
|
if (engine->animating)
|
||||||
{
|
{
|
||||||
// Update rotation
|
// Update rotation
|
||||||
engine->state.rotation.y += 1.0f;
|
engine->state.rotation.y += engine->frameTimer * 0.1f;
|
||||||
if (engine->state.rotation.y > 360.0f)
|
if (engine->state.rotation.y > 360.0f)
|
||||||
{
|
{
|
||||||
engine->state.rotation.y -= 360.0f;
|
engine->state.rotation.y -= 360.0f;
|
||||||
|
|
@ -1171,6 +1175,12 @@ void android_main(struct android_app* state)
|
||||||
engine->updateUniformBuffers();
|
engine->updateUniformBuffers();
|
||||||
}
|
}
|
||||||
engine->draw();
|
engine->draw();
|
||||||
|
|
||||||
|
auto tEnd = std::chrono::high_resolution_clock::now();
|
||||||
|
auto tDiff = std::chrono::duration<double, std::milli>(tEnd - tStart).count();
|
||||||
|
|
||||||
|
engine->frameTimer = (float)tDiff;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue