dxgi: Add the IDXGIOutput interface.
Henri Verbeet
hverbeet at codeweavers.com
Fri Oct 17 08:09:45 CDT 2008
---
include/dxgi.idl | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++
include/dxgitype.idl | 55 +++++++++++++++++++++++++++++++++++++++
2 files changed, 124 insertions(+), 0 deletions(-)
diff --git a/include/dxgi.idl b/include/dxgi.idl
index 7c7a3e9..f1925b6 100644
--- a/include/dxgi.idl
+++ b/include/dxgi.idl
@@ -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
+ );
+}
diff --git a/include/dxgitype.idl b/include/dxgitype.idl
index 37bdfaa..2bd961d 100644
--- a/include/dxgitype.idl
+++ b/include/dxgitype.idl
@@ -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;
--
1.5.6.4
--------------060908030203080402020304--
More information about the wine-patches
mailing list