Module: wine Branch: master Commit: b5f27803c8ab4ccb38782178343d073e525396f1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b5f27803c8ab4ccb3878217834...
Author: Ihsan Akmal ihsanapps@gmail.com Date: Mon Sep 18 17:59:34 2017 +0800
dxgi1_2.idl: Add missing structs and interfaces.
Signed-off-by: Ihsan Akmal ihsanapps@gmail.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
include/dxgi1_2.idl | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+)
diff --git a/include/dxgi1_2.idl b/include/dxgi1_2.idl index 92f9c0e..64163dd 100644 --- a/include/dxgi1_2.idl +++ b/include/dxgi1_2.idl @@ -32,6 +32,122 @@ typedef enum DXGI_ALPHA_MODE { DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff } DXGI_ALPHA_MODE;
+typedef struct DXGI_OUTDUPL_MOVE_RECT +{ + POINT SourcePoint; + RECT DestinationRect; +} DXGI_OUTDUPL_MOVE_RECT; + +typedef struct DXGI_OUTDUPL_DESC +{ + DXGI_MODE_DESC ModeDesc; + DXGI_MODE_ROTATION Rotation; + BOOL DesktopImageInSystemMemory; +} DXGI_OUTDUPL_DESC; + +typedef struct DXGI_OUTDUPL_POINTER_POSITION +{ + POINT Position; + BOOL Visible; +} DXGI_OUTDUPL_POINTER_POSITION; + +typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE +{ + DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x00000001, + DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x00000002, + DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x00000004 +} DXGI_OUTDUPL_POINTER_SHAPE_TYPE; + +typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO +{ + UINT Type; + UINT Width; + UINT Height; + UINT Pitch; + POINT HotSpot; +} DXGI_OUTDUPL_POINTER_SHAPE_INFO; + +typedef struct DXGI_OUTDUPL_FRAME_INFO +{ + LARGE_INTEGER LastPresentTime; + LARGE_INTEGER LastMouseUpdateTime; + UINT AccumulatedFrames; + BOOL RectsCoalesced; + BOOL ProtectedContentMaskedOut; + DXGI_OUTDUPL_POINTER_POSITION PointerPosition; + UINT TotalMetadataBufferSize; + UINT PointerShapeBufferSize; +} DXGI_OUTDUPL_FRAME_INFO; + +typedef struct DXGI_MODE_DESC1 +{ + UINT Width; + UINT Height; + DXGI_RATIONAL RefreshRate; + DXGI_FORMAT Format; + DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; + DXGI_MODE_SCALING Scaling; + BOOL Stereo; +} DXGI_MODE_DESC1; + +[ + object, + uuid(191cfac3-a341-470d-b26e-a864f428319c), + local, + pointer_default(unique) +] +interface IDXGIOutputDuplication : IDXGIObject +{ + void GetDesc( + [out] DXGI_OUTDUPL_DESC *desc + ); + + HRESULT AcquireNextFrame( + [in] UINT timeout_in_milliseconds, + [out] DXGI_OUTDUPL_FRAME_INFO *frame_info, + [out] IDXGIResource **desktop_resource + ); + + HRESULT GetFrameDirtyRects( + [in] UINT dirty_rects_buffer_size, + [out] RECT *dirty_rects_buffer, + [out] UINT *dirty_rects_buffer_size_required + ); + + HRESULT GetFrameMoveRects( + [in] UINT move_rects_buffer_size, + [out] DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer, + [out] UINT *move_rects_buffer_size_required + ); + + HRESULT GetFramePointerShape( + [in] UINT pointer_shape_buffer_size, + [out] void *pointer_shape_buffer, + [out] UINT *pointer_shape_buffer_size_required, + [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info + ); + + HRESULT MapDesktopSurface( + [out] DXGI_MAPPED_RECT *locked_rect + ); + + HRESULT UnMapDesktopSurface(); + + HRESULT ReleaseFrame(); +} + +[ + object, + uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c), + local, + pointer_default(unique) +] +interface IDXGIDisplayControl : IUnknown +{ + BOOL IsStereoEnabled(); + void SetStereoEnabled(BOOL enabled); +} + [ object, uuid(05008617-fbfd-4051-a790-144884b4f6a9), @@ -232,3 +348,34 @@ interface IDXGIAdapter2 : IDXGIAdapter1 { HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc); } + +[ + object, + uuid(00cddea8-939b-4b83-a340-a685226666cc), + local, + pointer_default(unique) +] +interface IDXGIOutput1 : IDXGIOutput +{ + HRESULT GetDisplayModeList1( + [in] DXGI_FORMAT enum_format, + [in] UINT flags, + [in, out] UINT *num_modes, + [out] DXGI_MODE_DESC1 *desc + ); + + HRESULT FindClosestMatchingMode1( + [in] const DXGI_MODE_DESC1 *mode_to_match, + [out] DXGI_MODE_DESC1 *closest_match, + [in] IUnknown *concerned_device + ); + + HRESULT GetDisplaySurfaceData1( + [in] IDXGIResource *destination + ); + + HRESULT DuplicateOutput( + [in] IUnknown *device, + [out] IDXGIOutputDuplication **output_duplication + ); +}