Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  d3dcompiler.rs   Sprache: unbekannt

 
// 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.
use ctypes::c_void;
use shared::basetsd::SIZE_T;
use shared::guiddef::REFIID;
use shared::minwindef::{BOOL, DWORD, LPCVOID, LPVOID, UINT};
use um::d3d11shader::{ID3D11FunctionLinkingGraph, ID3D11Linker, ID3D11Module};
use um::d3dcommon::{D3D_SHADER_MACRO, ID3DBlob, ID3DInclude};
use um::winnt::{HRESULT, LPCSTR, LPCWSTR};
pub const D3DCOMPILER_DLL: &'static str = "d3dcompiler_47.dll";
pub const D3D_COMPILER_VERSION: DWORD = 47;
extern "system" {
    pub fn D3DReadFileToBlob(
        pFileName: LPCWSTR,
        ppContents: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DWriteBlobToFile(
        pBlob: *mut ID3DBlob,
        pFileName: LPCWSTR,
        bOverwrite: BOOL,
    ) -> HRESULT;
}
pub const D3DCOMPILE_DEBUG: DWORD = 1 << 0;
pub const D3DCOMPILE_SKIP_VALIDATION: DWORD = 1 << 1;
pub const D3DCOMPILE_SKIP_OPTIMIZATION: DWORD = 1 << 2;
pub const D3DCOMPILE_PACK_MATRIX_ROW_MAJOR: DWORD = 1 << 3;
pub const D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR: DWORD = 1 << 4;
pub const D3DCOMPILE_PARTIAL_PRECISION: DWORD = 1 << 5;
pub const D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT: DWORD = 1 << 6;
pub const D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT: DWORD = 1 << 7;
pub const D3DCOMPILE_NO_PRESHADER: DWORD = 1 << 8;
pub const D3DCOMPILE_AVOID_FLOW_CONTROL: DWORD = 1 << 9;
pub const D3DCOMPILE_PREFER_FLOW_CONTROL: DWORD = 1 << 10;
pub const D3DCOMPILE_ENABLE_STRICTNESS: DWORD = 1 << 11;
pub const D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY: DWORD = 1 << 12;
pub const D3DCOMPILE_IEEE_STRICTNESS: DWORD = 1 << 13;
pub const D3DCOMPILE_OPTIMIZATION_LEVEL0: DWORD = 1 << 14;
pub const D3DCOMPILE_OPTIMIZATION_LEVEL1: DWORD = 0;
pub const D3DCOMPILE_OPTIMIZATION_LEVEL2: DWORD = (1 << 14) | (1 << 15);
pub const D3DCOMPILE_OPTIMIZATION_LEVEL3: DWORD = 1 << 15;
pub const D3DCOMPILE_RESERVED16: DWORD = 1 << 16;
pub const D3DCOMPILE_RESERVED17: DWORD = 1 << 17;
pub const D3DCOMPILE_WARNINGS_ARE_ERRORS: DWORD = 1 << 18;
pub const D3DCOMPILE_RESOURCES_MAY_ALIAS: DWORD = 1 << 19;
pub const D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES: DWORD = 1 << 20;
pub const D3DCOMPILE_ALL_RESOURCES_BOUND: DWORD = 1 << 21;
pub const D3DCOMPILE_EFFECT_CHILD_EFFECT: DWORD = 1 << 0;
pub const D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS: DWORD = 1 << 1;
pub const D3D_COMPILE_STANDARD_FILE_INCLUDE: *mut ID3DInclude = 1 as *mut ID3DInclude;
extern "system" {
    pub fn D3DCompile(
        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;
}
pub const D3DCOMPILE_SECDATA_MERGE_UAV_SLOTS: DWORD = 0x00000001;
pub const D3DCOMPILE_SECDATA_PRESERVE_TEMPLATE_SLOTS: DWORD = 0x00000002;
pub const D3DCOMPILE_SECDATA_REQUIRE_TEMPLATE_MATCH: DWORD = 0x00000004;
extern "system" {
    pub fn D3DCompile2(
        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;
    pub fn D3DCompileFromFile(
        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;
    pub fn D3DPreprocess(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        pSourceName: LPCSTR,
        pDefines: *const D3D_SHADER_MACRO,
        pInclude: *mut ID3DInclude,
        ppCodeText: *mut *mut ID3DBlob,
        ppErrorMsgs: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DGetDebugInfo(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        ppDebugInfo: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DReflect(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        pInterface: REFIID,
        ppReflector: *mut *mut c_void,
    ) -> HRESULT;
    pub fn D3DReflectLibrary(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        riid: REFIID,
        ppReflector: *mut LPVOID,
    ) -> HRESULT;
}
pub const D3D_DISASM_ENABLE_COLOR_CODE: DWORD = 0x00000001;
pub const D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS: DWORD = 0x00000002;
pub const D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING: DWORD = 0x00000004;
pub const D3D_DISASM_ENABLE_INSTRUCTION_CYCLE: DWORD = 0x00000008;
pub const D3D_DISASM_DISABLE_DEBUG_INFO: DWORD = 0x00000010;
pub const D3D_DISASM_ENABLE_INSTRUCTION_OFFSET: DWORD = 0x00000020;
pub const D3D_DISASM_INSTRUCTION_ONLY: DWORD = 0x00000040;
pub const D3D_DISASM_PRINT_HEX_LITERALS: DWORD = 0x00000080;
extern "system" {
    pub fn D3DDisassemble(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        Flags: UINT,
        szComments: LPCSTR,
        ppDisassembly: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DDisassembleRegion(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        Flags: UINT,
        szComments: LPCSTR,
        StartByteOffset: SIZE_T,
        NumInsts: SIZE_T,
        pFinishByteOffset: *mut SIZE_T,
        ppDisassembly: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DCreateLinker(
        ppLinker: *mut *mut ID3D11Linker,
    ) -> HRESULT;
    pub fn D3DLoadModule(
        pSrcData: LPCVOID,
        cbSrcDataSize: SIZE_T,
        ppModule: *mut *mut ID3D11Module,
    ) -> HRESULT;
    pub fn D3DCreateFunctionLinkingGraph(
        uFlags: UINT,
        ppFunctionLinkingGraph: *mut *mut ID3D11FunctionLinkingGraph,
    ) -> HRESULT;
}
pub const D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE: DWORD = 0x00000001;
extern "system" {
    pub fn D3DGetTraceInstructionOffsets(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        Flags: UINT,
        StartInstIndex: SIZE_T,
        NumInsts: SIZE_T,
        pOffsets: *mut SIZE_T,
        pTotalInsts: *mut SIZE_T,
    ) -> HRESULT;
    pub fn D3DGetInputSignatureBlob(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        ppSignatureBlob: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DGetOutputSignatureBlob(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        ppSignatureBlob: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DGetInputAndOutputSignatureBlob(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        ppSignatureBlob: *mut *mut ID3DBlob,
    ) -> HRESULT;
}
ENUM!{enum D3DCOMPILER_STRIP_FLAGS {
    D3DCOMPILER_STRIP_REFLECTION_DATA = 0x00000001,
    D3DCOMPILER_STRIP_DEBUG_INFO = 0x00000002,
    D3DCOMPILER_STRIP_TEST_BLOBS = 0x00000004,
    D3DCOMPILER_STRIP_PRIVATE_DATA = 0x00000008,
    D3DCOMPILER_STRIP_ROOT_SIGNATURE = 0x00000010,
    D3DCOMPILER_STRIP_FORCE_DWORD = 0x7fffffff,
}}
extern "system" {
    pub fn D3DStripShader(
        pShaderBytecode: LPCVOID,
        BytecodeLength: SIZE_T,
        uStripFlags: UINT,
        ppStrippedBlob: *mut *mut ID3DBlob,
    ) -> HRESULT;
}
ENUM!{enum D3D_BLOB_PART {
    D3D_BLOB_INPUT_SIGNATURE_BLOB,
    D3D_BLOB_OUTPUT_SIGNATURE_BLOB,
    D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB,
    D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB,
    D3D_BLOB_ALL_SIGNATURE_BLOB,
    D3D_BLOB_DEBUG_INFO,
    D3D_BLOB_LEGACY_SHADER,
    D3D_BLOB_XNA_PREPASS_SHADER,
    D3D_BLOB_XNA_SHADER,
    D3D_BLOB_PDB,
    D3D_BLOB_PRIVATE_DATA,
    D3D_BLOB_ROOT_SIGNATURE,
    D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000,
    D3D_BLOB_TEST_COMPILE_DETAILS,
    D3D_BLOB_TEST_COMPILE_PERF,
    D3D_BLOB_TEST_COMPILE_REPORT,
}}
extern "system" {
    pub fn D3DGetBlobPart(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        Part: D3D_BLOB_PART,
        Flags: UINT,
        ppPart: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DSetBlobPart(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        Part: D3D_BLOB_PART,
        Flags: UINT,
        pPart: LPCVOID,
        PartSize: SIZE_T,
        ppNewShader: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DCreateBlob(
        Size: SIZE_T,
        ppBlob: *mut *mut ID3DBlob,
    ) -> HRESULT;
}
STRUCT!{struct D3D_SHADER_DATA {
    pBytecode: LPCVOID,
    BytecodeLength: SIZE_T,
}}
extern "system" {
    pub fn D3DCompressShaders(
        uNumShaders: UINT,
        pShaderData: *mut D3D_SHADER_DATA,
        uFlags: UINT,
        ppCompressedData: *mut *mut ID3DBlob,
    ) -> HRESULT;
    pub fn D3DDecompressShaders(
        pSrcData: LPCVOID,
        SrcDataSize: SIZE_T,
        uNumShaders: UINT,
        uStartIndex: UINT,
        pIndices: *mut UINT,
        uFlags: UINT,
        ppShaders: *mut *mut ID3DBlob,
        pTotalShaders: *mut UINT,
    ) -> HRESULT;
    // pub fn D3DDisassemble10Effect(
    //     pEffect: *mut ID3D10Effect,
    //     Flags: UINT,
    //     ppDisassembly: *mut *mut ID3DBlob,
    // ) -> HRESULT;
}

[ Dauer der Verarbeitung: 0.22 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge