CmGLEventQuery.cpp 590 B

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