BsD3D11Driver.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. namespace BansheeEngine
  6. {
  7. /** @addtogroup D3D11
  8. * @{
  9. */
  10. /** Provides information about a driver (for example hardware GPU driver or software emulated). */
  11. class D3D11Driver
  12. {
  13. public:
  14. /** Constructs a new object from the adapter number provided by DX11 runtime, and DXGI adapter object. */
  15. D3D11Driver(UINT32 adapterNumber, IDXGIAdapter* dxgiAdapter);
  16. D3D11Driver(const D3D11Driver &ob);
  17. ~D3D11Driver();
  18. D3D11Driver& operator=(const D3D11Driver& r);
  19. /** Returns the name of the driver. */
  20. String getDriverName() const;
  21. /** Returns the description of the driver. */
  22. String getDriverDescription() const;
  23. /** Returns adapter index of the adapter the driver is managing. */
  24. UINT32 getAdapterNumber() const { return mAdapterNumber; }
  25. /** Returns number of outputs connected to the adapter the driver is managing. */
  26. UINT32 getNumAdapterOutputs() const { return mNumOutputs; }
  27. /** Returns a description of the adapter the driver is managing. */
  28. const DXGI_ADAPTER_DESC& getAdapterIdentifier() const { return mAdapterIdentifier; }
  29. /** Returns internal DXGI adapter object for the driver. */
  30. IDXGIAdapter* getDeviceAdapter() const { return mDXGIAdapter; }
  31. /** Returns description of an output device at the specified index. */
  32. DXGI_OUTPUT_DESC getOutputDesc(UINT32 adapterOutputIdx) const;
  33. /** Returns a list of all available video modes for all output devices. */
  34. SPtr<VideoModeInfo> getVideoModeInfo() const { return mVideoModeInfo; }
  35. private:
  36. /** Initializes the internal data. */
  37. void construct();
  38. private:
  39. UINT32 mAdapterNumber;
  40. UINT32 mNumOutputs;
  41. DXGI_ADAPTER_DESC mAdapterIdentifier;
  42. IDXGIAdapter* mDXGIAdapter;
  43. SPtr<VideoModeInfo> mVideoModeInfo;
  44. };
  45. /** @} */
  46. }