Elaztek Developer Hub
Blamite Game Engine - blam!  00423.10.27.24.0533.blamite
The core library for the Blamite Game Engine.
tick.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cstdint>
4 #include <Windows.h>
5 
6 #ifndef BLAM
7 #define BLAM
8 #endif
9 
13 namespace Blam::Tick
14 {
18  BLAM void PrepareTick();
19 
25  BLAM void TickThread();
26 
33 
41 
49 
57 
63  BLAM int MaxTicksPerSecond();
64 
68  BLAM void ResumeTickLoop();
69 
76  BLAM void PauseTickLoop();
77 
83  BLAM void EndTickLoop();
84 
92  BLAM bool HasTickStopped();
93 
99  BLAM bool IsTickLoopRunning();
100 
106  BLAM void SetCurrentTickRate(int tickrate);
107 
114 }
tickrate_history
std::deque< int > tickrate_history
Definition: tick.cpp:32
Blam::Input::GetMousePositionNormalized
BLAM BlamVector2 GetMousePositionNormalized()
Definition: mouse.cpp:88
BLAM
#define BLAM
Definition: tick.h:7
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:130
Blam::Input::GetMousePosition
BLAM BlamVector2 GetMousePosition()
Definition: mouse.cpp:82
logger.h
check_elapsed_time
float check_elapsed_time()
Definition: tick.cpp:100
Blam::Input::FireMouseMove
BLAM void FireMouseMove(int x, int y)
Fires a MouseMoveEvent.
Definition: mouse.cpp:28
keyboard.h
ImGuiIO::MousePos
ImVec2 MousePos
Definition: imgui.h:1409
imgui.h
Blam::Tick::TickThread
BLAM void TickThread()
Function containing the tick loop.
Definition: tick.cpp:120
uint8_t
unsigned char uint8_t
Definition: stdint.h:15
run_tick_loop
volatile bool run_tick_loop
Whether or not to continue running the game tick loop.
Definition: tick.cpp:28
Blam::Tick::ResumeTickLoop
BLAM void ResumeTickLoop()
Resumes the tick loop if it has been paused.
Definition: tick.cpp:183
ImGuiIO
Definition: imgui.h:1338
Blam::Tick::MaxTicksPerSecond
BLAM int MaxTicksPerSecond()
Retrieves the maximum number of ticks per second.
Definition: tick.cpp:208
rendering.h
ImVec2::x
float x
Definition: imgui.h:181
Blam::Tick::SetCurrentTickRate
BLAM void SetCurrentTickRate(int tickrate)
Stops the game tick, updates the tick rate, and re-starts the game tick.
Definition: tick.cpp:213
Blam::Input::IsMouseButtonDown
BLAM bool IsMouseButtonDown(uint8_t button)
Checks if a given mouse button is down.
Definition: mouse.cpp:69
Blam::Input::SetMouseButtonState
BLAM void SetMouseButtonState(uint8_t button, bool down)
Sets the mouse down state for a given mouse button.
Definition: mouse.cpp:34
Blam::Tick::GetCurrentTickRate1M
BLAM int GetCurrentTickRate1M()
Retrieves the average tick rate over the last minute.
Definition: tick.cpp:52
uint64_t
unsigned long long uint64_t
Definition: stdint.h:18
Blam::Tick::PrepareTick
BLAM void PrepareTick()
Prepares required data for the tick loop.
Definition: tick.cpp:34
tick.h
Blam::Input::FireMouseUnclick
BLAM void FireMouseUnclick(uint8_t button)
Fires a MouseUnclickEvent.
Definition: mouse.cpp:22
has_tick_stopped
volatile bool has_tick_stopped
Whether or not the game tick loop has terminated.
Definition: tick.cpp:30
Blam::Tick::GetCurrentTickRate10S
BLAM int GetCurrentTickRate10S()
Retrieves the average tick rate over the last 10 seconds.
Definition: tick.cpp:84
Blam::Tick::GetTotalRuntimeTicks
BLAM uint64_t GetTotalRuntimeTicks()
Gets the total amount of ticks that have elapsed during program runtime.
Definition: tick.cpp:233
clock_frequency
LARGE_INTEGER clock_frequency
The frequency of the CPU clock. Used in calculations for tick rate.
Definition: tick.cpp:24
y
font DisplayOffset y
Definition: README.txt:68
total_runtime_ticks
uint64_t total_runtime_ticks
Number of game ticks that have been run during entire program execution.
Definition: tick.cpp:21
ImGui::GetIO
IMGUI_API ImGuiIO & GetIO()
Definition: imgui.cpp:3300
Blam::Tick
Namespace containing components relating to the game tick.
Definition: tick.h:13
do_tick
void do_tick()
Fires a #Blam::Events::TickEvent event to inform all listeners to update based on the game tick.
Definition: tick.cpp:112
seconds_per_tick
float seconds_per_tick
The number of seconds within a single tick. Usually much less than 1 second.
Definition: tick.cpp:25
Blam::Tick::IsTickLoopRunning
BLAM bool IsTickLoopRunning()
Determines whether or not the tick loop is currently running - NOT whether it is paused.
Definition: tick.cpp:203
Blam::Rendering::GetRenderHeight
BLAM int GetRenderHeight()
Retrieves the current height of the OGRE viewport.
Definition: ogre.cpp:532
Blam::Tick::EndTickLoop
BLAM void EndTickLoop()
Terminates the tick loop.
Definition: tick.cpp:193
pause_tick
volatile bool pause_tick
Whether or not to temporarily pause the game tick.
Definition: tick.cpp:29
crash.h
Blam::Input::FireMouseClick
BLAM void FireMouseClick(uint8_t button)
Fires a MouseClickEvent.
Definition: mouse.cpp:16
Blam::Tick::HasTickStopped
BLAM bool HasTickStopped()
Determines whether or not the tick loop has finished terminating.
Definition: tick.cpp:198
max_tickrate
int max_tickrate
Maximum number of times doTick() should be run per second.
Definition: tick.cpp:19
ImVec2::y
float y
Definition: imgui.h:181
total_elapsed_time
float total_elapsed_time
The total amount of time elapsed this second. Used to determine how many ticks have run this second.
Definition: tick.cpp:26
Blam::Tick::GetCurrentTickRate
BLAM int GetCurrentTickRate()
Retrieves the current tick rate.
Definition: tick.cpp:47
x
config GlyphExtraSpacing x
Definition: README.txt:30
Blam::Tick::GetCurrentTickRate5M
BLAM int GetCurrentTickRate5M()
Retrieves the average tick rate over the last 5 minutes.
Definition: tick.cpp:68
lock_mouse_button_state
bool lock_mouse_button_state
Definition: mouse.cpp:14
Blam::Tick::PauseTickLoop
BLAM void PauseTickLoop()
Temporarily pauses the tick loop.
Definition: tick.cpp:188
ticks_this_second
int ticks_this_second
Number of game ticks that have been run this second.
Definition: tick.cpp:20
active_mouse_buttons
std::vector< uint8_t > active_mouse_buttons
Definition: mouse.cpp:13
last_second_time
LARGE_INTEGER last_second_time
Timestamp of previous second/tick counter reset.
Definition: tick.cpp:23
Blam::Rendering::GetRenderWidth
BLAM int GetRenderWidth()
Retrieves the current width of the OGRE viewport.
Definition: ogre.cpp:527