CmGLEventQuery.cpp 652 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "CmGLEventQuery.h"
  2. namespace CamelotFramework
  3. {
  4. GLEventQuery::GLEventQuery()
  5. :mQueryObj(0), mInitialized(false)
  6. {
  7. }
  8. GLEventQuery::~GLEventQuery()
  9. {
  10. if(mInitialized)
  11. {
  12. GLuint queries[1];
  13. queries[0] = mQueryObj;
  14. glDeleteQueries(1, queries);
  15. }
  16. }
  17. void GLEventQuery::begin()
  18. {
  19. GLuint queries[1];
  20. queries[0] = mQueryObj;
  21. glGenQueries(1, queries);
  22. glQueryCounter(mQueryObj, GL_TIMESTAMP);
  23. mInitialized = true;
  24. }
  25. bool GLEventQuery::isReady() const
  26. {
  27. GLint done = 0;
  28. glGetQueryObjectiv(mQueryObj, GL_QUERY_RESULT_AVAILABLE, &done);
  29. return done == GL_TRUE;
  30. }
  31. }