2
0

BsGLEventQuery.cpp 616 B

1234567891011121314151617181920212223242526272829303132
  1. #include "BsGLEventQuery.h"
  2. #include "BsRenderStats.h"
  3. namespace BansheeEngine
  4. {
  5. GLEventQuery::GLEventQuery()
  6. :mQueryObj(0)
  7. {
  8. glGenQueries(1, &mQueryObj);
  9. BS_INC_RENDER_STAT_CAT(ResCreated, RenderStatObject_Query);
  10. }
  11. GLEventQuery::~GLEventQuery()
  12. {
  13. glDeleteQueries(1, &mQueryObj);
  14. BS_INC_RENDER_STAT_CAT(ResDestroyed, RenderStatObject_Query);
  15. }
  16. void GLEventQuery::begin()
  17. {
  18. glQueryCounter(mQueryObj, GL_TIMESTAMP);
  19. setActive(true);
  20. }
  21. bool GLEventQuery::isReady() const
  22. {
  23. GLint done = 0;
  24. glGetQueryObjectiv(mQueryObj, GL_QUERY_RESULT_AVAILABLE, &done);
  25. return done == GL_TRUE;
  26. }
  27. }