Lumenarium/src/foldhaus_debug_visuals.h

126 lines
5.1 KiB
C
Raw Normal View History

2020-01-02 02:41:43 +00:00
//
// File: foldhaus_debug_visuals.h
// Author: Peter Slattery
// Creation Date: 2020-01-01
//
#ifndef FOLDHAUS_DEBUG_VISUALS_H
2019-07-19 20:56:21 +00:00
internal void
2019-11-01 14:38:44 +00:00
DrawDebugInterface (render_command_buffer* RenderBuffer, r32 StartX, interface_config Interface, r32 WindowWidth, r32 WindowHeight, r32 DeltaTime, app_state* State, camera Camera, mouse_state Mouse, memory_arena* Transient)
2019-07-19 20:56:21 +00:00
{
DEBUG_TRACK_SCOPE(DrawDebugInterface);
v2 TopOfDebugView = v2{StartX, WindowHeight - (NewLineYOffset(*Interface.Font) + 5)};
2019-07-19 20:56:21 +00:00
v2 TopOfScreenLinePos = TopOfDebugView;
string DebugString = InitializeEmptyString(PushArray(Transient, char, 256), 256);
2019-07-19 20:56:21 +00:00
2019-11-11 20:02:24 +00:00
if (GlobalDebugServices->Interface.ShowCameraMouse)
2019-07-19 20:56:21 +00:00
{
PushRenderQuad2D(RenderBuffer,
v2{TopOfDebugView.x, TopOfDebugView.y - 500},
v2{TopOfDebugView.x + 700, TopOfDebugView.y},
v4{0, 0, 0, .8f});
}
r32 FramesPerSecond = 1.0f / DeltaTime;
2019-09-21 20:19:02 +00:00
PrintF(&DebugString, "Framerate: %.*f s %d fps | Modes: %d Memory Used: %d / %d | Commands: %d | HI SAM!!!! ",
2019-07-19 20:56:21 +00:00
5, DeltaTime,
2019-09-21 20:19:02 +00:00
(u32)FramesPerSecond,
2019-11-01 12:46:40 +00:00
State->Modes.ActiveModesCount,
State->Modes.Arena.TotalUsed,
State->Modes.Arena.TotalSize,
State->CommandQueue.Used);
DrawString(RenderBuffer, DebugString, Interface.Font, TopOfScreenLinePos, WhiteV4);
2019-07-19 20:56:21 +00:00
v2 ButtonDim = v2{200, (r32)NewLineYOffset(*Interface.Font) + 10};
2019-07-19 20:56:21 +00:00
TopOfScreenLinePos.y -= ButtonDim.y + 10;
v2 ButtonPos = TopOfScreenLinePos;
button_result CameraBtn = EvaluateButton(RenderBuffer, ButtonPos, ButtonPos + ButtonDim,
2019-10-30 14:28:02 +00:00
MakeStringLiteral("Camera"), Interface, Mouse);
2019-07-19 20:56:21 +00:00
ButtonPos.x += ButtonDim.x + 10;
button_result ScopeTimeBtn = EvaluateButton(RenderBuffer, ButtonPos, ButtonPos + ButtonDim,
2019-10-30 14:28:02 +00:00
MakeStringLiteral("Scope Time"), Interface, Mouse);
2019-07-19 20:56:21 +00:00
ButtonPos.x += ButtonDim.x + 10;
button_result RenderSculptureBtn = EvaluateButton(RenderBuffer, ButtonPos, ButtonPos + ButtonDim,
2019-10-30 14:28:02 +00:00
MakeStringLiteral("Visualize"), Interface, Mouse);
2019-07-19 20:56:21 +00:00
ButtonPos.x += ButtonDim.x + 10;
string SACNButtonString;
if (GlobalDebugServices->Interface.SendSACNData)
{
SACNButtonString = MakeStringLiteral("Turn SACN Off");
}
else
{
SACNButtonString = MakeStringLiteral("Turn SACN On");
}
button_result SendSACNDataBtn = EvaluateButton(RenderBuffer, ButtonPos, ButtonPos + ButtonDim,
2019-10-30 14:28:02 +00:00
SACNButtonString, Interface, Mouse);
2019-07-19 20:56:21 +00:00
TopOfScreenLinePos.y -= NewLineYOffset(*Interface.Font) + 10;
2019-07-19 20:56:21 +00:00
if (CameraBtn.Pressed)
{
GlobalDebugServices->Interface.ShowCameraMouse = !GlobalDebugServices->Interface.ShowCameraMouse;
}
if (ScopeTimeBtn.Pressed)
{
GlobalDebugServices->Interface.ShowTrackedScopes = !GlobalDebugServices->Interface.ShowTrackedScopes;
}
if (RenderSculptureBtn.Pressed)
{
GlobalDebugServices->Interface.RenderSculpture =
!GlobalDebugServices->Interface.RenderSculpture;
}
if (SendSACNDataBtn.Pressed)
{
GlobalDebugServices->Interface.SendSACNData = !GlobalDebugServices->Interface.SendSACNData;
}
if (GlobalDebugServices->Interface.ShowCameraMouse)
{
PrintF(&DebugString, "Camera x=%.*f y=%.*f z=%.*f LookAt x=%.*f y=%.*f z=%.*f",
3, Camera.Position.x,
3, Camera.Position.y,
3, Camera.Position.z,
3, Camera.LookAt.x,
3, Camera.LookAt.y,
3, Camera.LookAt.z);
DrawString(RenderBuffer, DebugString, Interface.Font, TopOfScreenLinePos, v4{1.0f, 1.0f, 1.0f, 1.0f});
TopOfScreenLinePos.y -= NewLineYOffset(*Interface.Font);
2019-10-30 14:28:02 +00:00
2019-11-11 20:02:24 +00:00
b32 LeftButtonIsDown = (Mouse.LeftButtonState & KeyState_IsDown) > 0;
b32 LeftButtonWasDown = (Mouse.LeftButtonState & KeyState_WasDown) > 0;
2019-10-30 14:28:02 +00:00
s32 MousePrecision = 0;
2019-11-11 20:02:24 +00:00
PrintF(&DebugString, "Mouse Pos: (%.*f, %.*f) Down: (%.*f, %.*f) State: %s %s",
2019-10-30 14:28:02 +00:00
MousePrecision, Mouse.Pos.x,
MousePrecision, Mouse.Pos.y,
MousePrecision, Mouse.DownPos.x,
2019-11-11 20:02:24 +00:00
MousePrecision, Mouse.DownPos.y,
(LeftButtonIsDown ? "Is Down" : "Is Not Down"),
(LeftButtonWasDown ? "Was Down" : "Was Not Down"));
DrawString(RenderBuffer, DebugString, Interface.Font,
2019-10-30 14:28:02 +00:00
TopOfScreenLinePos, WhiteV4);
TopOfScreenLinePos.y -= NewLineYOffset(*Interface.Font);
2019-11-11 20:02:24 +00:00
PrintF(&DebugString, "Render Buffer: %d / %d (at this point)",
RenderBuffer->CommandMemoryUsed,
RenderBuffer->CommandMemorySize);
DrawString(RenderBuffer, DebugString, Interface.Font,
TopOfScreenLinePos, WhiteV4);
TopOfScreenLinePos.y -= NewLineYOffset(*Interface.Font);
2019-07-19 20:56:21 +00:00
}
}
2020-01-02 02:41:43 +00:00
#define FOLDHAUS_DEBUG_VISUALS_H
#endif // FOLDHAUS_DEBUG_VISUALS_H