ResourceCopyRegion 함수는 원본 하위 리소스 지역을 대상 하위 리소스의 위치에 복사합니다.
통사론
PFND3D10DDI_RESOURCECOPYREGION Pfnd3d10ddiResourcecopyregion;
void Pfnd3d10ddiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9
)
{...}
매개 변수
unnamedParam1
hDevice [in]
디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.
unnamedParam2
hDstResource [in]
복사할 대상 리소스에 대한 핸들입니다.
unnamedParam3
DstSubresource [in]
복사할 대상 하위 리소스를 나타내는 인덱스입니다.
unnamedParam4
DstX [in]
대상 하위 리소스의 x 좌표입니다.
unnamedParam5
DstY [in]
대상 하위 리소스의 y 좌표입니다. 1차원(1차원) 하위 리소스의 경우 DstY 0으로 설정됩니다.
unnamedParam6
DstZ [in]
대상 하위 리소스의 z 좌표입니다. 1차원(1차원) 및 2차원(2차원) 하위 리소스의 경우 DstZ 0으로 설정됩니다.
unnamedParam7
hSrcResource [in]
복사할 원본 리소스에 대한 핸들입니다.
unnamedParam8
SrcSubresource [in]
복사할 원본 하위 리소스를 나타내는 인덱스입니다.
unnamedParam9
pSrcBox [in, optional]
원본 또는 대상 하위 리소스에 맞는 상자를 지정하는 D3D10_DDI_BOX 구조체에 대한 포인터입니다. pSrcBox NULL 경우 드라이버는 전체 원본 하위 리소스를 대상에 복사해야 합니다.
D3D10_DDI_BOX 구조체의 멤버가 왼쪽 >=오른쪽, 위쪽>=아래쪽또는 앞>=뒤로경우 pSrcBox 비어 있는 것으로 간주됩니다. 및 ResourceCopyRegion 복사 작업을 수행해서는 안됩니다.
반환 값
없음
발언
드라이버는 pfnSetErrorCb 콜백 함수를 사용하여 오류 코드를 설정할 수 있습니다.
Microsoft Direct3D 런타임은 사용자 모드 표시 드라이버의 ResourceCopyRegion 함수를 호출하여 지정된 원본 하위 리소스 지역에서 지정된 대상 하위 리소스의 위치로 복사하도록 드라이버에 알립니다. 원본 및 대상 하위 리소스는 동일한 리소스의 동일한 하위 리소스일 수 없습니다. 원본 및 대상 리소스는 모두 동일한 유형의 리소스여야 하며 서로 변환할 수 있는 형식 형식(DXGI_FORMAT 형식 값)이 있어야 합니다.
버퍼의 경우 모든 좌표는 바이트 단위여야 합니다. 반면 텍스처의 경우 모든 좌표는 픽셀 단위여야 합니다. pSrcBox 매개 변수가 가리키는 상자는 원본 하위 리소스 지역 또는 대상 하위 리소스의 가장자리 위로 확장해서는 안 됩니다. 원본 및 대상 리소스는 현재 매핑되지 않아야 합니다. 또한 리소스 만들기 플래그는 리소스가 복사 작업에 참여할 수 있는지 여부를 제한합니다.
드라이버는 D3DDDIERR_DEVICEREMOVED 제외하고 오류가 발생하지 않아야 합니다. 따라서 드라이버가 D3DDDIERR_DEVICEREMOVED 제외하고 pfnSetErrorCb 함수에 대한 호출에서 오류를 전달하는 경우 Direct3D 런타임은 오류가 중요한 것으로 확인합니다. 디바이스가 제거된 경우에도 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 필요가 없습니다. 그러나 디바이스 제거가 ResourceCopyRegion 작업을 방해하는 경우(일반적으로 발생하지 않아야 함) 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 수 있습니다.
Direct3D 10.1 버전의 ResourceCopyRegion 드라이버의 CreateResource(D3D10) 함수 호출에서 생성된 원본 및 대상 리소스에 대한 D3D10DDIARG_CREATERESOURCEResourceDimension 멤버와 관련하여 Direct3D 10.0 버전과 주요 기능 차이가 있습니다. ResourceCopyRegionDirect3D 10.0 버전의 경우 원본 및 대상 리소스에 대한 D3D10DDIARG_CREATERESOURCE ResourceDimension 멤버가 일치해야 합니다. ResourceCopyRegion Direct3D 10.1 버전을 사용하면 원본 및 대상 리소스에 대한 D3D10DDIARG_CREATERESOURCE ResourceDimension 멤버를 약간 완화할 수 있습니다. Direct3D 10.1 버전의 ResourceCopyRegion 사용하면 TexCube 대상 리소스 또는 Tex2D 대상 리소스의 TexCube 원본 리소스에서 Tex2D 원본 리소스를 복사할 수 있습니다. 또한 리소스 수준에서 TexCube 간의 구분은 Direct3D 버전 10.1에서 사라집니다. ResourceCopyRegion Direct3D 10.1 버전은 TexCube를 복사할 수 있는지 여부만 나타냅니다. Direct3D 버전 10.0에서 리소스 복사, 여러 렌더링 대상의 유효성 검사 등(즉, 리소스 종류가 동일해야 하는 다양한 작업)에는 모두 TexCube를 구분하여 리소스 종류를 고려했습니다. Direct3D 버전 10.1에서는 런타임에서 Tex2D만 결정할 수 있습니다.
다음 섹션에서는 복사 및 변환 조건을 나열합니다.
복사
복사를 위해 resourceCopyRegion 드라이버의 CreateResource(D3D10) 함수를 통해 원본 및 대상 리소스가 생성되었는지 확인합니다.
- 대상 리소스가 D3D10DDIARG_CREATERESOURCE 구조의 Usage 멤버에 설정된 D3D10_DDI_USAGE_IMMUTABLE 값으로 만들어지지 않았습니다.
- 원본 또는 대상 리소스에 D3D10DDIARG_CREATERESOURCE BindFlags 멤버에 D3D10_DDI_BIND_DEPTH_STENCIL 비트가 설정되었거나 다중 샘플링된 리소스인 경우 ResourceCopyRegionpSrcBox 매개 변수가 NULL , DstX, DstY및 DstZ 매개 변수가 0인지 확인합니다.
- 하위 리소스 인덱스는 범위에 있습니다.
- 맞춤 제한은 좌표에 적용됩니다.
- 원본 및 대상 리소스는 정확히 동일한 하위 리소스의 일부가 아닙니다.
- D3D10DDIARG_CREATERESOURCE Format 멤버에 지정된 각 원본 및 대상 리소스 형식은 같은 형식이 없는 그룹에 있습니다.
- 원본 및 대상 리소스에는 동일한 수의 샘플과 품질 수준이 있어야 합니다. 샘플이 동일한 수의 샘플만 있어야 하는 단일 샘플링 리소스를 제외하고
변환
변환의 경우 ResourceCopyRegion 다음 조건을 사용하여 드라이버의 CreateResource(D3D10) 함수를 통해 원본 및 대상 리소스를 만들도록 합니다.
- 대상 리소스가 D3D10DDIARG_CREATERESOURCE 구조의 Usage 멤버에 설정된 D3D10_DDI_USAGE_IMMUTABLE 값으로 만들어지지 않았습니다.
- 원본 또는 대상 리소스에 D3D10DDIARG_CREATERESOURCE BindFlags 멤버에 D3D10_DDI_BIND_DEPTH_STENCIL 비트가 설정되었거나 다중 샘플링된 리소스인 경우 ResourceCopyRegionpSrcBox 매개 변수가 NULL , DstX, DstY및 DstZ 매개 변수가 0인지 확인합니다.
- 하위 리소스 인덱스는 범위에 있습니다.
- 맞춤 제한은 좌표에 적용됩니다.
- 원본 및 대상 리소스는 정확히 동일한 하위 리소스의 일부가 아닙니다.
- D3D10DDIARG_CREATERESOURCE Format 멤버에 지정된 각 원본 및 대상 리소스 형식은 같은 형식이 없는 그룹에 있습니다.
- D3D10DDIARG_CREATERESOURCE Format 멤버에 지정된 각 원본 및 대상 리소스 형식은 적절한 변환 작업을 지원합니다.
- 원본 및 대상 리소스에는 동일한 수의 샘플과 품질 수준이 있어야 합니다. 샘플이 동일한 수의 샘플만 있어야 하는 단일 샘플링 리소스를 제외하고
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 바탕 화면 |
헤더 | d3d10umddi.h(D3d10umddi.h 포함) |