IDirect3DDevice9::UpdateTexture 메서드(d3d9.h)
텍스처의 더티 부분을 업데이트.
구문
HRESULT UpdateTexture(
[in] IDirect3DBaseTexture9 *pSourceTexture,
[in] IDirect3DBaseTexture9 *pDestinationTexture
);
매개 변수
[in] pSourceTexture
원본 텍스처를 나타내는 IDirect3DBaseTexture9 인터페이스에 대한 포인터입니다. 원본 텍스처는 시스템 메모리(D3DPOOL_SYSTEMMEM)에 있어야 합니다.
[in] pDestinationTexture
대상 텍스처를 나타내는 IDirect3DBaseTexture9 인터페이스에 대한 포인터입니다. 대상 텍스처는 D3DPOOL_DEFAULT 메모리 풀에 있어야 합니다.
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값을 D3DERR_INVALIDCALL 수 있습니다.
설명
텍스처를 잠그거나 다음 메서드 중 하나를 호출하여 텍스처의 일부를 더티 수 있습니다.
- IDirect3DCubeTexture9::AddDirtyRect
- IDirect3DTexture9::AddDirtyRect
- IDirect3DVolumeTexture9::AddDirtyBox
- IDirect3DDevice9::UpdateSurface
성능상의 이유로 더티 영역은 텍스처의 수준 0에 대해서만 기록됩니다. sublevels의 경우 해당하는(스케일링된) 사각형 또는 상자도 더티 가정합니다. 더티 지역은 D3DLOCK_NO_DIRTY_UPDATE 또는 D3DLOCK_READONLY 없이 LockRect 또는 IDirect3DVolumeTexture9::LockBox 가 호출될 때 자동으로 기록됩니다. 또한 IDirect3DDevice9::UpdateSurface의 대상 화면은 더티 표시됩니다.
텍스처가 다른 형식이거나, 하위 수준 버퍼의 크기가 다르거나, 일치하는 수준이 일치하지 않는 경우 이 메서드는 실패합니다. 예를 들어 다음 차원의 6개 수준 원본 텍스처를 고려합니다.
32x16, 16x8, 8x4, 4x2, 2x1, 1x1
이 6단계 원본 텍스처는 다음 한 수준 대상의 원본일 수 있습니다.
1x1
다음 두 수준 대상의 경우.
2x1, 1x1
또는 다음 3개 수준 대상에 대해 입니다.
4x2, 2x1, 1x1
또한 텍스처의 형식이 다르면 이 메서드가 실패합니다. 대상 텍스처의 수준이 원본보다 적은 경우 일치하는 수준만 복사됩니다. 원본 텍스처의 수준이 대상보다 적으면 메서드가 실패합니다.
원본 텍스처에 더티 영역이 있는 경우 복사본을 해당 영역으로만 제한하여 복사본을 최적화할 수 있습니다. 더티 표시된 바이트만 복사된다는 보장은 없습니다.
원본 및 대상 표면 조합의 가능성은 다음과 같습니다.
- pSourceTexture가 자동 생성되지 않은 mipmap이고 pDestinationTexture가 자동 생성된 mipmap인 경우 가장 일치하는 최상위 수준만 업데이트되고 대상 하위 수준이 다시 생성됩니다. 다른 모든 원본 하위 값은 무시됩니다.
- pSourceTexture와 pDestinationTexture가 모두 자동 생성된 Mipmap인 경우 가장 일치하는 최상위 수준만 업데이트됩니다. 원본의 하위 값은 무시되고 대상 하위 수준도 다시 생성됩니다.
- pSourceTexture가 자동 생성된 mipmap이고 pDestinationTexture가 자동 생성된 Mipmap이 아닌 경우 UpdateTexture가 실패합니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d9.h(D3D9.h 포함) |
라이브러리 | D3D9.lib |