CmD3D11Device.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "CmD3D11Prerequisites.h"
  3. namespace CamelotFramework
  4. {
  5. class CM_D3D11_EXPORT D3D11Device
  6. {
  7. public:
  8. D3D11Device(ID3D11Device* device);
  9. ~D3D11Device();
  10. void shutdown();
  11. ID3D11DeviceContext* getImmediateContext() const { return mImmediateContext; }
  12. ID3D11ClassLinkage* getClassLinkage() const { return mClassLinkage; }
  13. ID3D11Device* getD3D11Device() const { return mD3D11Device; }
  14. /**
  15. * @brief Resets error state & error messages.
  16. */
  17. void clearErrors();
  18. /**
  19. * @brief Query if error occurred at any point since class "clearError" call.
  20. * Use getErrorDescription to get a string describing the error.
  21. */
  22. bool hasError() const;
  23. /**
  24. * @brief Returns a string describing an error, if one occurred.
  25. */
  26. String getErrorDescription(bool clearErrors = true);
  27. enum CM_D3D11_ERROR_LEVEL
  28. {
  29. D3D11ERR_NO_EXCEPTION,
  30. D3D11ERR_CORRUPTION,
  31. D3D11ERR_ERROR,
  32. D3D11ERR_WARNING,
  33. D3D11ERR_INFO
  34. };
  35. void setExceptionsErrorLevel(const CM_D3D11_ERROR_LEVEL exceptionsErrorLevel);
  36. private:
  37. ID3D11Device* mD3D11Device;
  38. ID3D11DeviceContext* mImmediateContext;
  39. ID3D11InfoQueue* mInfoQueue;
  40. // Storing class linkage
  41. ID3D11ClassLinkage* mClassLinkage;
  42. D3D11Device();
  43. };
  44. }