#[allow(unused_imports)] use crate::*;
#[allow(unused_imports)] use crate::d3d::*;
use winapi::shared::basetsd::*;
use winapi::shared::guiddef::*;
use winapi::shared::minwindef::*;
use winapi::shared::ntdef::*;
use winapi::um::d3dcommon::*;
use winapi::um::d3dcompiler::*;
use winapi::um::d3d11shader::*;
mod constructors; pub use constructors::*;
mod compile_; pub use compile_::*;
mod archive; pub use archive::*;
mod parts; pub use parts::*;
mod reflection; pub use reflection::*;
mod debugging; pub use debugging::*;
mod blobs; pub use blobs::*;
mod d3d11_methods; pub use d3d11_methods::*;
#[allow(non_snake_case)] #[allow(clippy::type_complexity)] pub struct Compiler {
D3DCompile: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
pSourceName: LPCSTR,
pDefines: *const D3D_SHADER_MACRO,
pInclude: *mut ID3DInclude,
pEntrypoint: LPCSTR,
pTarget: LPCSTR,
Flags1: UINT,
Flags2: UINT,
ppCode: *mut *mut ID3DBlob,
ppErrorMsgs: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DCompile2: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
pSourceName: LPCSTR,
pDefines: *const D3D_SHADER_MACRO,
pInclude: *mut ID3DInclude,
pEntrypoint: LPCSTR,
pTarget: LPCSTR,
Flags1: UINT,
Flags2: UINT,
SecondaryDataFlags: UINT,
pSecondaryData: LPCVOID,
SecondaryDataSize: SIZE_T,
ppCode: *mut *mut ID3DBlob,
ppErrorMsgs: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DCompileFromFile: Option<unsafe extern "system" fn (
pFileName: LPCWSTR,
pDefines: *const D3D_SHADER_MACRO,
pInclude: *mut ID3DInclude,
pEntrypoint: LPCSTR,
pTarget: LPCSTR,
Flags1: UINT,
Flags2: UINT,
ppCode: *mut *mut ID3DBlob,
ppErrorMsgs: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DCompressShaders: Option<unsafe extern "system" fn (
uNumShaders: UINT,
pShaderData: *mut D3D_SHADER_DATA,
uFlags: UINT,
ppCompressedData: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DCreateBlob: Option<unsafe extern "system" fn (
Size: SIZE_T,
ppBlob: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DCreateFunctionLinkingGraph: Option<unsafe extern "system" fn (
uFlags: UINT,
ppFunctionLinkingGraph: *mut *mut ID3D11FunctionLinkingGraph,
) -> HRESULT>,
D3DCreateLinker: Option<unsafe extern "system" fn (
ppLinker: *mut *mut ID3D11Linker,
) -> HRESULT>,
D3DDecompressShaders: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
uNumShaders: UINT,
uStartIndex: UINT,
pIndices: *mut UINT,
uFlags: UINT,
ppShaders: *mut *mut ID3DBlob,
pTotalShaders: *mut UINT,
) -> HRESULT>,
D3DDisassemble: Option<unsafe extern "system" fn(
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
Flags: UINT,
szComments: LPCSTR,
ppDisassembly: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DDisassembleRegion: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
Flags: UINT,
szComments: LPCSTR,
StartByteOffset: SIZE_T,
NumInsts: SIZE_T,
pFinishByteOffset: *mut SIZE_T,
ppDisassembly: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DGetBlobPart: Option<unsafe extern "system" fn(
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
Part: D3D_BLOB_PART,
Flags: UINT,
ppPart: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DGetDebugInfo: Option<unsafe extern "system" fn(
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
ppSignatureBlob: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DGetInputAndOutputSignatureBlob: Option<unsafe extern "system" fn(
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
ppSignatureBlob: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DGetInputSignatureBlob: Option<unsafe extern "system" fn(
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
ppSignatureBlob: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DGetOutputSignatureBlob: Option<unsafe extern "system" fn(
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
ppSignatureBlob: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DGetTraceInstructionOffsets: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
Flags: UINT,
StartInstIndex: SIZE_T,
NumInsts: SIZE_T,
pOffsets: *mut SIZE_T,
pTotalInsts: *mut SIZE_T,
) -> HRESULT>,
D3DLoadModule: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
cbSrcDataSize: SIZE_T,
ppModule: *mut *mut ID3D11Module,
) -> HRESULT>,
D3DPreprocess: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
pSourceName: LPCSTR,
pDefines: *const D3D_SHADER_MACRO,
pInclude: *mut ID3DInclude,
ppCodeText: *mut *mut ID3DBlob,
ppErrorMsgs: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DReadFileToBlob: Option<unsafe extern "system" fn (
pFileName: LPCWSTR,
ppContents: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DReflect: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
pInterface: REFIID,
ppReflector: *mut LPVOID,
) -> HRESULT>,
D3DReflectLibrary: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
riid: REFIID,
ppReflector: *mut LPVOID,
) -> HRESULT>,
D3DSetBlobPart: Option<unsafe extern "system" fn (
pSrcData: LPCVOID,
SrcDataSize: SIZE_T,
Part: D3D_BLOB_PART,
Flags: UINT,
pPart: LPCVOID,
PartSize: SIZE_T,
ppNewShader: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DStripShader: Option<unsafe extern "system" fn (
pShaderBytecode: LPCVOID ,
BytecodeLength: SIZE_T,
uStripFlags: UINT,
ppStrippedBlob: *mut *mut ID3DBlob,
) -> HRESULT>,
D3DWriteBlobToFile: Option<unsafe extern "system" fn (
pBlob: *mut ID3DBlob,
pFileName: LPCWSTR,
bOverwrite: BOOL,
) -> HRESULT>,
}
#[test] fn d3dcompiler_nn() {
for nn in [
33, 34, 35, 36, 37, 38, 38, 40, 41, 42, 43, 47,
].iter().copied() {
println!("d3dcompiler_{}.dll: {}", nn, Compiler::load_system(nn).is_ok());
}
}
#[test] fn d3dcompiler_47() {
let _d3dc47 = Compiler::load_system(47).unwrap();
}
#[should_panic] #[test] fn d3dcompiler_48() {
let _d3dc48 = Compiler::load_system(48).unwrap();
}