36 lines
1.4 KiB
C++
36 lines
1.4 KiB
C++
#include "IDeviceEnumerator.h"
|
|
|
|
|
|
class OutputDevice
|
|
: public IOutputDevice
|
|
{
|
|
public:
|
|
OutputDevice(IDXGIOutput* ar_Output_, ID3D10Device* ar_Device_ = NULL);
|
|
virtual ~OutputDevice();
|
|
|
|
virtual bool get_IsAttachedToDesktop() const { return m_OutputDesc.AttachedToDesktop == TRUE; }
|
|
virtual HMONITOR get_MonitorHandle() const { return m_OutputDesc.Monitor; }
|
|
virtual RECT get_DesktopCoordinates() const { return m_OutputDesc.DesktopCoordinates; }
|
|
virtual const std::vector<IDisplayMode*>& get_DisplayModes() const { return m_DisplayModes; }
|
|
virtual bool get_HasEnumerated() const { return m_HasEnumerated; }
|
|
|
|
virtual bool TryEnumerate(uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown);
|
|
virtual IDisplayMode* FindBestDisplayMode(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown);
|
|
virtual string16 get_Name() const { return m_OutputDesc.DeviceName; }
|
|
|
|
private:
|
|
void GatherDisplayModes();
|
|
|
|
private:
|
|
IDXGIOutput* m_Output;
|
|
ID3D10Device* m_Device;
|
|
DXGI_OUTPUT_DESC m_OutputDesc;
|
|
bool m_HasEnumerated;
|
|
|
|
std::vector<IDisplayMode*> m_DisplayModes;
|
|
uint32 m_DesiredWidth;
|
|
uint32 m_DesiredHeight;
|
|
uint32 m_DesiredRefreshRate;
|
|
DataFormat::Enumeration m_DesiredFormat;
|
|
};
|