Fixed the weird stutter and added fps in title bar
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <Core/Common/CoreTypes.h>
|
#include <Core/Common/CoreTypes.h>
|
||||||
#include <Core/Common/NonNullPtr.h>
|
#include <Core/Common/NonNullPtr.h>
|
||||||
|
#include <Core/Common/String.h>
|
||||||
#include <Juliet.h>
|
#include <Juliet.h>
|
||||||
|
|
||||||
namespace Juliet
|
namespace Juliet
|
||||||
@@ -16,4 +17,5 @@ namespace Juliet
|
|||||||
extern JULIET_API void HideWindow(NonNullPtr<Window> window);
|
extern JULIET_API void HideWindow(NonNullPtr<Window> window);
|
||||||
|
|
||||||
extern JULIET_API WindowID GetWindowID(NonNullPtr<Window> window);
|
extern JULIET_API WindowID GetWindowID(NonNullPtr<Window> window);
|
||||||
|
extern JULIET_API void SetWindowTitle(NonNullPtr<Window> window, String title);
|
||||||
} // namespace Juliet
|
} // namespace Juliet
|
||||||
|
|||||||
@@ -149,6 +149,11 @@ namespace Juliet
|
|||||||
return window->ID;
|
return window->ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetWindowTitle(NonNullPtr<Window> window, String title)
|
||||||
|
{
|
||||||
|
g_CurrentDisplayDevice->SetWindowTitle(g_CurrentDisplayDevice, window, title);
|
||||||
|
}
|
||||||
|
|
||||||
// Display Device Utils. Not exposed in the API
|
// Display Device Utils. Not exposed in the API
|
||||||
DisplayDevice* GetDisplayDevice()
|
DisplayDevice* GetDisplayDevice()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ namespace Juliet
|
|||||||
void (*DestroyPlatformWindow)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
void (*DestroyPlatformWindow)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
||||||
void (*ShowWindow)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
void (*ShowWindow)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
||||||
void (*HideWindow)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
void (*HideWindow)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
||||||
|
void (*SetWindowTitle)(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window, String title);
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
void (*PumpEvents)(NonNullPtr<DisplayDevice> self);
|
void (*PumpEvents)(NonNullPtr<DisplayDevice> self);
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ namespace Juliet::Win32
|
|||||||
device->DestroyPlatformWindow = DestroyPlatformWindow;
|
device->DestroyPlatformWindow = DestroyPlatformWindow;
|
||||||
device->ShowWindow = ShowWindow;
|
device->ShowWindow = ShowWindow;
|
||||||
device->HideWindow = HideWindow;
|
device->HideWindow = HideWindow;
|
||||||
|
device->SetWindowTitle = SetWindowTitle;
|
||||||
|
|
||||||
device->PumpEvents = PumpEvents;
|
device->PumpEvents = PumpEvents;
|
||||||
|
|
||||||
|
|||||||
@@ -92,4 +92,13 @@ namespace Juliet::Win32
|
|||||||
auto& win32State = static_cast<Window32State&>(*window->State);
|
auto& win32State = static_cast<Window32State&>(*window->State);
|
||||||
::ShowWindow(win32State.Handle, SW_HIDE);
|
::ShowWindow(win32State.Handle, SW_HIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetWindowTitle(NonNullPtr<DisplayDevice> /*self*/, NonNullPtr<Window> window, String title)
|
||||||
|
{
|
||||||
|
Assert(window);
|
||||||
|
Assert(window->State);
|
||||||
|
|
||||||
|
auto& win32State = static_cast<Window32State&>(*window->State);
|
||||||
|
SetWindowTextA(win32State.Handle, CStr(title));
|
||||||
|
}
|
||||||
} // namespace Juliet::Win32
|
} // namespace Juliet::Win32
|
||||||
|
|||||||
@@ -25,4 +25,5 @@ namespace Juliet::Win32
|
|||||||
extern void DestroyPlatformWindow(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
extern void DestroyPlatformWindow(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
||||||
extern void ShowWindow(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
extern void ShowWindow(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
||||||
extern void HideWindow(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
extern void HideWindow(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window);
|
||||||
|
extern void SetWindowTitle(NonNullPtr<DisplayDevice> self, NonNullPtr<Window> window, String title);
|
||||||
} // namespace Juliet::Win32
|
} // namespace Juliet::Win32
|
||||||
|
|||||||
@@ -209,6 +209,22 @@ void JulietApplication::Update()
|
|||||||
lastTime = currentTime;
|
lastTime = currentTime;
|
||||||
|
|
||||||
CameraTime += deltaTime;
|
CameraTime += deltaTime;
|
||||||
|
|
||||||
|
static float fpsTimer = 0.0f;
|
||||||
|
static int fpsFrames = 0;
|
||||||
|
fpsTimer += deltaTime;
|
||||||
|
fpsFrames++;
|
||||||
|
if (fpsTimer >= 0.5f)
|
||||||
|
{
|
||||||
|
float fps = static_cast<float>(fpsFrames) / fpsTimer;
|
||||||
|
float ms = (fpsTimer / static_cast<float>(fpsFrames)) * 1000.0f;
|
||||||
|
char title[64];
|
||||||
|
snprintf(title, sizeof(title), "Juliet | %.1f FPS | %.2f ms", static_cast<double>(fps), static_cast<double>(ms));
|
||||||
|
SetWindowTitle(MainWindow, WrapString(title));
|
||||||
|
fpsTimer = 0.0f;
|
||||||
|
fpsFrames = 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool reloadShaders = false;
|
bool reloadShaders = false;
|
||||||
static bool reloadShadersDebounce = false;
|
static bool reloadShadersDebounce = false;
|
||||||
|
|
||||||
@@ -339,8 +355,8 @@ Camera JulietApplication::GetDebugCamera()
|
|||||||
|
|
||||||
float radius = baseRadius;
|
float radius = baseRadius;
|
||||||
//* Uncomment for active zoom
|
//* Uncomment for active zoom
|
||||||
float zoomAmplitude = 10.0f; // Oscillate between 1.5m and 3.5m away
|
float zoomAmplitude = 15.0f;
|
||||||
float zoomSpeed = 0.8f;
|
float zoomSpeed = 0.5f;
|
||||||
radius = baseRadius + (sinf(time * zoomSpeed) * zoomAmplitude);
|
radius = baseRadius + (sinf(time * zoomSpeed) * zoomAmplitude);
|
||||||
//*/
|
//*/
|
||||||
float zHeight = radius * 0.5f; // Keep a nice downward viewing angle
|
float zHeight = radius * 0.5f; // Keep a nice downward viewing angle
|
||||||
|
|||||||
Reference in New Issue
Block a user