BsD3D11VideoModeInfo.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include "BsD3D11Prerequisites.h"
  3. #include "BsVideoModeInfo.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @copydoc VideoMode
  8. */
  9. class BS_D3D11_EXPORT D3D11VideoMode : public VideoMode
  10. {
  11. public:
  12. D3D11VideoMode(UINT32 width, UINT32 height, float refreshRate, UINT32 outputIdx, UINT32 refreshRateNumerator,
  13. UINT32 refreshRateDenominator, DXGI_MODE_DESC mode);
  14. /**
  15. * @brief Returns an internal DXGI representation of this video mode.
  16. */
  17. const DXGI_MODE_DESC& getDXGIModeDesc() const { return mD3D11Mode; }
  18. /**
  19. * @brief Gets internal DX11 refresh rate numerator.
  20. */
  21. UINT32 getRefreshRateNumerator() const { return mRefreshRateNumerator; }
  22. /**
  23. * @brief Gets internal DX11 refresh rate denominator.
  24. */
  25. UINT32 getRefreshRateDenominator() const { return mRefreshRateDenominator; }
  26. private:
  27. friend class D3D11VideoOutputInfo;
  28. UINT32 mRefreshRateNumerator;
  29. UINT32 mRefreshRateDenominator;
  30. DXGI_MODE_DESC mD3D11Mode;
  31. };
  32. /**
  33. * @copydoc VideoOutputInfo
  34. */
  35. class BS_D3D11_EXPORT D3D11VideoOutputInfo : public VideoOutputInfo
  36. {
  37. public:
  38. D3D11VideoOutputInfo(IDXGIOutput* output, UINT32 outputIdx);
  39. ~D3D11VideoOutputInfo();
  40. /**
  41. * @brief Returns the internal DXGI object representing an output device.
  42. */
  43. IDXGIOutput* getDXGIOutput() const { return mDXGIOutput; }
  44. private:
  45. IDXGIOutput* mDXGIOutput;
  46. };
  47. /**
  48. * @copydoc VideoModeInfo
  49. */
  50. class BS_D3D11_EXPORT D3D11VideoModeInfo : public VideoModeInfo
  51. {
  52. public:
  53. D3D11VideoModeInfo(IDXGIAdapter* dxgiAdapter);
  54. };
  55. }