BsD3D11OcclusionQuery.h 856 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include "BsD3D11Prerequisites.h"
  3. #include "BsOcclusionQuery.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @copydoc OcclusionQuery
  8. */
  9. class BS_D3D11_EXPORT D3D11OcclusionQuery : public OcclusionQuery
  10. {
  11. public:
  12. D3D11OcclusionQuery(bool binary);
  13. ~D3D11OcclusionQuery();
  14. /**
  15. * @copydoc OcclusionQuery::begin
  16. */
  17. virtual void begin();
  18. /**
  19. * @copydoc OcclusionQuery::end
  20. */
  21. virtual void end();
  22. /**
  23. * @copydoc OcclusionQuery::isReady
  24. */
  25. virtual bool isReady() const;
  26. /**
  27. * @copydoc OcclusionQuery::getNumFragments
  28. */
  29. virtual UINT32 getNumSamples();
  30. private:
  31. friend class QueryManager;
  32. /**
  33. * @brief Resolves query results after it is ready.
  34. */
  35. void finalize();
  36. ID3D11Query* mQuery;
  37. ID3D11DeviceContext* mContext;
  38. bool mFinalized;
  39. bool mQueryEndCalled;
  40. UINT32 mNumSamples;
  41. };
  42. }