dxgi: Add the IDXGIOutput interface.
This commit is contained in:
parent
9cdbffcce4
commit
2d1da818c5
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
import "dxgitype.idl";
|
import "dxgitype.idl";
|
||||||
|
|
||||||
|
cpp_quote("#if 0")
|
||||||
|
typedef HANDLE HMONITOR;
|
||||||
|
cpp_quote("#endif")
|
||||||
|
|
||||||
typedef struct DXGI_SURFACE_DESC {
|
typedef struct DXGI_SURFACE_DESC {
|
||||||
UINT Width;
|
UINT Width;
|
||||||
UINT Height;
|
UINT Height;
|
||||||
@ -30,6 +34,22 @@ typedef struct DXGI_MAPPED_RECT {
|
|||||||
BYTE *pBits;
|
BYTE *pBits;
|
||||||
} DXGI_MAPPED_RECT;
|
} 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,
|
object,
|
||||||
local,
|
local,
|
||||||
@ -87,3 +107,52 @@ interface IDXGISurface : IDXGIDeviceSubObject
|
|||||||
HRESULT Unmap(
|
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_B8G8R8X8_UNORM = 88,
|
||||||
DXGI_FORMAT_FORCE_UINT = 0xffffffff
|
DXGI_FORMAT_FORCE_UINT = 0xffffffff
|
||||||
} DXGI_FORMAT;
|
} 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…
x
Reference in New Issue
Block a user