> ## 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.

# CreateCommittedResource1 (XBOX Series 콘솔)

> 리소스와 (선택적으로 보호된 세션용) 암시적 힙을 모두 만들며, 힙은 전체 리소스를 담을 수 있을 만큼 크고 리소스는 힙에 매핑됩니다.

리소스와 (선택적으로 보호된 세션용) 암시적 힙을 모두 만들며, 힙은 전체 리소스를 담을 수 있을 만큼 크고 리소스는 힙에 매핑됩니다. 코드 예제는 [ID3D12Device::CreateCommittedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommittedresource_public)도 참조하세요.

## 구문

```cpp theme={null}
HRESULT CreateCommittedResource1(
    const D3D12_HEAP_PROPERTIES  pHeapProperties,
    D3D12_HEAP_FLAGS HeapFlags,
    const D3D12_RESOURCE_DESC  pDesc,
    D3D12_RESOURCE_STATES InitialResourceState,
    const D3D12_CLEAR_VALUE  pOptimizedClearValue,
    ID3D12ProtectedResourceSession  pProtectedSession,
    const IID & riidResource,
    void  ppvResource
)
```

### 매개 변수

*pHeapProperties \[in]*\
형식: const D3D12\_HEAP\_PROPERTIES \*

리소스 힙에 대한 속성을 제공하는 **D3D12\_HEAP\_PROPERTIES** 구조체에 대한 포인터입니다.

*HeapFlags \[in]*\
형식: D3D12\_HEAP\_FLAGS

**D3D12\_HEAP\_FLAGS** 열거형 상수의 비트 OR 조합으로 표현되는 힙 옵션입니다.

*pDesc \[in]*\
형식: const D3D12\_RESOURCE\_DESC \*

리소스를 설명하는 **D3D12\_RESOURCE\_DESC** 구조체에 대한 포인터입니다.

*InitialResourceState \[in]*\
형식: D3D12\_RESOURCE\_STATES

**D3D12\_RESOURCE\_STATES** 열거형 상수의 비트 OR 조합으로 표현되는 리소스의 초기 상태입니다.

[D3D12\_HEAP\_TYPE\_UPLOAD](/reference/graphics/d3d12/enums/d3d12_heap_type_public) 힙과 함께 리소스를 만들 때는 *InitialResourceState*를 [D3D12\_RESOURCE\_STATE\_GENERIC\_READ](/reference/graphics/d3d12_x/enums/d3d12_resource_states)로 설정해야 합니다.

[D3D12\_HEAP\_TYPE\_READBACK](/reference/graphics/d3d12/enums/d3d12_heap_type_public) 힙과 함께 리소스를 만들 때는 *InitialResourceState*를 [D3D12\_RESOURCE\_STATE\_COPY\_DEST](/reference/graphics/d3d12_x/enums/d3d12_resource_states)로 설정해야 합니다.

*pOptimizedClearValue \[in, optional]*\
형식: const D3D12\_CLEAR\_VALUE \*

지우기 색상의 기본값을 설명하는 **D3D12\_CLEAR\_VALUE** 구조체를 지정합니다.

*pOptimizedClearValue*는 지우기 작업이 가장 최적화되는 값을 지정합니다. 생성된 리소스가 [D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET](/reference/graphics/d3d12_x/enums/d3d12_resource_flags) 또는 **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** 플래그가 있는 텍스처인 경우, 지우기 작업이 가장 자주 호출될 값을 선택해야 합니다. 다른 값으로 지우기 작업을 호출할 수 있지만, 이러한 작업은 리소스 생성에 전달된 값과 일치하는 경우만큼 효율적이지 않습니다.

[D3D12\_RESOURCE\_DIMENSION\_BUFFER](/reference/graphics/d3d12_x/enums/d3d12_resource_dimension)를 사용하는 경우 *pOptimizedClearValue*를 `nullptr`로 설정해야 합니다.

*pProtectedSession \[in, optional]*\
형식: ID3D12ProtectedResourceSession \*

콘텐츠 보호를 위한 세션을 나타내는 객체에 대한 선택적 포인터입니다. 제공된 경우 이 세션은 리소스를 보호해야 함을 나타냅니다. [ID3D12Device4::CreateProtectedResourceSession](/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createprotectedresourcesession_public)을 호출하여 **ID3D12ProtectedResourceSession**을 얻을 수 있습니다.

*riidResource \[in]*\
형식: const IID &

*ppvResource*에서 반환할 리소스 인터페이스의 전역 고유 식별자(**GUID**)에 대한 참조입니다.

*riidResource*는 가장 일반적으로 [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs)의 **GUID**이지만, 모든 인터페이스의 **GUID**일 수 있습니다. 리소스 객체가 이 **GUID**에 대한 인터페이스를 지원하지 않으면 생성이 **E\_NOINTERFACE**로 실패합니다.

*ppvResource \[out, optional]*\
형식: void \*\*

생성된 리소스 객체에 대한 요청된 인터페이스 포인터를 받는 메모리 블록에 대한 선택적 포인터입니다.

*ppvResource*는 기능 테스트를 활성화하려면 `nullptr`일 수 있습니다. *ppvResource*가 `nullptr`인 경우 객체가 생성되지 않으며, *pDesc*가 유효하면 **S\_FALSE**가 반환됩니다.

### 반환 값

형식: HRESULT

함수가 성공하면 **S\_OK**를 반환합니다. 그렇지 않으면 [**HRESULT**](https://learn.microsoft.com/en-us/windows/desktop/com/structure-of-com-error-codes) [오류 코드](https://learn.microsoft.com/en-us/windows/win32/com/com-error-codes-10)를 반환합니다.

| 반환 값           | 설명                  |
| -------------- | ------------------- |
| E\_OUTOFMEMORY | 리소스를 만들 메모리가 부족합니다. |

다른 가능한 반환 값은 [Direct3D 12 반환 코드](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues)를 참조하세요.

## 설명

이 메서드는 리소스와 힙을 모두 만들며, 힙은 전체 리소스를 담을 수 있을 만큼 크고 리소스는 힙에 매핑됩니다. 생성된 힙은 애플리케이션에서 힙 객체를 가져올 수 없기 때문에 암시적 힙이라고 합니다. 리소스에 대한 마지막 참조를 해제하기 전에 애플리케이션은 GPU가 이 리소스를 더 이상 읽거나 쓰지 않도록 해야 합니다.

메서드가 애플리케이션에 제어를 반환하기 전에 암시적 힙은 GPU 액세스를 위해 상주 상태가 됩니다. [상주](https://learn.microsoft.com/en-us/windows/win32/direct3d12/residency)도 참조하세요.

리소스 GPU VA 매핑은 변경할 수 없습니다. [ID3D12CommandQueue::UpdateTileMappings](/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public) 및 [볼륨 타일 리소스](https://learn.microsoft.com/en-us/windows/win32/direct3d12/volume-tiled-resources)를 참조하세요.

이 메서드는 여러 스레드에서 동시에 호출할 수 있습니다.

## 요구 사항

**헤더:** d3d12\_xs.h\
**라이브러리:** d3d12\_xs.lib\
**지원 플랫폼**: XBOX Series 콘솔

## 함께 보기


## Related topics

- [CreateReservedResource1 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createreservedresource1_public.md)
- [CreateCommittedResource3 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createcommittedresource3_public.md)
- [CreateReservedResource2 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreatePlacedResource2 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
- [CreateHeap1 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createheap1_public.md)
