BsD3D11TimerQuery.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsD3D11Prerequisites.h"
  5. #include "BsTimerQuery.h"
  6. namespace BansheeEngine
  7. {
  8. /** @addtogroup D3D11
  9. * @{
  10. */
  11. /** @copydoc TimerQuery */
  12. class BS_D3D11_EXPORT D3D11TimerQuery : public TimerQuery
  13. {
  14. public:
  15. D3D11TimerQuery();
  16. ~D3D11TimerQuery();
  17. /** @copydoc TimerQuery::begin */
  18. void begin() override;
  19. /** @copydoc TimerQuery::end */
  20. void end() override;
  21. /** @copydoc TimerQuery::isReady */
  22. bool isReady() const override;
  23. /** @copydoc TimerQuery::getTimeMs */
  24. float getTimeMs() override;
  25. private:
  26. /** Resolve timing information after the query has finished. */
  27. void finalize();
  28. bool mFinalized;
  29. bool mQueryEndCalled;
  30. float mTimeDelta;
  31. ID3D11Query* mBeginQuery;
  32. ID3D11Query* mEndQuery;
  33. ID3D11Query* mDisjointQuery;
  34. ID3D11DeviceContext* mContext;
  35. };
  36. /** @} */
  37. }