A 3D game engine from scratch.
at main 30 lines 757 B view raw
1// (c) 2020 Vlad-Stefan Harbuz <vlad@vladh.net> 2 3#pragma once 4 5#include <chrono> 6namespace chrono = std::chrono; 7#include "constants.hpp" 8#include "types.hpp" 9 10chrono::steady_clock::time_point debug_start_timer(); 11f64 debug_end_timer(chrono::steady_clock::time_point t0); 12 13#if USE_TIMERS 14#define START_TIMER(name) \ 15 auto debug_timerstart_##name = debug_start_timer(); 16 17#define END_TIMER_MIN(name, min_duration_ms) \ 18{ \ 19 f64 duration = debug_end_timer(debug_timerstart_##name); \ 20 if (duration >= min_duration_ms) { \ 21 logs::info("Timer %s took %0.fms", #name, duration); \ 22 } \ 23} 24 25#define END_TIMER(name) END_TIMER_MIN(name, 0) 26#else 27#define START_TIMER(name) 28#define END_TIMER_MIN(name, min_duration_ms) 29#define END_TIMER(name) 30#endif