예제 #1
0
 public static extern int D3DGetDebugInfo([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, ID3DBlob **ppDebugInfo);
예제 #2
0
 public static extern int D3DDisassemble11Trace([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("ID3D11ShaderTrace *")] ID3D11ShaderTrace *pTrace, [NativeTypeName("UINT")] uint StartStep, [NativeTypeName("UINT")] uint NumSteps, [NativeTypeName("UINT")] uint Flags, [NativeTypeName("struct ID3D10Blob **")] ID3DBlob **ppDisassembly);
예제 #3
0
 public static extern int D3D10DisassembleEffect([NativeTypeName("ID3D10Effect *")] ID3D10Effect *pEffect, [NativeTypeName("BOOL")] int EnableColorCode, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppDisassembly);
 public static extern int D3D10DisassembleShader([NativeTypeName("const void *")] void *pShader, [NativeTypeName("SIZE_T")] nuint BytecodeLength, [NativeTypeName("BOOL")] int EnableColorCode, [NativeTypeName("LPCSTR")] sbyte *pComments, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppDisassembly);
 public static extern int D3D10GetInputAndOutputSignatureBlob([NativeTypeName("const void *")] void *pShaderBytecode, [NativeTypeName("SIZE_T")] nuint BytecodeLength, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppSignatureBlob);
예제 #6
0
 public int CreateModuleInstance([NativeTypeName("struct ID3D11ModuleInstance **")] ID3D11ModuleInstance **ppModuleInstance, [NativeTypeName("ID3DBlob **")] ID3DBlob **ppErrorBuffer)
 {
     return(((delegate * unmanaged <ID3D11FunctionLinkingGraph *, ID3D11ModuleInstance **, ID3DBlob **, int>)(lpVtbl[3]))((ID3D11FunctionLinkingGraph *)Unsafe.AsPointer(ref this), ppModuleInstance, ppErrorBuffer));
 }
예제 #7
0
 public int GenerateHlsl([NativeTypeName("UINT")] uint uFlags, [NativeTypeName("ID3DBlob **")] ID3DBlob **ppBuffer)
 {
     return(((delegate * unmanaged <ID3D11FunctionLinkingGraph *, uint, ID3DBlob **, int>)(lpVtbl[10]))((ID3D11FunctionLinkingGraph *)Unsafe.AsPointer(ref this), uFlags, ppBuffer));
 }
예제 #8
0
 public static extern int D3DCreateBlob([NativeTypeName("SIZE_T")] nuint Size, ID3DBlob **ppBlob);
 public static extern int D3D10CreateBlob([NativeTypeName("SIZE_T")] nuint NumBytes, [NativeTypeName("LPD3D10BLOB *")] ID3DBlob **ppBuffer);
예제 #10
0
 public static extern int D3DStripShader([NativeTypeName("LPCVOID")] void *pShaderBytecode, [NativeTypeName("SIZE_T")] nuint BytecodeLength, [NativeTypeName("UINT")] uint uStripFlags, ID3DBlob **ppStrippedBlob);
예제 #11
0
 public static extern int D3DGetBlobPart([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, D3D_BLOB_PART Part, [NativeTypeName("UINT")] uint Flags, ID3DBlob **ppPart);
예제 #12
0
 public static extern int D3DGetInputAndOutputSignatureBlob([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, ID3DBlob **ppSignatureBlob);
예제 #13
0
 public static extern int D3DDisassembleRegion([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("UINT")] uint Flags, [NativeTypeName("LPCSTR")] sbyte *szComments, [NativeTypeName("SIZE_T")] nuint StartByteOffset, [NativeTypeName("SIZE_T")] nuint NumInsts, [NativeTypeName("SIZE_T *")] nuint *pFinishByteOffset, ID3DBlob **ppDisassembly);
예제 #14
0
 public static extern int D3DDisassemble([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("UINT")] uint Flags, [NativeTypeName("LPCSTR")] sbyte *szComments, ID3DBlob **ppDisassembly);
 public HRESULT GetLastError(ID3DBlob **ppErrorBuffer)
 {
     return(((delegate * unmanaged <ID3D11FunctionLinkingGraph *, ID3DBlob **, int>)(lpVtbl[9]))((ID3D11FunctionLinkingGraph *)Unsafe.AsPointer(ref this), ppErrorBuffer));
 }
예제 #16
0
 public int GetCachedBlob([NativeTypeName("ID3DBlob **")] ID3DBlob **ppBlob)
 {
     return(((delegate * stdcall <ID3D12PipelineState *, ID3DBlob **, int>)(lpVtbl[8]))((ID3D12PipelineState *)Unsafe.AsPointer(ref this), ppBlob));
 }
예제 #17
0
        public static int D3D12SerializeVersionedRootSignature([NativeTypeName("const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *")] D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pRootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION MaxVersion, [NativeTypeName("ID3DBlob **")] ID3DBlob **ppBlob, [NativeTypeName("ID3DBlob **")] ID3DBlob **ppErrorBlob)
        {
            if (ppErrorBlob != null)
            {
                *ppErrorBlob = null;
            }

            switch (MaxVersion)
            {
            case D3D_ROOT_SIGNATURE_VERSION_1_0:
                switch (pRootSignatureDesc->Version)
                {
                case D3D_ROOT_SIGNATURE_VERSION_1_0:
                    return(D3D12SerializeRootSignature(&pRootSignatureDesc->Anonymous.Desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob));

                case D3D_ROOT_SIGNATURE_VERSION_1_1:
                {
                    int hr = S_OK;
                    ref readonly D3D12_ROOT_SIGNATURE_DESC1 desc_1_1 = ref pRootSignatureDesc->Anonymous.Desc_1_1;

                    nuint ParametersSize = (uint)sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters;
                    void *pParameters    = ((ulong)ParametersSize > 0) ? HeapAlloc(GetProcessHeap(), 0, ParametersSize) : null;

                    if ((ulong)ParametersSize > 0 && pParameters == null)
                    {
                        hr = E_OUTOFMEMORY;
                    }

                    var pParameters_1_0 = (D3D12_ROOT_PARAMETER *)pParameters;

                    if (SUCCEEDED(hr))
                    {
                        for (uint n = 0; n < desc_1_1.NumParameters; n++)
                        {
                            Debug.Assert((long)ParametersSize == (sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters));

                            pParameters_1_0[n].ParameterType    = desc_1_1.pParameters[n].ParameterType;
                            pParameters_1_0[n].ShaderVisibility = desc_1_1.pParameters[n].ShaderVisibility;

                            switch (desc_1_1.pParameters[n].ParameterType)
                            {
                            case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS:
                                pParameters_1_0[n].Anonymous.Constants.Num32BitValues = desc_1_1.pParameters[n].Anonymous.Constants.Num32BitValues;
                                pParameters_1_0[n].Anonymous.Constants.RegisterSpace  = desc_1_1.pParameters[n].Anonymous.Constants.RegisterSpace;
                                pParameters_1_0[n].Anonymous.Constants.ShaderRegister = desc_1_1.pParameters[n].Anonymous.Constants.ShaderRegister;
                                break;

                            case D3D12_ROOT_PARAMETER_TYPE_CBV:
                            case D3D12_ROOT_PARAMETER_TYPE_SRV:
                            case D3D12_ROOT_PARAMETER_TYPE_UAV:
                                pParameters_1_0[n].Anonymous.Descriptor.RegisterSpace  = desc_1_1.pParameters[n].Anonymous.Descriptor.RegisterSpace;
                                pParameters_1_0[n].Anonymous.Descriptor.ShaderRegister = desc_1_1.pParameters[n].Anonymous.Descriptor.ShaderRegister;
                                break;

                            case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE:
                                ref readonly D3D12_ROOT_DESCRIPTOR_TABLE1 table_1_1 = ref desc_1_1.pParameters[n].Anonymous.DescriptorTable;
예제 #18
0
 public static extern HRESULT SerializeVersionedRootSignature(
     [In] D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pRootSignature,
     [Out] ID3DBlob **ppBlob,
     [Out, Optional] ID3DBlob **ppErrorBlob
     );
예제 #19
0
 public int GetLastError([NativeTypeName("ID3DBlob **")] ID3DBlob **ppErrorBuffer)
 {
     return(((delegate * unmanaged <ID3D11FunctionLinkingGraph *, ID3DBlob **, int>)(lpVtbl[9]))((ID3D11FunctionLinkingGraph *)Unsafe.AsPointer(ref this), ppErrorBuffer));
 }
예제 #20
0
 public static extern HRESULT D3DCompile([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("LPCSTR")] sbyte *pSourceName, [NativeTypeName("const D3D_SHADER_MACRO *")] D3D_SHADER_MACRO *pDefines, [NativeTypeName("const ID3DInclude *")] void *pInclude, [NativeTypeName("LPCSTR")] sbyte *pEntrypoint, [NativeTypeName("LPCSTR")] sbyte *pTarget, uint Flags1, uint Flags2, ID3DBlob **ppCode, ID3DBlob **ppErrorMsgs);
 public static extern int D3D10CompileShader([NativeTypeName("LPCSTR")] sbyte *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("LPCSTR")] sbyte *pFileName, [NativeTypeName("const D3D10_SHADER_MACRO *")] D3D_SHADER_MACRO *pDefines, [NativeTypeName("LPD3D10INCLUDE")] ID3DInclude *pInclude, [NativeTypeName("LPCSTR")] sbyte *pFunctionName, [NativeTypeName("LPCSTR")] sbyte *pProfile, [NativeTypeName("UINT")] uint Flags, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppShader, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppErrorMsgs);
예제 #22
0
 public static extern HRESULT D3DSetBlobPart([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, D3D_BLOB_PART Part, uint Flags, [NativeTypeName("LPCVOID")] void *pPart, [NativeTypeName("SIZE_T")] nuint PartSize, ID3DBlob **ppNewShader);
 public static extern int D3D10PreprocessShader([NativeTypeName("LPCSTR")] sbyte *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("LPCSTR")] sbyte *pFileName, [NativeTypeName("const D3D10_SHADER_MACRO *")] D3D_SHADER_MACRO *pDefines, [NativeTypeName("LPD3D10INCLUDE")] ID3DInclude *pInclude, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppShaderText, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppErrorMsgs);
예제 #24
0
 public static extern HRESULT D3D12SerializeVersionedRootSignature([NativeTypeName("const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *")] D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pRootSignature, ID3DBlob **ppBlob, ID3DBlob **ppErrorBlob);
 public static extern int D3D10GetShaderDebugInfo([NativeTypeName("const void *")] void *pShaderBytecode, [NativeTypeName("SIZE_T")] nuint BytecodeLength, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppDebugInfo);
예제 #26
0
 public HRESULT GetCachedBlob(ID3DBlob **ppBlob)
 {
     return(((delegate * unmanaged[Stdcall] < ID3D12PipelineState *, ID3DBlob **, int >)(lpVtbl[8]))((ID3D12PipelineState *)Unsafe.AsPointer(ref this), ppBlob));
 }
예제 #27
0
 public static extern int D3D10CompileEffectFromMemory([NativeTypeName("void *")] void *pData, [NativeTypeName("SIZE_T")] nuint DataLength, [NativeTypeName("LPCSTR")] sbyte *pSrcFileName, [NativeTypeName("const D3D10_SHADER_MACRO *")] D3D_SHADER_MACRO *pDefines, [NativeTypeName("ID3D10Include *")] ID3DInclude *pInclude, [NativeTypeName("UINT")] uint HLSLFlags, [NativeTypeName("UINT")] uint FXFlags, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppCompiledEffect, [NativeTypeName("ID3D10Blob **")] ID3DBlob **ppErrors);
 public HRESULT GenerateHlsl(uint uFlags, ID3DBlob **ppBuffer)
 {
     return(((delegate * unmanaged <ID3D11FunctionLinkingGraph *, uint, ID3DBlob **, int>)(lpVtbl[10]))((ID3D11FunctionLinkingGraph *)Unsafe.AsPointer(ref this), uFlags, ppBuffer));
 }
 public int Link([NativeTypeName("struct ID3D11ModuleInstance *")] ID3D11ModuleInstance *pEntry, [NativeTypeName("LPCSTR")] sbyte *pEntryName, [NativeTypeName("LPCSTR")] sbyte *pTargetName, [NativeTypeName("UINT")] uint uFlags, [NativeTypeName("ID3DBlob **")] ID3DBlob **ppShaderBlob, [NativeTypeName("ID3DBlob **")] ID3DBlob **ppErrorBuffer)
 {
     return(((delegate * stdcall <ID3D11Linker *, ID3D11ModuleInstance *, sbyte *, sbyte *, uint, ID3DBlob **, ID3DBlob **, int>)(lpVtbl[3]))((ID3D11Linker *)Unsafe.AsPointer(ref this), pEntry, pEntryName, pTargetName, uFlags, ppShaderBlob, ppErrorBuffer));
 }
예제 #30
0
 public static extern int D3DPreprocess([NativeTypeName("LPCVOID")] void *pSrcData, [NativeTypeName("SIZE_T")] nuint SrcDataSize, [NativeTypeName("LPCSTR")] sbyte *pSourceName, [NativeTypeName("const D3D_SHADER_MACRO *")] D3D_SHADER_MACRO *pDefines, ID3DInclude *pInclude, ID3DBlob **ppCodeText, ID3DBlob **ppErrorMsgs);