BsGLEventQuery.cpp 967 B

1234567891011121314151617181920212223242526272829303132333435
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #include "BsGLEventQuery.h"
  5. #include "BsRenderStats.h"
  6. namespace BansheeEngine
  7. {
  8. GLEventQuery::GLEventQuery()
  9. :mQueryObj(0)
  10. {
  11. glGenQueries(1, &mQueryObj);
  12. BS_INC_RENDER_STAT_CAT(ResCreated, RenderStatObject_Query);
  13. }
  14. GLEventQuery::~GLEventQuery()
  15. {
  16. glDeleteQueries(1, &mQueryObj);
  17. BS_INC_RENDER_STAT_CAT(ResDestroyed, RenderStatObject_Query);
  18. }
  19. void GLEventQuery::begin()
  20. {
  21. glQueryCounter(mQueryObj, GL_TIMESTAMP);
  22. setActive(true);
  23. }
  24. bool GLEventQuery::isReady() const
  25. {
  26. GLint done = 0;
  27. glGetQueryObjectiv(mQueryObj, GL_QUERY_RESULT_AVAILABLE, &done);
  28. return done == GL_TRUE;
  29. }
  30. }