2
0

BsD3D11VideoModeInfo.h 1.8 KB

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