Método ID3D12Device::CreateReservedResource (d3d12.h)
Cria um recurso reservado e ainda não mapeado para nenhuma página em um heap.
Sintaxe
HRESULT CreateReservedResource(
[in] const D3D12_RESOURCE_DESC *pDesc,
[in] D3D12_RESOURCE_STATES InitialState,
[in, optional] const D3D12_CLEAR_VALUE *pOptimizedClearValue,
[in] REFIID riid,
[out, optional] void **ppvResource
);
Parâmetros
[in] pDesc
Tipo: const D3D12_RESOURCE_DESC*
Um ponteiro para uma estrutura D3D12_RESOURCE_DESC que descreve o recurso.
[in] InitialState
Tipo: D3D12_RESOURCE_STATES
O estado inicial do recurso, como uma combinação or'd bit a bit de D3D12_RESOURCE_STATES constantes de enumeração.
[in, optional] pOptimizedClearValue
Tipo: const D3D12_CLEAR_VALUE*
Especifica uma estrutura D3D12_CLEAR_VALUE que descreve o valor padrão para uma cor clara.
pOptimizedClearValue especifica um valor para o qual as operações claras são mais ideais. Quando o recurso criado é uma textura com os sinalizadores D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET ou D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL , você deve escolher o valor com o qual a operação clara será mais comumente chamada. Você pode chamar a operação clara com outros valores, mas essas operações não serão tão eficientes quanto quando o valor corresponder ao passado para a criação de recursos.
Ao usar D3D12_RESOURCE_DIMENSION_BUFFER, você deve definir pOptimizedClearValue como nullptr
.
[in] riid
Tipo: REFIID
Uma referência ao GUID (identificador global exclusivo) da interface de recurso a ser retornada em ppvResource. Veja os Comentários.
Embora riidResource seja mais comumente o GUID de ID3D12Resource, ele pode ser o GUID de qualquer interface. Se o objeto de recurso não der suporte à interface para esse GUID, a criação falhará com E_NOINTERFACE.
[out, optional] ppvResource
Tipo: void**
Um ponteiro opcional para um bloco de memória que recebe o ponteiro de interface solicitado para o objeto de recurso criado.
ppvResource pode ser nullptr
, para habilitar o teste de funcionalidade. Quando ppvResource é nullptr
, nenhum objeto é criado e S_FALSE é retornado quando pDesc é válido.
Retornar valor
Tipo: HRESULT
Se a função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erroHRESULT.
Valor retornado | Descrição |
---|---|
E_OUTOFMEMORY | Não há memória suficiente para criar o recurso. |
Confira Códigos de retorno do Direct3D 12 para obter outros valores de retorno possíveis.
Comentários
CreateReservedResource é equivalente a D3D11_RESOURCE_MISC_TILED no Direct3D 11. Ele cria um recurso somente com memória virtual, sem repositório de backup.
Você precisa mapear o recurso para memória física (ou seja, para um heap) usando CopyTileMappings e UpdateTileMappings.
Esses tipos de recursos só podem ser criados quando o adaptador dá suporte à camada de recursos em bloco 1 ou superior. A camada de recursos em bloco define o comportamento de acessar um recurso que não é mapeado para um heap.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | d3d12.h |
Biblioteca | D3D12.lib |
DLL | D3D12.dll |