Compartilhar via


Método ID3D12Device8::CreatePlacedResource1 (d3d12.h)

Cria um recurso que é colocado em um heap específico. Os recursos colocados são os objetos de recurso de peso mais leve disponíveis e são os mais rápidos para criar e destruir.

Seu aplicativo pode reutilização da memória de vídeo sobrepondo vários recursos colocados e reservados do Direct3D em regiões de heap. O modelo de reutilização de memória simples (descrito em Comentários) existe para esclarecer qual recurso sobreposto é válido a qualquer momento. Para maximizar o suporte à ferramenta de gráficos, não há suporte para a herança de dados do modelo simples; não há suporte para a invalidação de blocos e sub-recursos refinados. Ocorre apenas a invalidação completa do recurso sobreposto.

Sintaxe

HRESULT CreatePlacedResource1(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_RESOURCE_STATES      InitialState,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  REFIID                     riid,
  void                       **ppvResource
);

Parâmetros

pHeap

Tipo: [in] ID3D12Heap*

Um ponteiro para a interface ID3D12Heap do que representa o heap no qual o recurso é colocado.

HeapOffset

Tipo: UINT64

O deslocamento, em bytes, para o recurso. O heapOffset deve ser um múltiplo do alinhamento do recurso e heapOffset mais o tamanho do recurso deve ser menor ou igual ao tamanho do heap. GetResourceAllocationInfo deve ser usado para entender os tamanhos dos recursos de textura.

pDesc

Tipo: [in] const D3D12_RESOURCE_DESC1*

Um ponteiro para uma estrutura de D3D12_RESOURCE_DESC1 que descreve o recurso, incluindo uma região de mip.

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.

Quando um recurso é criado junto com um heap de D3D12_HEAP_TYPE_UPLOAD, InitialState deve ser D3D12_RESOURCE_STATE_GENERIC_READ. Quando um recurso é criado junto com um heap de D3D12_HEAP_TYPE_READBACK, InitialState deve ser D3D12_RESOURCE_STATE_COPY_DEST.

pOptimizedClearValue

Tipo: [in, opcional] const D3D12_CLEAR_VALUE*

Especifica um 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, seu aplicativo deve escolher o valor com o qual a operação clara será mais comumente chamada.

Operações claras podem ser chamadas 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.

pOptimizedClearValue deve ser NULL quando usado com D3D12_RESOURCE_DIMENSION_BUFFER.

riid

Tipo: REFIID

O identificador global exclusivo (GUID) para a interface de recurso. Esse é um parâmetro de entrada.

OREFIID , ou GUID, da interface para o recurso pode ser obtido usando a macro . Por exemplo, __uuidof(ID3D12Resource) obtém o guid da interface para um recurso. Embora riid seja, mais comumente, o GUID para ID3D12Resource, pode ser qualquer GUID para qualquer interface. Se o objeto de recurso não der suporte à interface para este guid, a criação falhará com E_NOINTERFACE.

ppvResource

Tipo: [out, opcional] nulo**

Um ponteiro para um bloco de memória que recebe um ponteiro para o recurso. ppvResource pode ser NULL, para habilitar o teste de capacidade. Quando ppvResource for NULL, nenhum objeto será criado e S_FALSE será retornado quando pResourceDesc e outros parâmetros forem válidos.

Valor de retorno

Tipo: HRESULT

Esse método retornará E_OUTOFMEMORY se não houver memória suficiente para criar o recurso. Consulte códigos de retorno do Direct3D 12 para obter outros valores de retorno possíveis.

Observações

Consulte ID3D12Device::CreatePlacedResource.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10 Build 20348
servidor com suporte mínimo Windows 10 Build 20348
cabeçalho d3d12.h
biblioteca d3d12.lib
de DLL d3d12.dll

Consulte também