> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CreatePlacedResource2 (consoles XBOX Series)

> ID3D12Device10::CreatePlacedResource2 cria um recurso posicionado em um heap no Direct3D 12 dos consoles XBOX Series, com parâmetros estendidos em relação à API original.

Cria um recurso que é posicionado em um heap específico. Os recursos posicionados são os objetos de recurso mais leves disponíveis e os mais rápidos de criar e destruir.

Seu aplicativo pode reutilizar a memória de vídeo sobrepondo vários recursos posicionados e reservados do Direct3D em regiões do heap. O modelo simples de reutilização de memória (descrito em [Comentários](#remarks)) existe para esclarecer qual recurso sobreposto é válido a qualquer momento. Para maximizar o suporte das ferramentas gráficas, com o modelo simples não há suporte para herança de dados, nem para invalidação mais granular de blocos e sub-recursos. Ocorre apenas a invalidação completa de recursos sobrepostos.

Requer o DirectX 12 Agility SDK 1.7 ou posterior.

## Sintaxe

```cpp theme={null}
HRESULT CreatePlacedResource2(
    ID3D12Heap  pHeap,
    UINT64 HeapOffset,
    const D3D12_RESOURCE_DESC1  pDesc,
    D3D12_BARRIER_LAYOUT InitialLayout,
    const D3D12_CLEAR_VALUE  pOptimizedClearValue,
    UINT32 NumCastableFormats,
    DXGI_FORMAT  pCastableFormats,
    const IID & riid,
    void  ppvResource
)
```

### Parâmetros

*pHeap*\
Tipo: ID3D12Heap \*

Um ponteiro para a interface **ID3D12Heap** que representa o heap no qual o recurso é posicionado.

*HeapOffset*\
Tipo: UINT64

O deslocamento, em bytes, para o recurso. *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**](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourceallocationinfo_public) deve ser usado para entender os tamanhos dos recursos de textura.

*pDesc*\
Tipo: const D3D12\_RESOURCE\_DESC1 \*

Um ponteiro para uma estrutura **D3D12\_RESOURCE\_DESC** que descreve o recurso.

*InitialLayout*\
Tipo: D3D12\_BARRIER\_LAYOUT

O layout inicial do recurso de textura; **D3D12\_BARRIER\_LAYOUT::D3D12\_BARRIER\_LAYOUT\_UNDEFINED** para buffers.

*pOptimizedClearValue*\
Tipo: const D3D12\_CLEAR\_VALUE \*

Especifica um **D3D12\_CLEAR\_VALUE** que descreve o valor padrão para uma cor de limpeza.

*pOptimizedClearValue* especifica um valor para o qual as operações de limpeza são mais otimizadas. Quando o recurso criado é uma textura com o sinalizador **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 de limpeza será chamada com mais frequência.

As operações de limpeza podem ser chamadas com outros valores, mas essas operações não serão tão eficientes quanto quando o valor corresponde ao passado na criação do recurso.

*pOptimizedClearValue* deve ser NULL quando usado com **D3D12\_RESOURCE\_DIMENSION\_BUFFER**.

*NumCastableFormats*\
Tipo: UINT32

O número de elementos em *pCastableFormats*.

*pCastableFormats*\
Tipo: DXGI\_FORMAT \*

Uma matriz contígua de estruturas [DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format) para as quais este recurso pode ser convertido.

*riid*\
Tipo: const IID &

O identificador global exclusivo (**GUID**) da interface de recurso. Este é um parâmetro de entrada.

O **REFIID**, ou **GUID**, da interface para o recurso pode ser obtido usando a macro `__uuidof`. Por exemplo, `__uuidof(ID3D12Resource)` obtém o **GUID** da interface para um recurso. Embora **riid** seja, mais comumente, o GUID de [**ID3D12Resource**](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs), ele pode ser qualquer **GUID** de qualquer interface. Se o objeto de recurso não der suporte à interface desse **GUID**, a criação falhará com **E\_NOINTERFACE**.

*ppvResource*\
Tipo: void \*\*

Um ponteiro para um bloco de memória que recebe um ponteiro para o recurso. *ppvResource* pode ser NULL para permitir o teste de capacidade. Quando *ppvResource* é NULL, nenhum objeto será criado e S\_FALSE será retornado quando *pResourceDesc* e os outros parâmetros forem válidos.

### Valor retornado

Tipo: HRESULT

Este método retorna **E\_OUTOFMEMORY** se não houver memória suficiente para criar o recurso. Consulte [Códigos de retorno do Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) para outros valores retornados possíveis.

## Comentários

Consulte **Comentários** em [ID3D12Device::CreatePlacedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public).

## Requisitos

**Cabeçalho:** d3d12\_xs.h\
**Biblioteca:** d3d12\_xs.lib\
**Plataformas com suporte**: consoles XBOX Series

## Confira também

[CreateCommittedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommittedresource_public)

[CreateReservedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public)

[ID3D12Device10](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device10/id3d12device10_public)

[Heaps compartilhados](https://learn.microsoft.com/en-us/windows/win32/direct3d12/shared-heaps)


## Related topics

- [CreateReservedResource2 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateReservedResource1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createreservedresource1_public.md)
- [CreateHeap1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createheap1_public.md)
- [CreateMetaCommand (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_createmetacommand_public.md)
- [CreateCommandList1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommandlist1_public.md)
