2 #define _GPU_TIMERS_H 1
10 extern bool enable_timing;
15 std::pair<GLuint, GLuint> begin_timer(const std::string &name, int level);
21 std::pair<GLuint, GLuint> query;
23 std::vector<Timer> timers;
26 // A simple RAII class for timing until the end of the scope.
29 ScopedTimer(const std::string &name, GPUTimers *timers)
30 : timers(timers), level(0)
32 query = timers->begin_timer(name, level);
35 ScopedTimer(const std::string &name, ScopedTimer *parent_timer)
36 : timers(parent_timer->timers),
37 level(parent_timer->level + 1)
39 query = timers->begin_timer(name, level);
49 if (enable_timing && !ended) {
50 glQueryCounter(query.second, GL_TIMESTAMP);
58 std::pair<GLuint, GLuint> query;
62 #endif // !defined(_GPU_TIMERS_H)