winapi_ui_automation/um/
d3d11on12.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! Mappings for the content of d3d11on12.h
7use ctypes::c_void;
8use shared::guiddef::IID;
9use shared::minwindef::UINT;
10use um::d3d11::{ID3D11Device, ID3D11DeviceContext, ID3D11Resource};
11use um::d3d12::D3D12_RESOURCE_STATES;
12use um::d3dcommon::D3D_FEATURE_LEVEL;
13use um::unknwnbase::{IUnknown, IUnknownVtbl};
14use um::winnt::HRESULT;
15FN!{stdcall PFN_D3D11ON12_CREATE_DEVICE(
16    *mut IUnknown,
17    UINT,
18    *const D3D_FEATURE_LEVEL,
19    UINT,
20    *mut *mut IUnknown,
21    UINT,
22    UINT,
23    *mut *mut ID3D11Device,
24    *mut *mut ID3D11DeviceContext,
25    *mut D3D_FEATURE_LEVEL,
26) -> HRESULT}
27extern "system" {
28    pub fn D3D11On12CreateDevice(
29        pDevice: *mut IUnknown,
30        Flags: UINT,
31        pFeatureLevels: *const D3D_FEATURE_LEVEL,
32        FeatureLevels: UINT,
33        ppCommandQueues: *mut *mut IUnknown,
34        NumQueues: UINT,
35        NodeMask: UINT,
36        ppDevice: *mut *mut ID3D11Device,
37        ppImmediateContext: *mut *mut ID3D11DeviceContext,
38        pChosenFeatureLevel: *mut D3D_FEATURE_LEVEL,
39    ) -> HRESULT;
40}
41STRUCT!{struct D3D11_RESOURCE_FLAGS {
42    BindFlags: UINT,
43    MiscFlags: UINT,
44    CPUAccessFlags: UINT,
45    StructureByteStride: UINT,
46}}
47RIDL!{#[uuid(0x85611e73, 0x70a9, 0x490e, 0x96, 0x14, 0xa9, 0xe3, 0x02, 0x77, 0x79, 0x04)]
48interface ID3D11On12Device(ID3D11On12DeviceVtbl): IUnknown(IUnknownVtbl) {
49    fn CreateWrappedResource(
50        pResource12: *mut IUnknown,
51        pFlags11: *const D3D11_RESOURCE_FLAGS,
52        InState: D3D12_RESOURCE_STATES,
53        OutState: D3D12_RESOURCE_STATES,
54        riid: *const IID,
55        ppResource11: *mut *mut c_void,
56    ) -> HRESULT,
57    fn ReleaseWrappedResources(
58        ppResources: *mut *mut ID3D11Resource,
59        NumResources: UINT,
60    ) -> (),
61    fn AcquireWrappedResources(
62        ppResources: *mut *mut ID3D11Resource,
63        NumResources: UINT,
64    ) -> (),
65}}
66DEFINE_GUID!{IID_ID3D11On12Device,
67    0x85611e73, 0x70a9, 0x490e, 0x96, 0x14, 0xa9, 0xe3, 0x02, 0x77, 0x79, 0x04}