BsD3D11Driver.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #pragma once
  2. #include "BsD3D11Prerequisites.h"
  3. namespace BansheeEngine
  4. {
  5. /**
  6. * @brief Provides information about a driver (e.g. hardware GPU driver or software emulated).
  7. */
  8. class D3D11Driver
  9. {
  10. public:
  11. /**
  12. * @brief Constructs a new object from the adapter number provided by DX11 runtime, and
  13. * DXGI adapter object.
  14. */
  15. D3D11Driver(UINT32 adapterNumber, IDXGIAdapter* dxgiAdapter);
  16. D3D11Driver(const D3D11Driver &ob);
  17. ~D3D11Driver();
  18. D3D11Driver& operator=(const D3D11Driver& r);
  19. /**
  20. * @brief Returns the name of the driver.
  21. */
  22. String getDriverName() const;
  23. /**
  24. * @brief Returns the description of the driver.
  25. */
  26. String getDriverDescription() const;
  27. /**
  28. * @brief Returns adapter index of the adapter the driver is managing.
  29. */
  30. UINT32 getAdapterNumber() const { return mAdapterNumber; }
  31. /**
  32. * @brief Returns number of outputs connected to the adapter the driver is managing.
  33. */
  34. UINT32 getNumAdapterOutputs() const { return mNumOutputs; }
  35. /**
  36. * @brief Returns a description of the adapter the driver is managing.
  37. */
  38. const DXGI_ADAPTER_DESC& getAdapterIdentifier() const { return mAdapterIdentifier; }
  39. /**
  40. * @brief Returns internal DXGI adapter object for the driver.
  41. */
  42. IDXGIAdapter* getDeviceAdapter() { return mDXGIAdapter; }
  43. /**
  44. * @brief Returns description of an output device at the specified index.
  45. */
  46. DXGI_OUTPUT_DESC getOutputDesc(UINT32 adapterOutputIdx) const;
  47. /**
  48. * @brief Returns a list of all available video modes for all output devices.
  49. */
  50. VideoModeInfoPtr getVideoModeInfo() const { return mVideoModeInfo; }
  51. private:
  52. /**
  53. * @brief Initializes the internal data.
  54. */
  55. void construct();
  56. private:
  57. UINT32 mAdapterNumber;
  58. UINT32 mNumOutputs;
  59. DXGI_ADAPTER_DESC mAdapterIdentifier;
  60. IDXGIAdapter* mDXGIAdapter;
  61. VideoModeInfoPtr mVideoModeInfo;
  62. };
  63. }