master
  1/*** Autogenerated by WIDL 10.4 from include/d3d11on12.idl - Do not edit ***/
  2
  3#ifdef _WIN32
  4#ifndef __REQUIRED_RPCNDR_H_VERSION__
  5#define __REQUIRED_RPCNDR_H_VERSION__ 475
  6#endif
  7#include <rpc.h>
  8#include <rpcndr.h>
  9#endif
 10
 11#ifndef COM_NO_WINDOWS_H
 12#include <windows.h>
 13#include <ole2.h>
 14#endif
 15
 16#ifndef __d3d11on12_h__
 17#define __d3d11on12_h__
 18
 19/* Forward declarations */
 20
 21#ifndef __ID3D11On12Device_FWD_DEFINED__
 22#define __ID3D11On12Device_FWD_DEFINED__
 23typedef interface ID3D11On12Device ID3D11On12Device;
 24#ifdef __cplusplus
 25interface ID3D11On12Device;
 26#endif /* __cplusplus */
 27#endif
 28
 29#ifndef __ID3D11On12Device1_FWD_DEFINED__
 30#define __ID3D11On12Device1_FWD_DEFINED__
 31typedef interface ID3D11On12Device1 ID3D11On12Device1;
 32#ifdef __cplusplus
 33interface ID3D11On12Device1;
 34#endif /* __cplusplus */
 35#endif
 36
 37#ifndef __ID3D11On12Device2_FWD_DEFINED__
 38#define __ID3D11On12Device2_FWD_DEFINED__
 39typedef interface ID3D11On12Device2 ID3D11On12Device2;
 40#ifdef __cplusplus
 41interface ID3D11On12Device2;
 42#endif /* __cplusplus */
 43#endif
 44
 45/* Headers for imported files */
 46
 47#include <oaidl.h>
 48#include <ocidl.h>
 49#include <d3d11.h>
 50#include <d3d12.h>
 51
 52#ifdef __cplusplus
 53extern "C" {
 54#endif
 55
 56typedef struct D3D11_RESOURCE_FLAGS {
 57    UINT BindFlags;
 58    UINT MiscFlags;
 59    UINT CPUAccessFlags;
 60    UINT StructureByteStride;
 61} D3D11_RESOURCE_FLAGS;
 62/*****************************************************************************
 63 * ID3D11On12Device interface
 64 */
 65#ifndef __ID3D11On12Device_INTERFACE_DEFINED__
 66#define __ID3D11On12Device_INTERFACE_DEFINED__
 67
 68DEFINE_GUID(IID_ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04);
 69#if defined(__cplusplus) && !defined(CINTERFACE)
 70MIDL_INTERFACE("85611e73-70a9-490e-9614-a9e302777904")
 71ID3D11On12Device : public IUnknown
 72{
 73    virtual HRESULT STDMETHODCALLTYPE CreateWrappedResource(
 74        IUnknown *d3d12_resource,
 75        const D3D11_RESOURCE_FLAGS *flags,
 76        D3D12_RESOURCE_STATES input_state,
 77        D3D12_RESOURCE_STATES output_state,
 78        REFIID iid,
 79        void **d3d11_resource) = 0;
 80
 81    virtual void STDMETHODCALLTYPE ReleaseWrappedResources(
 82        ID3D11Resource *const *resources,
 83        UINT count) = 0;
 84
 85    virtual void STDMETHODCALLTYPE AcquireWrappedResources(
 86        ID3D11Resource *const *resources,
 87        UINT count) = 0;
 88
 89};
 90#ifdef __CRT_UUID_DECL
 91__CRT_UUID_DECL(ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04)
 92#endif
 93#else
 94typedef struct ID3D11On12DeviceVtbl {
 95    BEGIN_INTERFACE
 96
 97    /*** IUnknown methods ***/
 98    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 99        ID3D11On12Device *This,
100        REFIID riid,
101        void **ppvObject);
102
103    ULONG (STDMETHODCALLTYPE *AddRef)(
104        ID3D11On12Device *This);
105
106    ULONG (STDMETHODCALLTYPE *Release)(
107        ID3D11On12Device *This);
108
109    /*** ID3D11On12Device methods ***/
110    HRESULT (STDMETHODCALLTYPE *CreateWrappedResource)(
111        ID3D11On12Device *This,
112        IUnknown *d3d12_resource,
113        const D3D11_RESOURCE_FLAGS *flags,
114        D3D12_RESOURCE_STATES input_state,
115        D3D12_RESOURCE_STATES output_state,
116        REFIID iid,
117        void **d3d11_resource);
118
119    void (STDMETHODCALLTYPE *ReleaseWrappedResources)(
120        ID3D11On12Device *This,
121        ID3D11Resource *const *resources,
122        UINT count);
123
124    void (STDMETHODCALLTYPE *AcquireWrappedResources)(
125        ID3D11On12Device *This,
126        ID3D11Resource *const *resources,
127        UINT count);
128
129    END_INTERFACE
130} ID3D11On12DeviceVtbl;
131
132interface ID3D11On12Device {
133    CONST_VTBL ID3D11On12DeviceVtbl* lpVtbl;
134};
135
136#ifdef COBJMACROS
137#ifndef WIDL_C_INLINE_WRAPPERS
138/*** IUnknown methods ***/
139#define ID3D11On12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
140#define ID3D11On12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
141#define ID3D11On12Device_Release(This) (This)->lpVtbl->Release(This)
142/*** ID3D11On12Device methods ***/
143#define ID3D11On12Device_CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource) (This)->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource)
144#define ID3D11On12Device_ReleaseWrappedResources(This,resources,count) (This)->lpVtbl->ReleaseWrappedResources(This,resources,count)
145#define ID3D11On12Device_AcquireWrappedResources(This,resources,count) (This)->lpVtbl->AcquireWrappedResources(This,resources,count)
146#else
147/*** IUnknown methods ***/
148static inline HRESULT ID3D11On12Device_QueryInterface(ID3D11On12Device* This,REFIID riid,void **ppvObject) {
149    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
150}
151static inline ULONG ID3D11On12Device_AddRef(ID3D11On12Device* This) {
152    return This->lpVtbl->AddRef(This);
153}
154static inline ULONG ID3D11On12Device_Release(ID3D11On12Device* This) {
155    return This->lpVtbl->Release(This);
156}
157/*** ID3D11On12Device methods ***/
158static inline HRESULT ID3D11On12Device_CreateWrappedResource(ID3D11On12Device* This,IUnknown *d3d12_resource,const D3D11_RESOURCE_FLAGS *flags,D3D12_RESOURCE_STATES input_state,D3D12_RESOURCE_STATES output_state,REFIID iid,void **d3d11_resource) {
159    return This->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource);
160}
161static inline void ID3D11On12Device_ReleaseWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) {
162    This->lpVtbl->ReleaseWrappedResources(This,resources,count);
163}
164static inline void ID3D11On12Device_AcquireWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) {
165    This->lpVtbl->AcquireWrappedResources(This,resources,count);
166}
167#endif
168#endif
169
170#endif
171
172
173#endif  /* __ID3D11On12Device_INTERFACE_DEFINED__ */
174
175HRESULT __stdcall  D3D11On12CreateDevice(IUnknown *device,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT feature_level_count,IUnknown *const *queues,UINT queue_count,UINT node_mask,ID3D11Device **d3d11_device,ID3D11DeviceContext **d3d11_immediate_context,D3D_FEATURE_LEVEL *obtained_feature_level);
176
177typedef HRESULT (__stdcall *PFN_D3D11ON12_CREATE_DEVICE)(IUnknown *device,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT feature_level_count,IUnknown *const *queues,UINT queue_count,UINT node_mask,ID3D11Device **d3d11_device,ID3D11DeviceContext **d3d11_immediate_context,D3D_FEATURE_LEVEL *obtained_feature_level);
178/*****************************************************************************
179 * ID3D11On12Device1 interface
180 */
181#ifndef __ID3D11On12Device1_INTERFACE_DEFINED__
182#define __ID3D11On12Device1_INTERFACE_DEFINED__
183
184DEFINE_GUID(IID_ID3D11On12Device1, 0xbdb64df4, 0xea2f, 0x4c70, 0xb8,0x61, 0xaa,0xab,0x12,0x58,0xbb,0x5d);
185#if defined(__cplusplus) && !defined(CINTERFACE)
186MIDL_INTERFACE("bdb64df4-ea2f-4c70-b861-aaab1258bb5d")
187ID3D11On12Device1 : public ID3D11On12Device
188{
189    virtual HRESULT STDMETHODCALLTYPE GetD3D12Device(
190        REFIID iid,
191        ID3D12Device **d3d12_device) = 0;
192
193};
194#ifdef __CRT_UUID_DECL
195__CRT_UUID_DECL(ID3D11On12Device1, 0xbdb64df4, 0xea2f, 0x4c70, 0xb8,0x61, 0xaa,0xab,0x12,0x58,0xbb,0x5d)
196#endif
197#else
198typedef struct ID3D11On12Device1Vtbl {
199    BEGIN_INTERFACE
200
201    /*** IUnknown methods ***/
202    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
203        ID3D11On12Device1 *This,
204        REFIID riid,
205        void **ppvObject);
206
207    ULONG (STDMETHODCALLTYPE *AddRef)(
208        ID3D11On12Device1 *This);
209
210    ULONG (STDMETHODCALLTYPE *Release)(
211        ID3D11On12Device1 *This);
212
213    /*** ID3D11On12Device methods ***/
214    HRESULT (STDMETHODCALLTYPE *CreateWrappedResource)(
215        ID3D11On12Device1 *This,
216        IUnknown *d3d12_resource,
217        const D3D11_RESOURCE_FLAGS *flags,
218        D3D12_RESOURCE_STATES input_state,
219        D3D12_RESOURCE_STATES output_state,
220        REFIID iid,
221        void **d3d11_resource);
222
223    void (STDMETHODCALLTYPE *ReleaseWrappedResources)(
224        ID3D11On12Device1 *This,
225        ID3D11Resource *const *resources,
226        UINT count);
227
228    void (STDMETHODCALLTYPE *AcquireWrappedResources)(
229        ID3D11On12Device1 *This,
230        ID3D11Resource *const *resources,
231        UINT count);
232
233    /*** ID3D11On12Device1 methods ***/
234    HRESULT (STDMETHODCALLTYPE *GetD3D12Device)(
235        ID3D11On12Device1 *This,
236        REFIID iid,
237        ID3D12Device **d3d12_device);
238
239    END_INTERFACE
240} ID3D11On12Device1Vtbl;
241
242interface ID3D11On12Device1 {
243    CONST_VTBL ID3D11On12Device1Vtbl* lpVtbl;
244};
245
246#ifdef COBJMACROS
247#ifndef WIDL_C_INLINE_WRAPPERS
248/*** IUnknown methods ***/
249#define ID3D11On12Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
250#define ID3D11On12Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
251#define ID3D11On12Device1_Release(This) (This)->lpVtbl->Release(This)
252/*** ID3D11On12Device methods ***/
253#define ID3D11On12Device1_CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource) (This)->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource)
254#define ID3D11On12Device1_ReleaseWrappedResources(This,resources,count) (This)->lpVtbl->ReleaseWrappedResources(This,resources,count)
255#define ID3D11On12Device1_AcquireWrappedResources(This,resources,count) (This)->lpVtbl->AcquireWrappedResources(This,resources,count)
256/*** ID3D11On12Device1 methods ***/
257#define ID3D11On12Device1_GetD3D12Device(This,iid,d3d12_device) (This)->lpVtbl->GetD3D12Device(This,iid,d3d12_device)
258#else
259/*** IUnknown methods ***/
260static inline HRESULT ID3D11On12Device1_QueryInterface(ID3D11On12Device1* This,REFIID riid,void **ppvObject) {
261    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
262}
263static inline ULONG ID3D11On12Device1_AddRef(ID3D11On12Device1* This) {
264    return This->lpVtbl->AddRef(This);
265}
266static inline ULONG ID3D11On12Device1_Release(ID3D11On12Device1* This) {
267    return This->lpVtbl->Release(This);
268}
269/*** ID3D11On12Device methods ***/
270static inline HRESULT ID3D11On12Device1_CreateWrappedResource(ID3D11On12Device1* This,IUnknown *d3d12_resource,const D3D11_RESOURCE_FLAGS *flags,D3D12_RESOURCE_STATES input_state,D3D12_RESOURCE_STATES output_state,REFIID iid,void **d3d11_resource) {
271    return This->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource);
272}
273static inline void ID3D11On12Device1_ReleaseWrappedResources(ID3D11On12Device1* This,ID3D11Resource *const *resources,UINT count) {
274    This->lpVtbl->ReleaseWrappedResources(This,resources,count);
275}
276static inline void ID3D11On12Device1_AcquireWrappedResources(ID3D11On12Device1* This,ID3D11Resource *const *resources,UINT count) {
277    This->lpVtbl->AcquireWrappedResources(This,resources,count);
278}
279/*** ID3D11On12Device1 methods ***/
280static inline HRESULT ID3D11On12Device1_GetD3D12Device(ID3D11On12Device1* This,REFIID iid,ID3D12Device **d3d12_device) {
281    return This->lpVtbl->GetD3D12Device(This,iid,d3d12_device);
282}
283#endif
284#endif
285
286#endif
287
288
289#endif  /* __ID3D11On12Device1_INTERFACE_DEFINED__ */
290
291/*****************************************************************************
292 * ID3D11On12Device2 interface
293 */
294#ifndef __ID3D11On12Device2_INTERFACE_DEFINED__
295#define __ID3D11On12Device2_INTERFACE_DEFINED__
296
297DEFINE_GUID(IID_ID3D11On12Device2, 0xdc90f331, 0x4740, 0x43fa, 0x86,0x6e, 0x67,0xf1,0x2c,0xb5,0x82,0x23);
298#if defined(__cplusplus) && !defined(CINTERFACE)
299MIDL_INTERFACE("dc90f331-4740-43fa-866e-67f12cb58223")
300ID3D11On12Device2 : public ID3D11On12Device1
301{
302    virtual HRESULT STDMETHODCALLTYPE UnwrapUnderlyingResource(
303        ID3D11Resource *d3d11_resource,
304        ID3D12CommandQueue *d3d12_command_queue,
305        REFIID iid,
306        void **d3d12_resource) = 0;
307
308    virtual HRESULT STDMETHODCALLTYPE ReturnUnderlyingResource(
309        ID3D11Resource *d3d11_resource,
310        UINT num_sync,
311        UINT64 *signal_values,
312        ID3D12Fence **fences) = 0;
313
314};
315#ifdef __CRT_UUID_DECL
316__CRT_UUID_DECL(ID3D11On12Device2, 0xdc90f331, 0x4740, 0x43fa, 0x86,0x6e, 0x67,0xf1,0x2c,0xb5,0x82,0x23)
317#endif
318#else
319typedef struct ID3D11On12Device2Vtbl {
320    BEGIN_INTERFACE
321
322    /*** IUnknown methods ***/
323    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
324        ID3D11On12Device2 *This,
325        REFIID riid,
326        void **ppvObject);
327
328    ULONG (STDMETHODCALLTYPE *AddRef)(
329        ID3D11On12Device2 *This);
330
331    ULONG (STDMETHODCALLTYPE *Release)(
332        ID3D11On12Device2 *This);
333
334    /*** ID3D11On12Device methods ***/
335    HRESULT (STDMETHODCALLTYPE *CreateWrappedResource)(
336        ID3D11On12Device2 *This,
337        IUnknown *d3d12_resource,
338        const D3D11_RESOURCE_FLAGS *flags,
339        D3D12_RESOURCE_STATES input_state,
340        D3D12_RESOURCE_STATES output_state,
341        REFIID iid,
342        void **d3d11_resource);
343
344    void (STDMETHODCALLTYPE *ReleaseWrappedResources)(
345        ID3D11On12Device2 *This,
346        ID3D11Resource *const *resources,
347        UINT count);
348
349    void (STDMETHODCALLTYPE *AcquireWrappedResources)(
350        ID3D11On12Device2 *This,
351        ID3D11Resource *const *resources,
352        UINT count);
353
354    /*** ID3D11On12Device1 methods ***/
355    HRESULT (STDMETHODCALLTYPE *GetD3D12Device)(
356        ID3D11On12Device2 *This,
357        REFIID iid,
358        ID3D12Device **d3d12_device);
359
360    /*** ID3D11On12Device2 methods ***/
361    HRESULT (STDMETHODCALLTYPE *UnwrapUnderlyingResource)(
362        ID3D11On12Device2 *This,
363        ID3D11Resource *d3d11_resource,
364        ID3D12CommandQueue *d3d12_command_queue,
365        REFIID iid,
366        void **d3d12_resource);
367
368    HRESULT (STDMETHODCALLTYPE *ReturnUnderlyingResource)(
369        ID3D11On12Device2 *This,
370        ID3D11Resource *d3d11_resource,
371        UINT num_sync,
372        UINT64 *signal_values,
373        ID3D12Fence **fences);
374
375    END_INTERFACE
376} ID3D11On12Device2Vtbl;
377
378interface ID3D11On12Device2 {
379    CONST_VTBL ID3D11On12Device2Vtbl* lpVtbl;
380};
381
382#ifdef COBJMACROS
383#ifndef WIDL_C_INLINE_WRAPPERS
384/*** IUnknown methods ***/
385#define ID3D11On12Device2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
386#define ID3D11On12Device2_AddRef(This) (This)->lpVtbl->AddRef(This)
387#define ID3D11On12Device2_Release(This) (This)->lpVtbl->Release(This)
388/*** ID3D11On12Device methods ***/
389#define ID3D11On12Device2_CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource) (This)->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource)
390#define ID3D11On12Device2_ReleaseWrappedResources(This,resources,count) (This)->lpVtbl->ReleaseWrappedResources(This,resources,count)
391#define ID3D11On12Device2_AcquireWrappedResources(This,resources,count) (This)->lpVtbl->AcquireWrappedResources(This,resources,count)
392/*** ID3D11On12Device1 methods ***/
393#define ID3D11On12Device2_GetD3D12Device(This,iid,d3d12_device) (This)->lpVtbl->GetD3D12Device(This,iid,d3d12_device)
394/*** ID3D11On12Device2 methods ***/
395#define ID3D11On12Device2_UnwrapUnderlyingResource(This,d3d11_resource,d3d12_command_queue,iid,d3d12_resource) (This)->lpVtbl->UnwrapUnderlyingResource(This,d3d11_resource,d3d12_command_queue,iid,d3d12_resource)
396#define ID3D11On12Device2_ReturnUnderlyingResource(This,d3d11_resource,num_sync,signal_values,fences) (This)->lpVtbl->ReturnUnderlyingResource(This,d3d11_resource,num_sync,signal_values,fences)
397#else
398/*** IUnknown methods ***/
399static inline HRESULT ID3D11On12Device2_QueryInterface(ID3D11On12Device2* This,REFIID riid,void **ppvObject) {
400    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
401}
402static inline ULONG ID3D11On12Device2_AddRef(ID3D11On12Device2* This) {
403    return This->lpVtbl->AddRef(This);
404}
405static inline ULONG ID3D11On12Device2_Release(ID3D11On12Device2* This) {
406    return This->lpVtbl->Release(This);
407}
408/*** ID3D11On12Device methods ***/
409static inline HRESULT ID3D11On12Device2_CreateWrappedResource(ID3D11On12Device2* This,IUnknown *d3d12_resource,const D3D11_RESOURCE_FLAGS *flags,D3D12_RESOURCE_STATES input_state,D3D12_RESOURCE_STATES output_state,REFIID iid,void **d3d11_resource) {
410    return This->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource);
411}
412static inline void ID3D11On12Device2_ReleaseWrappedResources(ID3D11On12Device2* This,ID3D11Resource *const *resources,UINT count) {
413    This->lpVtbl->ReleaseWrappedResources(This,resources,count);
414}
415static inline void ID3D11On12Device2_AcquireWrappedResources(ID3D11On12Device2* This,ID3D11Resource *const *resources,UINT count) {
416    This->lpVtbl->AcquireWrappedResources(This,resources,count);
417}
418/*** ID3D11On12Device1 methods ***/
419static inline HRESULT ID3D11On12Device2_GetD3D12Device(ID3D11On12Device2* This,REFIID iid,ID3D12Device **d3d12_device) {
420    return This->lpVtbl->GetD3D12Device(This,iid,d3d12_device);
421}
422/*** ID3D11On12Device2 methods ***/
423static inline HRESULT ID3D11On12Device2_UnwrapUnderlyingResource(ID3D11On12Device2* This,ID3D11Resource *d3d11_resource,ID3D12CommandQueue *d3d12_command_queue,REFIID iid,void **d3d12_resource) {
424    return This->lpVtbl->UnwrapUnderlyingResource(This,d3d11_resource,d3d12_command_queue,iid,d3d12_resource);
425}
426static inline HRESULT ID3D11On12Device2_ReturnUnderlyingResource(ID3D11On12Device2* This,ID3D11Resource *d3d11_resource,UINT num_sync,UINT64 *signal_values,ID3D12Fence **fences) {
427    return This->lpVtbl->ReturnUnderlyingResource(This,d3d11_resource,num_sync,signal_values,fences);
428}
429#endif
430#endif
431
432#endif
433
434
435#endif  /* __ID3D11On12Device2_INTERFACE_DEFINED__ */
436
437/* Begin additional prototypes for all interfaces */
438
439
440/* End additional prototypes */
441
442#ifdef __cplusplus
443}
444#endif
445
446#endif /* __d3d11on12_h__ */