dxgi: Add the IDXGIOutput interface.
This commit is contained in:
parent
9cdbffcce4
commit
2d1da818c5
|
@ -18,6 +18,10 @@
|
|||
|
||||
import "dxgitype.idl";
|
||||
|
||||
cpp_quote("#if 0")
|
||||
typedef HANDLE HMONITOR;
|
||||
cpp_quote("#endif")
|
||||
|
||||
typedef struct DXGI_SURFACE_DESC {
|
||||
UINT Width;
|
||||
UINT Height;
|
||||
|
@ -30,6 +34,22 @@ typedef struct DXGI_MAPPED_RECT {
|
|||
BYTE *pBits;
|
||||
} DXGI_MAPPED_RECT;
|
||||
|
||||
typedef struct DXGI_OUTPUT_DESC {
|
||||
WCHAR DeviceName[32];
|
||||
RECT DesktopCoordinates;
|
||||
BOOL AttachedToDesktop;
|
||||
DXGI_MODE_ROTATION Rotation;
|
||||
HMONITOR Monitor;
|
||||
} DXGI_OUTPUT_DESC;
|
||||
|
||||
typedef struct DXGI_FRAME_STATISTICS {
|
||||
UINT PresentCount;
|
||||
UINT PresentRefreshCount;
|
||||
UINT SyncRefreshCount;
|
||||
LARGE_INTEGER SyncQPCTime;
|
||||
LARGE_INTEGER SyncGPUTime;
|
||||
} DXGI_FRAME_STATISTICS;
|
||||
|
||||
[
|
||||
object,
|
||||
local,
|
||||
|
@ -87,3 +107,52 @@ interface IDXGISurface : IDXGIDeviceSubObject
|
|||
HRESULT Unmap(
|
||||
);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
local,
|
||||
uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa)
|
||||
]
|
||||
interface IDXGIOutput : IDXGIObject
|
||||
{
|
||||
HRESULT GetDesc(
|
||||
[out] DXGI_OUTPUT_DESC *desc
|
||||
);
|
||||
HRESULT GetDisplayModeList(
|
||||
[in] DXGI_FORMAT format,
|
||||
[in] UINT flags,
|
||||
[in, out] UINT *mode_count,
|
||||
[out] DXGI_MODE_DESC *desc
|
||||
);
|
||||
HRESULT FindClosestMatchingMode(
|
||||
[in] const DXGI_MODE_DESC *mode,
|
||||
[out] DXGI_MODE_DESC *closest_match,
|
||||
[in] IUnknown *device
|
||||
);
|
||||
HRESULT WaitForVBlank(
|
||||
);
|
||||
HRESULT TakeOwnership(
|
||||
[in] IUnknown *device,
|
||||
[in] BOOL exclusive
|
||||
);
|
||||
void ReleaseOwnership(
|
||||
);
|
||||
HRESULT GetGammaControlCapabilities(
|
||||
[out] DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps
|
||||
);
|
||||
HRESULT SetGammaControl(
|
||||
[in] const DXGI_GAMMA_CONTROL *gamma_control
|
||||
);
|
||||
HRESULT GetGammaControl(
|
||||
[out] DXGI_GAMMA_CONTROL *gamma_control
|
||||
);
|
||||
HRESULT SetDisplaySurface(
|
||||
[in] IDXGISurface *surface
|
||||
);
|
||||
HRESULT GetDisplaySurfaceData(
|
||||
[in] IDXGISurface *surface
|
||||
);
|
||||
HRESULT GetFrameStatistics(
|
||||
[out] DXGI_FRAME_STATISTICS *stats
|
||||
);
|
||||
}
|
||||
|
|
|
@ -115,3 +115,58 @@ typedef enum DXGI_FORMAT {
|
|||
DXGI_FORMAT_B8G8R8X8_UNORM = 88,
|
||||
DXGI_FORMAT_FORCE_UINT = 0xffffffff
|
||||
} DXGI_FORMAT;
|
||||
|
||||
typedef enum DXGI_MODE_ROTATION {
|
||||
DXGI_MODE_ROTATION_UNSPECIFIED = 0,
|
||||
DXGI_MODE_ROTATION_IDENTITY = 1,
|
||||
DXGI_MODE_ROTATION_ROTATE90 = 2,
|
||||
DXGI_MODE_ROTATION_ROTATE180 = 3,
|
||||
DXGI_MODE_ROTATION_ROTATE270 = 4,
|
||||
} DXGI_MODE_ROTATION;
|
||||
|
||||
typedef enum DXGI_MODE_SCANLINE_ORDER {
|
||||
DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0,
|
||||
DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1,
|
||||
DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2,
|
||||
DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3,
|
||||
} DXGI_MODE_SCANLINE_ORDER;
|
||||
|
||||
typedef enum DXGI_MODE_SCALING {
|
||||
DXGI_MODE_SCALING_UNSPECIFIED = 0,
|
||||
DXGI_MODE_SCALING_CENTERED = 1,
|
||||
DXGI_MODE_SCALING_STRETCHED = 2,
|
||||
} DXGI_MODE_SCALING;
|
||||
|
||||
typedef struct DXGI_RATIONAL {
|
||||
UINT Numerator;
|
||||
UINT Denominator;
|
||||
} DXGI_RATIONAL;
|
||||
|
||||
typedef struct DXGI_MODE_DESC {
|
||||
UINT Width;
|
||||
UINT Height;
|
||||
DXGI_RATIONAL RefreshRate;
|
||||
DXGI_FORMAT Format;
|
||||
DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
|
||||
DXGI_MODE_SCALING Scaling;
|
||||
} DXGI_MODE_DESC;
|
||||
|
||||
typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES {
|
||||
BOOL ScaleAndOffsetSupported;
|
||||
float MaxConvertedValue;
|
||||
float MinConvertedValue;
|
||||
UINT NumGammaControlPoints;
|
||||
float ControlPointPositions[1025];
|
||||
} DXGI_GAMMA_CONTROL_CAPABILITIES;
|
||||
|
||||
typedef struct DXGI_RGB {
|
||||
float Red;
|
||||
float Green;
|
||||
float Blue;
|
||||
} DXGI_RGB;
|
||||
|
||||
typedef struct DXGI_GAMMA_CONTROL {
|
||||
DXGI_RGB Scale;
|
||||
DXGI_RGB Offset;
|
||||
DXGI_RGB GammaCurve[1025];
|
||||
} DXGI_GAMMA_CONTROL;
|
||||
|
|
Loading…
Reference in New Issue