module; #include #include #include #include #include #include #include #include #include #include #include #include #include #include "glad/glad.h" #include #include export module eu07.gl.query; import eu07.gl.object; export { namespace gl { class query : public object { public: enum targets { SAMPLES_PASSED = 0, ANY_SAMPLES_PASSED, ANY_SAMPLES_PASSED_CONSERVATIVE, PRIMITIVES_GENERATED, TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, TIME_ELAPSED }; private: targets target; thread_local static query* active_queries[6]; protected: GLenum glenum_target(targets target); public: query(targets target); ~query(); void begin(); void end(); std::optional result(); }; } } // export