[[Patch 3/3 try2]] dxgi: Add missing dxgi 1.2 structs and interfaces
Martell Malone
martellmalone at gmail.com
Fri Feb 13 07:13:25 CST 2015
---
include/dxgi1_2.idl | 268 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 268 insertions(+)
diff --git a/include/dxgi1_2.idl b/include/dxgi1_2.idl
index bba4ab8..eed13bb 100644
--- a/include/dxgi1_2.idl
+++ b/include/dxgi1_2.idl
@@ -1,5 +1,6 @@
/*
* Copyright 2014 Jacek Caban for CodeWeavers
+ * Copyright 2015 Martell Malone
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -18,6 +19,114 @@
import "dxgi.idl";
+[
+ object,
+ uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIDisplayControl : IUnknown
+{
+ BOOL IsStereoEnabled();
+
+ void SetStereoEnabled(
+ BOOL enabled
+ );
+}
+
+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 = 0x1,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4
+} 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;
+
+[
+ 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,
+ [out] DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ [out] IDXGIResource **resource
+ );
+
+ HRESULT GetFrameDirtyRects(
+ [in] UINT dirty_size,
+ [out] RECT *buffer,
+ [out] UINT *buffer_size
+ );
+
+ HRESULT GetFrameMoveRects(
+ [in] UINT move_size,
+ [out] DXGI_OUTDUPL_MOVE_RECT *rect,
+ [out] UINT *rect_size
+ );
+
+ HRESULT GetFramePointerShape(
+ [in] UINT shape_size,
+ [out] void *buffer,
+ [out] UINT *buffer_size,
+ [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info
+ );
+
+ HRESULT MapDesktopSurface(
+ [out] DXGI_MAPPED_RECT *rect
+ );
+
+ HRESULT UnMapDesktopSurface();
+
+ HRESULT ReleaseFrame();
+}
+
typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
DXGI_OFFER_RESOURCE_PRIORITY_NORMAL,
@@ -130,3 +239,162 @@ interface IDXGISwapChain1 : IDXGISwapChain
HRESULT GetRotation(
[out] DXGI_MODE_ROTATION *pRotation);
}
+
+[
+ object,
+ uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIFactory2 : IDXGIFactory1
+{
+ BOOL IsWindowedStereoEnabled();
+
+ HRESULT CreateSwapChainForHwnd(
+ [in] IUnknown *device,
+ [in] HWND hwnd,
+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc,
+ [in] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc,
+ [in] IDXGIOutput *output,
+ [out] IDXGISwapChain1 **swapchain
+ );
+
+ HRESULT CreateSwapChainForCoreWindow(
+ [in] IUnknown *device,
+ [in] IUnknown *window,
+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc,
+ [in] IDXGIOutput *output,
+ [out] IDXGISwapChain1 **swapchain
+ );
+
+ HRESULT GetSharedResourceAdapterLuid(
+ [in] HANDLE resource,
+ [out] LUID *luid
+ );
+
+ HRESULT RegisterStereoStatusWindow(
+ [in] HWND window,
+ [in] UINT msg,
+ [out] DWORD *cookie
+ );
+
+ HRESULT RegisterStereoStatusEvent(
+ [in] HANDLE event,
+ [out] DWORD *cookie
+ );
+
+ void UnregisterStereoStatus(
+ [in] DWORD cookie
+ );
+
+ HRESULT RegisterOcclusionStatusWindow(
+ [in] HWND window,
+ [in] UINT msg,
+ [out] DWORD *cookie
+ );
+
+ HRESULT RegisterOcclusionStatusEvent(
+ [in] HANDLE event,
+ [out] DWORD *cookie
+ );
+
+ void UnregisterOcclusionStatus(
+ [in] DWORD cookie
+ );
+
+ HRESULT CreateSwapChainForComposition(
+ [in] IUnknown *device,
+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc,
+ [in] IDXGIOutput *output,
+ [out] IDXGISwapChain1 **swapchain
+ );
+ }
+
+typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY
+{
+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1,
+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2,
+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3,
+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4,
+} DXGI_GRAPHICS_PREEMPTION_GRANULARITY;
+
+typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY
+{
+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1,
+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2,
+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3,
+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4,
+} DXGI_COMPUTE_PREEMPTION_GRANULARITY;
+
+typedef struct DXGI_ADAPTER_DESC2
+{
+ WCHAR Description[128];
+ UINT VendorId;
+ UINT DeviceId;
+ UINT SubSysId;
+ UINT Revision;
+ SIZE_T DedicatedVideoMemory;
+ SIZE_T DedicatedSystemMemory;
+ SIZE_T SharedSystemMemory;
+ LUID AdapterLuid;
+ UINT Flags;
+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
+} DXGI_ADAPTER_DESC2;
+
+[
+ object,
+ uuid(0aa1ae0a-fa0e-4B84-8644-e05ff8e5acb5),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIAdapter2 : IDXGIAdapter1
+{
+ HRESULT GetDesc2(
+ [out] DXGI_ADAPTER_DESC2 *desc
+ );
+}
+
+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(00cddea8-939b-4b83-a340-a685226666cc),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIOutput1 : IDXGIOutput
+{
+ HRESULT GetDisplayModeList1(
+ [in] DXGI_FORMAT format,
+ [in] UINT flags,
+ [in, out] UINT *mode_count,
+ [out] DXGI_MODE_DESC1 *desc
+ );
+
+ HRESULT FindClosestMatchingMode1(
+ [in] const DXGI_MODE_DESC1 *mode,
+ [out] DXGI_MODE_DESC1 *closest_match,
+ [in] IUnknown *device
+ );
+
+ HRESULT GetDisplaySurfaceData1(
+ [in] IDXGIResource *resource
+ );
+
+ HRESULT DuplicateOutput(
+ [in] IUnknown *device,
+ [out] IDXGIOutputDuplication **output
+ );
+}
--
2.3.0
More information about the wine-patches
mailing list