Função D3DX11CompileFromMemory
Observação
A biblioteca de utilitários D3DX (D3DX 9, D3DX 10 e D3DX 11) foi preterida para Windows 8 e não tem suporte para aplicativos da Windows Store.
Observação
Em vez de usar essa função, recomendamos que você compile offline usando o compilador de linha de comando Fxc.exe ou use uma das APIs de compilação HLSL, como a API D3DCompile .
Compile um sombreador ou um efeito carregado na memória.
Sintaxe
HRESULT D3DX11CompileFromMemory(
_In_ LPCSTR pSrcData,
_In_ SIZE_T SrcDataLen,
_In_ LPCSTR pFileName,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX11ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
Parâmetros
-
pSrcData [in]
-
Tipo: LPCSTR
Ponteiro para o sombreador na memória.
-
SrcDataLen [in]
-
Tipo: SIZE_T
Tamanho do sombreador na memória.
-
pFileName [in]
-
Tipo: LPCSTR
O nome do arquivo que contém o código do sombreador.
-
pDefines [in]
-
Tipo: const D3D10_SHADER_MACRO*
Opcional. Ponteiro para uma matriz de definições de macro (consulte D3D10_SHADER_MACRO). A última estrutura na matriz serve como terminador e deve ter todos os membros definidos como 0. Se não for usado, defina pDefines como NULL.
-
pInclude [in]
-
Tipo: LPD3D10INCLUDE
Opcional. Ponteiro para uma interface para lidar com arquivos de inclusão. Definir isso como NULL causará um erro de compilação se um sombreador contiver um #include.
-
pFunctionName [in]
-
Tipo: LPCSTR
Nome da função de ponto de entrada do sombreador em que a execução do sombreador começa. Quando você compila um efeito, D3DX11CompileFromMemory ignora pFunctionName; Recomendamos que você defina pFunctionName como NULL porque é uma boa prática de programação definir um parâmetro de ponteiro como NULL se a função chamada não o usar.
-
pProfile [in]
-
Tipo: LPCSTR
Uma cadeia de caracteres que especifica o modelo de sombreador; pode ser qualquer perfil no modelo de sombreador 2, modelo de sombreador 3, modelo de sombreador 4 ou modelo de sombreador 5. O perfil também pode ser para o tipo de efeito (por exemplo, fx_4_1).
-
Flags1 [in]
-
Tipo: UINT
Sinalizadores de compilação do sombreador.
-
Flags2 [in]
-
Tipo: UINT
Sinalizadores de compilação de efeito. Quando você compila um sombreador e não um arquivo de efeito, D3DX11CompileFromMemory ignora Flags2; Recomendamos que você defina Flags2 como zero porque é uma boa prática de programação definir um parâmetro não pontudo como zero se a função chamada não o usar.
-
pPump [in]
-
Tipo: ID3DX11ThreadPump*
Um ponteiro para uma interface de bomba de thread (consulte Interface ID3DX11ThreadPump). Use NULL para especificar que essa função não deve retornar até que seja concluída.
-
ppShader [out]
-
Tipo: ID3D10Blob**
Um ponteiro para a memória que contém o sombreador compilado, bem como qualquer depuração inserida e informações de tabela de símbolos.
-
ppErrorMsgs [out]
-
Tipo: ID3D10Blob**
Um ponteiro para a memória que contém uma listagem de erros e avisos que ocorreram durante a compilação. Esses erros e avisos são idênticos à saída de depuração de um depurador.
-
pHResult [out]
-
Tipo: HRESULT*
Um ponteiro para o valor retornado. Pode ser NULL. Se pPump não for NULL, pHResult deverá ser um local de memória válido até que a execução assíncrona seja concluída.
Valor retornado
Tipo: HRESULT
O valor retornado é um dos valores listados em Códigos de Retorno do Direct3D 11.
D3DX11CompileFromMemory retornará E_INVALIDARG se você fornecer não NULL para o parâmetro pHResult ao fornecer NULL para o parâmetro pPump . Para obter mais informações sobre essa situação, consulte Comentários.
Comentários
Para obter mais informações sobre D3DX11CompileFromMemory, consulte D3DCompile.
Você deverá fornecer NULL para o parâmetro pHResult se também fornecer NULL para o parâmetro pPump . Caso contrário, você não poderá criar posteriormente um sombreador usando o código de sombreador compilado para o qual D3DX11CompileFromMemory retorna na memória para a qual o parâmetro ppShader aponta. Para criar um sombreador com base no código do sombreador em conformidade, chame um dos seguintes métodos de interface ID3D11Device :
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
Além disso, se você fornecer um valor não NULL para pHResult ao fornecer NULL para pPump, D3DX11CompileFromMemory retornará o código de erro E_INVALIDARG.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|