Source code

Revision control

Copy as Markdown

Other Tools

// 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}