9#ifndef AVARA3D_PROFILING_OPENGLDRAWTIMER_H
10#define AVARA3D_PROFILING_OPENGLDRAWTIMER_H
16#include "a3d/render/backend/opengl/GLTypes.h"
25 explicit OGLDrawTimer(
unsigned bufferedFrames);
27 OGLDrawTimer(
const OGLDrawTimer&) =
delete;
28 OGLDrawTimer& operator=(
const OGLDrawTimer&) =
delete;
30 OGLDrawTimer(OGLDrawTimer&& other) =
delete;
31 OGLDrawTimer& operator=(OGLDrawTimer&& other) =
delete;
39 std::chrono::nanoseconds end();
47 WebDisjointTimerQuery,
48 WebDisjointTimerQueryExt
53 bool resolveQuery(
size_t index);
54 void resolveIssuedQueries(
size_t skipIndex);
59 gl::enum_t _queryTarget;
61 std::vector<unsigned> _glQueries;
63 std::chrono::nanoseconds _lastTime;
64 std::vector<uint8_t> _issued;
66 bool _initialized =
false;