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