ID3D11DeviceContext::CopyResource 메서드(d3d11.h)
GPU를 사용하여 원본 리소스의 전체 콘텐츠를 대상 리소스에 복사합니다.
구문
void CopyResource(
[in] ID3D11Resource *pDstResource,
[in] ID3D11Resource *pSrcResource
);
매개 변수
[in] pDstResource
형식: ID3D11Resource*
대상 리소스를 나타내는 ID3D11Resource 인터페이스에 대한 포인터입니다.
[in] pSrcResource
형식: ID3D11Resource*
원본 리소스를 나타내는 ID3D11Resource 인터페이스에 대한 포인터입니다.
반환 값
없음
설명
이 메서드는 GPU가 복사 작업(CPU의 memcpy와 유사)을 수행하게 한다는 측면에서는 이례적인 일입니다. 따라서 성능 향상을 위해 설계된 몇 가지 제한 사항이 있습니다. instance 경우 원본 및 대상 리소스는 다음과 같습니다.
- 다른 리소스여야 합니다.
- 동일한 형식이어야 합니다.
- 너비, 높이, 깊이 및 크기를 적절하게 포함하여 동일한 차원이 있어야 합니다.
- 호환되는 DXGI 형식이 있어야 합니다. 즉, 형식이 동일하거나 적어도 동일한 형식 그룹에서 와야 합니다. 예를 들어 이러한 두 형식이 모두 DXGI_FORMAT_R32G32B32_TYPELESS 그룹에 있으므로 DXGI_FORMAT_R32G32B32_FLOAT 텍스처를 DXGI_FORMAT_R32G32B32_UINT 텍스처에 복사할 수 있습니다. CopyResource는 몇 가지 형식 형식 간에 복사할 수 있습니다. 자세한 내용은 Direct3D 10.1을 사용하여 형식 변환을 참조하세요.
- 현재 매핑할 수 없습니다.
변경할 수 없는 리소스를 대상으로 사용할 수 없습니다. 기능 수준이 D3D_FEATURE_LEVEL_10_1 이상인 경우 깊이 스텐실 리소스를 원본 또는 대상으로 사용할 수 있습니다. 9_x 기능 수준의 경우 D3D11_BIND_DEPTH_STENCIL 플래그로 만든 리소스는 CopyResource의 원본으로만 사용할 수 있습니다. 다중 샘플링 기능( DXGI_SAMPLE_DESC 참조)으로 만든 리소스는 원본과 대상 모두에 동일한 다중 샘플링 수와 품질이 있는 경우에만 원본 및 대상으로 사용할 수 있습니다. 원본과 대상이 다중 샘플링된 수와 품질이 다르거나 하나가 다중 샘플링되고 다른 하나는 다중 샘플링되지 않은 경우 ID3D11DeviceContext::CopyResource에 대한 호출이 실패합니다. ID3D11DeviceContext::ResolveSubresource를 사용하여 다중 샘플링된 리소스를 다중 샘플링되지 않은 리소스에 resolve.
메서드는 명령 버퍼 큐에 추가할 수 있는 비동기 호출입니다. 이렇게 하면 데이터를 복사할 때 발생할 수 있는 파이프라인 중단이 제거됩니다. 자세한 내용은 성능 고려 사항을 참조하세요.
리소스에서 데이터의 일부만 복사해야 하는 경우 대신 ID3D11DeviceContext::CopySubresourceRegion 을 사용하는 것이 좋습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d11.h |
라이브러리 | D3D11.lib |