BsD3D11TimerQuery.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #pragma once
  5. #include "BsD3D11Prerequisites.h"
  6. #include "BsTimerQuery.h"
  7. namespace BansheeEngine
  8. {
  9. /**
  10. * @copydoc TimerQuery
  11. */
  12. class BS_D3D11_EXPORT D3D11TimerQuery : public TimerQuery
  13. {
  14. public:
  15. D3D11TimerQuery();
  16. ~D3D11TimerQuery();
  17. /**
  18. * @copydoc TimerQuery::begin
  19. */
  20. virtual void begin();
  21. /**
  22. * @copydoc TimerQuery::end
  23. */
  24. virtual void end();
  25. /**
  26. * @copydoc TimerQuery::isReady
  27. */
  28. virtual bool isReady() const;
  29. /**
  30. * @copydoc TimerQuery::getTimeMs
  31. */
  32. virtual float getTimeMs();
  33. private:
  34. /**
  35. * @brief Resolve timing information after the query has finished.
  36. */
  37. void finalize();
  38. bool mFinalized;
  39. bool mQueryEndCalled;
  40. float mTimeDelta;
  41. ID3D11Query* mBeginQuery;
  42. ID3D11Query* mEndQuery;
  43. ID3D11Query* mDisjointQuery;
  44. ID3D11DeviceContext* mContext;
  45. };
  46. }