mirror of
https://github.com/gwm17/Specter.git
synced 2024-11-22 18:28:52 -05:00
Added in frame timestep, should be used in some way with scalers to generate rates
This commit is contained in:
parent
e1b56dd1c3
commit
ad98d7dc49
|
@ -39,7 +39,7 @@ namespace Navigator {
|
|||
|
||||
void SPSInputLayer::OnDetach() {}
|
||||
|
||||
void SPSInputLayer::OnUpdate() {}
|
||||
void SPSInputLayer::OnUpdate(Timestep& step) {}
|
||||
|
||||
void SPSInputLayer::OnEvent(Event& event) {}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace Navigator {
|
|||
|
||||
virtual void OnAttach() override;
|
||||
virtual void OnDetach() override;
|
||||
virtual void OnUpdate() override;
|
||||
virtual void OnUpdate(Timestep& step) override;
|
||||
virtual void OnEvent(Event& event) override; //If you want to respond to events
|
||||
virtual void OnImGuiRender() override; //"Main" function
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "Application.h"
|
||||
#include "Navigator/Renderer/RenderCommand.h"
|
||||
#include "Navigator/Editor/EditorLayer.h"
|
||||
#include "Timestep.h"
|
||||
|
||||
namespace Navigator {
|
||||
|
||||
|
@ -77,13 +78,22 @@ namespace Navigator {
|
|||
void Application::Run()
|
||||
{
|
||||
NAV_PROFILE_FUNCTION();
|
||||
|
||||
float lastFrameTime = 0;
|
||||
float time;
|
||||
Timestep step;
|
||||
|
||||
while(m_runFlag)
|
||||
{
|
||||
RenderCommand::SetClearColor(m_bckgnd_color);
|
||||
RenderCommand::Clear();
|
||||
|
||||
time = RenderCommand::GetFrameTime();
|
||||
step.SetTime(time - lastFrameTime);
|
||||
lastFrameTime = time;
|
||||
|
||||
for(auto layer : m_stack)
|
||||
layer->OnUpdate();
|
||||
layer->OnUpdate(step);
|
||||
|
||||
m_imgui_layer->Begin();
|
||||
for(auto layer : m_stack)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include "NavCore.h"
|
||||
#include "Navigator/Events/Event.h"
|
||||
#include "Timestep.h"
|
||||
|
||||
namespace Navigator {
|
||||
|
||||
|
@ -21,7 +22,7 @@ namespace Navigator {
|
|||
virtual void OnAttach() {}
|
||||
virtual void OnDetach() {}
|
||||
virtual void OnImGuiRender() {}
|
||||
virtual void OnUpdate() {}
|
||||
virtual void OnUpdate(Timestep& step) {}
|
||||
virtual void OnEvent(Event& event) {}
|
||||
|
||||
inline const std::string& GetName() { return m_name; }
|
||||
|
|
25
Navigator/src/Navigator/Core/Timestep.h
Normal file
25
Navigator/src/Navigator/Core/Timestep.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
#ifndef TIMESTEP_H
|
||||
#define TIMESTEP_H
|
||||
|
||||
namespace Navigator {
|
||||
|
||||
class Timestep
|
||||
{
|
||||
public:
|
||||
Timestep(float time=0.0f) :
|
||||
m_time(time)
|
||||
{
|
||||
}
|
||||
|
||||
void SetTime(float time) { m_time = time; }
|
||||
|
||||
operator float() { return m_time; }
|
||||
|
||||
float GetElapsedSeconds() const { return m_time; }
|
||||
float GetElapsedMilliseconds() const { return m_time * 1000.0f; }
|
||||
private:
|
||||
float m_time;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
|
@ -38,7 +38,7 @@ namespace Navigator {
|
|||
{
|
||||
}
|
||||
|
||||
void EditorLayer::OnUpdate()
|
||||
void EditorLayer::OnUpdate(Timestep& step)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace Navigator {
|
|||
virtual void OnAttach() override;
|
||||
virtual void OnDetach() override;
|
||||
virtual void OnImGuiRender() override;
|
||||
virtual void OnUpdate() override;
|
||||
virtual void OnUpdate(Timestep& step) override;
|
||||
virtual void OnEvent(Event& event) override;
|
||||
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ namespace Navigator {
|
|||
m_physStack.PushStage(stage);
|
||||
}
|
||||
|
||||
void PhysicsLayer::OnUpdate() {}
|
||||
void PhysicsLayer::OnUpdate(Timestep& step) {}
|
||||
|
||||
/*Threaded functions*/
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace Navigator {
|
|||
virtual ~PhysicsLayer();
|
||||
|
||||
virtual void OnAttach() override;
|
||||
virtual void OnUpdate() override;
|
||||
virtual void OnUpdate(Timestep& step) override;
|
||||
virtual void OnDetach() override;
|
||||
virtual void OnImGuiRender() override {};
|
||||
virtual void OnEvent(Event& event) override;
|
||||
|
|
|
@ -18,6 +18,7 @@ namespace Navigator {
|
|||
public:
|
||||
inline static void SetClearColor(const glm::vec4& color_array) { s_api->SetClearColor(color_array); }
|
||||
inline static void Clear() { s_api->Clear(); }
|
||||
inline static float GetFrameTime() { return s_api->GetFrameTime(); }
|
||||
|
||||
private:
|
||||
static RendererAPI* s_api;
|
||||
|
|
|
@ -24,6 +24,7 @@ namespace Navigator {
|
|||
|
||||
virtual void Clear() = 0;
|
||||
virtual void SetClearColor(const glm::vec4& color) = 0;
|
||||
virtual float GetFrameTime() = 0;
|
||||
|
||||
inline static API GetAPI() { return s_api; }
|
||||
|
||||
|
|
|
@ -314,7 +314,7 @@ namespace Navigator {
|
|||
}
|
||||
|
||||
//Tell to write, then poll actions
|
||||
void TestServerLayer::OnUpdate()
|
||||
void TestServerLayer::OnUpdate(Timestep& step)
|
||||
{
|
||||
m_connection->Start();
|
||||
m_context.poll();
|
||||
|
|
|
@ -66,7 +66,7 @@ namespace Navigator {
|
|||
|
||||
virtual void OnAttach() override;
|
||||
virtual void OnDetach() override;
|
||||
virtual void OnUpdate() override;
|
||||
virtual void OnUpdate(Timestep& step) override;
|
||||
|
||||
private:
|
||||
asio::io_context m_context;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "OpenGLRendererAPI.h"
|
||||
|
||||
#include "glad/glad.h"
|
||||
#include "GLFW/glfw3.h"
|
||||
|
||||
namespace Navigator {
|
||||
|
||||
|
@ -20,4 +21,9 @@ namespace Navigator {
|
|||
{
|
||||
glClearColor(color_array[0], color_array[1], color_array[2], color_array[3]);
|
||||
}
|
||||
|
||||
float OpenGLRendererAPI::GetFrameTime()
|
||||
{
|
||||
return (float)glfwGetTime();
|
||||
}
|
||||
}
|
|
@ -18,6 +18,7 @@ namespace Navigator {
|
|||
public:
|
||||
virtual void Clear() override;
|
||||
virtual void SetClearColor(const glm::vec4& color_array) override;
|
||||
virtual float GetFrameTime() override;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user