port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
#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;
};