HPC_Voxel_Engine 0.2.0
High-Performance C++ Voxel Engine
Loading...
Searching...
No Matches
Application.h
Go to the documentation of this file.
1
6#pragma once
7
8#include "backends/imgui_impl_glfw.h"
9#include "backends/imgui_impl_opengl3.h"
10#include "imgui.h"
11
12#include "InputHandler.h"
13// ********************************************************************
14struct GLFWwindow;
15struct RayHit;
16class ChunkManager;
17// ********************************************************************
18
26public:
31 Application(GLFWwindow* pWindow);
32 ~Application() = default;
33
39 void HandleUIToggle();
40
45 void BeginImGUIFrame();
46
50 void EndImGUIFrame();
51
55 void InitImGUI();
56
60 void ShutDownImGUI();
61
68 void RenderMetricsUI(App::InputHandler& inputHandler,
69 const ChunkManager& objChunkManager,
70 const RayHit& objRayHit);
71
75 void RenderHelpUI();
76
77 // ------------------------------------------------------------------------
78 // Public Application State & Configuration Variables
79 // ------------------------------------------------------------------------
80
81 float m_fFlySpeed = 200.0f;
82 float m_fAccumulator = 20.0f;
83
89
91 bool m_bShowHelpWindow = true;
92 bool m_bWireframeMode = false;
93 bool m_bHardwareCulling = true;
95 bool m_bFrustumCulling = true;
96 bool m_bFlyMode = false;
97 bool m_bEnableVsycn = false;
98 bool m_bEnableSIMD = true;
99
100private:
101 GLFWwindow* m_pWindow;
102};
Defines the InputHandler class for processing user input and player interaction.
Processes keyboard and mouse input, managing player movement, camera state, and world interaction.
Definition InputHandler.h:27
Manages the application lifecycle, configuration state, and UI integration (ImGui).
Definition Application.h:25
void HandleUIToggle()
Handles the UI toggle input (typically the Grave Accent / Tilde key).
Definition Application.cpp:249
~Application()=default
bool m_bWireframeMode
Definition Application.h:92
int m_iMainThreads
Definition Application.h:85
GLFWwindow * m_pWindow
Definition Application.h:101
int m_iPhysicsSteps
Definition Application.h:84
bool m_bShowHelpWindow
Definition Application.h:91
float m_fAccumulator
Definition Application.h:82
bool m_bEnableNeighborCulling
Definition Application.h:94
void BeginImGUIFrame()
Starts a new ImGui frame context.
Definition Application.cpp:43
int m_iThermalThreads
Definition Application.h:86
int m_iActiveThreads
Definition Application.h:87
bool m_bEnableVsycn
Definition Application.h:97
void InitImGUI()
Initializes the ImGui context and configures the GLFW/OpenGL3 backends.
Definition Application.cpp:19
bool m_bHardwareCulling
Definition Application.h:93
bool m_bFrustumCulling
Definition Application.h:95
float m_fFlySpeed
Definition Application.h:81
void EndImGUIFrame()
Ends the current ImGui frame and dispatches draw data to OpenGL.
Definition Application.cpp:244
bool m_bEnableSIMD
Definition Application.h:98
bool m_bShowMetricsPanel
Definition Application.h:90
void ShutDownImGUI()
Shuts down ImGui, releasing all allocated backend and context resources.
Definition Application.cpp:37
bool m_bFlyMode
Definition Application.h:96
void RenderHelpUI()
Renders the Help/Controls overlay window.
Definition Application.cpp:197
int m_iMaxRenderingThreads
Definition Application.h:88
void RenderMetricsUI(App::InputHandler &inputHandler, const ChunkManager &objChunkManager, const RayHit &objRayHit)
Renders the primary metrics and debugging UI panel.
Definition Application.cpp:49
Orchestrates infinite world generation, active chunk tracking, and multi-threaded data loading.
Definition ChunkManager.h:33
Encapsulates the result of a raycast query against the voxel world.
Definition PhysicsSystem.h:35