CmD3D11Driver.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include "CmD3D11Prerequisites.h"
  3. namespace CamelotFramework
  4. {
  5. class D3D11Driver
  6. {
  7. public:
  8. D3D11Driver(const D3D11Driver &ob);
  9. D3D11Driver(UINT32 adapterNumber, IDXGIAdapter* dxgiAdapter);
  10. ~D3D11Driver();
  11. D3D11Driver& operator=(const D3D11Driver& r);
  12. String getDriverName() const;
  13. String getDriverDescription() const;
  14. UINT32 getAdapterNumber() const { return mAdapterNumber; }
  15. UINT32 getNumAdapterOutputs() const { return mNumOutputs; }
  16. const DXGI_ADAPTER_DESC& getAdapterIdentifier() const { return mAdapterIdentifier; }
  17. const DXGI_MODE_DESC& getDesktopMode() const { return mDesktopDisplayMode; }
  18. IDXGIAdapter* getDeviceAdapter() { return mDXGIAdapter; }
  19. DXGI_OUTPUT_DESC getOutputDesc(UINT32 adapterOutputIdx) const;
  20. const D3D11VideoModeList* getVideoModeList(UINT32 adapterOutputIdx) const;
  21. private:
  22. // D3D only allows one device per adapter, so it can safely be stored here as well.
  23. UINT32 mAdapterNumber;
  24. UINT32 mNumOutputs;
  25. DXGI_ADAPTER_DESC mAdapterIdentifier;
  26. DXGI_MODE_DESC mDesktopDisplayMode;
  27. D3D11VideoModeList** mVideoModeList;
  28. IDXGIAdapter* mDXGIAdapter;
  29. void init();
  30. };
  31. }