PFND3D10DDI_RESOURCECOPYREGION 콜백 함수(d3d10umddi.h)
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 구조체의 멤버가 left>=right, top>=bottom 또는 front>=back인 경우 pSrcBox는 비어 있는 것으로 간주되며 ResourceCopyRegion은 복사 작업을 수행하지 않아야 합니다.
반환 값
없음
설명
드라이버는 pfnSetErrorCb 콜백 함수를 사용하여 오류 코드를 설정할 수 있습니다.
Microsoft Direct3D 런타임은 사용자 모드 표시 드라이버의 ResourceCopyRegion 함수를 호출하여 지정된 원본 하위 리소스 지역에서 지정된 대상 하위 리소스의 위치로 복사하도록 드라이버에 알릴 수 있습니다. 원본 및 대상 하위 리소스는 동일한 리소스의 동일한 하위 리소스일 수 없습니다. 원본 리소스와 대상 리소스는 모두 동일한 유형의 리소스여야 하며 서로 변환할 수 있는 형식 형식(DXGI_FORMAT 형식 값)이 있어야 합니다.
버퍼의 경우 모든 좌표는 바이트여야 합니다. 반면 텍스처의 경우 모든 좌표는 픽셀 단위여야 합니다. pSrcBox 매개 변수가 가리키는 상자는 원본 하위 리소스 지역 또는 대상 하위 리소스의 가장자리를 확장해서는 안 됩니다. 원본 및 대상 리소스는 현재 매핑되지 않아야 합니다. 또한 리소스 만들기 플래그는 리소스가 복사 작업에 참여할 수 있는지 여부를 제한합니다.
D3DDDIERR_DEVICEREMOVED 경우를 제외하고 드라이버에 오류가 발생하지 않아야 합니다. 따라서 드라이버가 pfnSetErrorCb 함수를 호출할 때 D3DDDIERR_DEVICEREMOVED 경우를 제외하고 오류를 전달하는 경우 Direct3D 런타임은 오류가 중요하다고 결정합니다. 디바이스가 제거된 경우에도 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 필요가 없습니다. 그러나 디바이스 제거가 ResourceCopyRegion (일반적으로 발생하지 않아야 함)의 작업을 방해하는 경우 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 수 있습니다.
Direct3D 10.1 버전의 ResourceCopyRegion은 드라이버의 CreateResource(D3D10) 함수를 호출하여 만든 원본 및 대상 리소스에 대한 D3D10DDIARG_CREATERESOURCEResourceDimension 멤버와 관련하여 Direct3D 10.0 버전과 주요 기능 차이가 있습니다. Direct3D 10.0 버전의 ResourceCopyRegion의 경우 원본 및 대상 리소스에 대한 D3D10DDIARG_CREATERESOURCE ResourceDimension 멤버가 일치해야 합니다. Direct3D 10.1 버전의 ResourceCopyRegion 을 사용하면 원본 및 대상 리소스에 대한 D3D10DDIARG_CREATERESOURCE ResourceDimension 멤버를 약간 완화할 수 있습니다. Direct3D 10.1 버전의 ResourceCopyRegion 을 사용하면 TexCube 대상 리소스의 Tex2D 원본 리소스 또는 Tex2D 대상 리소스의 TexCube 원본 리소스를 복사할 수 있습니다. 또한 리소스 수준에서 TexCube의 구분은 Direct3D 버전 10.1에서 사라집니다. Direct3D 10.1 버전의 ResourceCopyRegion 은 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 비트가 있거나 다중 샘플링된 리소스인 경우 ResourceCopyRegion 은 pSrcBox 매개 변수가 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 비트가 있거나 다중 샘플링된 리소스인 경우 ResourceCopyRegion 은 pSrcBox 매개 변수가 NULL이고 DstX, DstY 및 DstZ 매개 변수는 0인지 확인합니다.
- 하위 리소스 인덱스는 범위에 있습니다.
- 맞춤 제한은 좌표에 적용됩니다.
- 원본 및 대상 리소스는 정확히 동일한 하위 리소스의 일부가 아닙니다.
- D3D10DDIARG_CREATERESOURCE Format 멤버에 지정된 각 원본 및 대상 리소스 형식은 동일한 무형식 그룹에 있습니다.
- D3D10DDIARG_CREATERESOURCE 형식 멤버에 지정된 각 원본 및 대상 리소스 형식은 적절한 변환 작업을 지원합니다.
- 원본 및 대상 리소스의 샘플 수와 품질 수준이 동일해야 합니다. 샘플 수가 같아야 하는 단일 샘플링 리소스를 제외하고.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | d3d10umddi.h(D3d10umddi.h 포함) |