port from perforce
This commit is contained in:
70
aiwaz/Aiwaz/Interfaces/IDeviceEnumerator.h
Normal file
70
aiwaz/Aiwaz/Interfaces/IDeviceEnumerator.h
Normal file
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include "Resource.h"
|
||||
#include <vector>
|
||||
|
||||
|
||||
struct IOutputDevice;
|
||||
struct IDisplayAdapter;
|
||||
struct IDisplayMode;
|
||||
|
||||
|
||||
struct __declspec(novtable) IDeviceEnumerator
|
||||
{
|
||||
virtual ~IDeviceEnumerator() {}
|
||||
virtual bool get_HasEnumerated() const = 0;
|
||||
virtual const std::vector<IDisplayAdapter*>& get_DeviceAdapters() const = 0;
|
||||
|
||||
virtual bool TryEnumerate(uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual IDisplayAdapter* FindBestAdapter(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual IOutputDevice* FindBestOutput(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual IDisplayMode* FindBestDisplayMode(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
|
||||
virtual void Verbose() = 0;
|
||||
};
|
||||
|
||||
|
||||
struct IDXGIAdapter;
|
||||
struct __declspec(novtable) IDisplayAdapter
|
||||
{
|
||||
virtual ~IDisplayAdapter() {}
|
||||
|
||||
virtual size_t get_DedicatedSystemMemory() const = 0;
|
||||
virtual size_t get_DedicatedVideoMemory() const = 0;
|
||||
virtual size_t get_SharedSystemMemory() const = 0;
|
||||
virtual const std::vector<IOutputDevice*>& get_DeviceOutputs() const = 0;
|
||||
virtual bool get_HasEnumerated() const = 0;
|
||||
virtual IDXGIAdapter* get_Adapter() const = 0;
|
||||
|
||||
virtual string16 get_Name() const = 0;
|
||||
virtual bool TryEnumerate(uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual IOutputDevice* FindBestOutput(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual IDisplayMode* FindBestDisplayMode(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
};
|
||||
|
||||
|
||||
struct __declspec(novtable) IOutputDevice
|
||||
{
|
||||
virtual ~IOutputDevice() {}
|
||||
|
||||
virtual bool get_IsAttachedToDesktop() const = 0;
|
||||
virtual HMONITOR get_MonitorHandle() const = 0;
|
||||
virtual RECT get_DesktopCoordinates() const = 0;
|
||||
virtual const std::vector<IDisplayMode*>& get_DisplayModes() const = 0;
|
||||
virtual bool get_HasEnumerated() const = 0;
|
||||
|
||||
virtual bool TryEnumerate(uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual IDisplayMode* FindBestDisplayMode(bool argAllowToEnumerate = false, uint32 argDesiredWidth = 0, uint32 argDesiredHeight = 0, uint32 argDesiredRefreshRate = 0, DataFormat::Enumeration argDesiredFormat = DataFormat::Unknown) = 0;
|
||||
virtual string16 get_Name() const = 0;
|
||||
};
|
||||
|
||||
|
||||
struct __declspec(novtable) IDisplayMode
|
||||
{
|
||||
virtual ~IDisplayMode() {}
|
||||
|
||||
virtual uint32 get_Width() const = 0;
|
||||
virtual uint32 get_Height() const = 0;
|
||||
virtual uint32 get_RefreshRate() const = 0;
|
||||
virtual DataFormat::Enumeration get_Format() const = 0;
|
||||
};
|
||||
Reference in New Issue
Block a user