blob: 064a0ace3dae67e76e3e02337cf9a4a1ced17bae [file] [log] [blame]
José Fonsecaf450d8b2012-11-20 14:48:31 +00001/**************************************************************************
2 *
3 * Copyright 2012 VMware, Inc.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 *
24 **************************************************************************/
25
26
Jose Fonseca9653f952015-05-19 16:32:43 +010027#pragma once
José Fonsecaf450d8b2012-11-20 14:48:31 +000028
29#include <windows.h>
30
Jose Fonseca71a85c92016-02-25 21:37:42 +000031#include "winsdk_compat.h"
José Fonsecaf450d8b2012-11-20 14:48:31 +000032
Jose Fonsecab155fa72020-05-21 09:16:48 +010033#include <dxgi1_6.h>
José Fonsecaf450d8b2012-11-20 14:48:31 +000034
35
Jose Fonseca376992b2016-01-31 17:36:50 +000036DEFINE_GUID(IID_IDXGISwapChainDWM,0xF69F223B,0x45D3,0x4AA0,0x98,0xC8,0xC4,0x0C,0x2B,0x23,0x10,0x29);
José Fonseca75cbb8c2013-02-12 16:19:23 +000037struct IDXGISwapChainDWM: public IDXGIDeviceSubObject
38{
39 virtual HRESULT STDMETHODCALLTYPE Present(UINT SyncInterval, UINT Flags) = 0;
40 virtual HRESULT STDMETHODCALLTYPE GetBuffer(UINT Buffer, REFIID riid, void **ppSurface) = 0;
41 virtual HRESULT STDMETHODCALLTYPE GetDesc(DXGI_SWAP_CHAIN_DESC *pDesc) = 0;
42 virtual HRESULT STDMETHODCALLTYPE ResizeBuffers(UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags) = 0;
43 virtual HRESULT STDMETHODCALLTYPE ResizeTarget(const DXGI_MODE_DESC *pNewTargetParameters) = 0;
44 virtual HRESULT STDMETHODCALLTYPE GetContainingOutput(IDXGIOutput **ppOutput) = 0;
45 virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(DXGI_FRAME_STATISTICS *pStats) = 0;
46 virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount(UINT *pLastPresentCount) = 0;
José Fonseca75cbb8c2013-02-12 16:19:23 +000047};
José Fonsecaf450d8b2012-11-20 14:48:31 +000048
Jose Fonseca376992b2016-01-31 17:36:50 +000049DEFINE_GUID(IID_IDXGIFactoryDWM,0x713F394E,0x92CA,0x47E7,0xAB,0x81,0x11,0x59,0xC2,0x79,0x1E,0x54);
José Fonseca712c8c02014-09-14 19:35:15 +010050struct IDXGIFactoryDWM: public IUnknown
51{
52 virtual HRESULT STDMETHODCALLTYPE CreateSwapChain(IUnknown *pDevice, DXGI_SWAP_CHAIN_DESC *pDesc, IDXGIOutput *pOutput, IDXGISwapChainDWM **ppSwapChain) = 0;
53};
54
55
Jose Fonseca376992b2016-01-31 17:36:50 +000056DEFINE_GUID(IID_IWarpPrivateAPI,0xF13EBCD1,0x672C,0x4F8B,0xA6,0x31,0x95,0x39,0xCA,0x74,0x8D,0x71);
Jose Fonseca7c76b902017-10-09 18:00:42 +010057
58
59struct IUseCounted: public IUnknown
60{
61 virtual ULONG STDMETHODCALLTYPE UCAddUse(void) = 0;
62 virtual ULONG STDMETHODCALLTYPE UCReleaseUse(void) = 0;
63 virtual void STDMETHODCALLTYPE UCBreakCyclicReferences(void) = 0;
64 virtual void STDMETHODCALLTYPE UCEstablishCyclicReferences(void) = 0;
65 virtual void STDMETHODCALLTYPE UCDestroy(void) = 0;
66};
67
68struct ILayeredUseCounted: public IUseCounted
69{
70#if 0
71 virtual HRESULT STDMETHODCALLTYPE LUCCompleteLayerConstruction(void) = 0;
72 virtual HRESULT STDMETHODCALLTYPE LUCBeginLayerDestruction(void) = 0;
73 virtual HRESULT STDMETHODCALLTYPE LUCDeferDeletion(int) = 0;
74 virtual HRESULT STDMETHODCALLTYPE LUCDestroyStatus(E_LUC_Destroy eStatus) = 0;
75 virtual HRESULT STDMETHODCALLTYPE LUCGetInternalIdentity(void const *pLayeredChildArgs, UINT uiArgSize) = 0;
76 virtual HRESULT STDMETHODCALLTYPE LUCGetInternalIdentity(void **ppInternalIdentity) = 0;
77 virtual HRESULT STDMETHODCALLTYPE LUCGetChildType(void) = 0;
78 virtual HRESULT STDMETHODCALLTYPE LUCCompleteInitialization(void) = 0;
79 virtual HRESULT STDMETHODCALLTYPE LUCPrepareForDestruction(void) = 0;
80#endif
81};
82
83struct ID3D11LayeredUseCounted: public ILayeredUseCounted
84{
85};
86
87struct IUseCounted2: public IUseCounted
88{
89 virtual HRESULT STDMETHODCALLTYPE UCQueryInterface(UINT flags, REFIID riid, void **ppvObj) = 0;
90};
Jose Fonseca550c98d2018-02-13 12:59:31 +000091
92
93struct ID3D10Buffer;
94
95struct ID3D10DebugTest: public IUnknown
96{
97 virtual void STDMETHODCALLTYPE PreventFurtherExecutionOnError(BOOL Enable) = 0;
98 virtual void STDMETHODCALLTYPE VSSetConstantBuffer14(ID3D10Buffer *pCB14) = 0;
99 virtual void STDMETHODCALLTYPE GSSetConstantBuffer14(ID3D10Buffer *pCB14) = 0;
100 virtual void STDMETHODCALLTYPE PSSetConstantBuffer14(ID3D10Buffer *pCB14) = 0;
101};
102
103struct ID3D11Buffer;
104
105struct ID3D11DebugTest: public IUnknown
106{
107 virtual void STDMETHODCALLTYPE PreventFurtherExecutionOnError(BOOL Enable) = 0;
108 virtual void STDMETHODCALLTYPE VSSetConstantBuffer14(ID3D11Buffer *pCB14) = 0;
109 virtual void STDMETHODCALLTYPE HSSetConstantBuffer14(ID3D11Buffer *pCB14) = 0;
110 virtual void STDMETHODCALLTYPE DSSetConstantBuffer14(ID3D11Buffer *pCB14) = 0;
111 virtual void STDMETHODCALLTYPE GSSetConstantBuffer14(ID3D11Buffer *pCB14) = 0;
112 virtual void STDMETHODCALLTYPE PSSetConstantBuffer14(ID3D11Buffer *pCB14) = 0;
113 virtual void STDMETHODCALLTYPE CSSetConstantBuffer14(ID3D11Buffer *pCB14) = 0;
114};
115