IDirect3DSurface9::LockRect 메서드(d3d9helper.h)
표면에 사각형을 잠글 수 있습니다.
구문
HRESULT LockRect(
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
매개 변수
[out] pLockedRect
형식: D3DLOCKED_RECT*
잠긴 영역을 설명하는 D3DLOCKED_RECT 구조체에 대한 포인터입니다.
[in] pRect
형식: const RECT*
잠글 사각형에 대한 포인터입니다. RECT 구조체에 대한 포인터로 지정됩니다. 이 매개 변수에 NULL을 지정하면 더티 영역이 확장하여 전체 표면을 덮습니다.
[in] Flags
형식: DWORD
수행할 잠금 유형을 설명하는 0개 이상의 잠금 플래그 조합입니다. 이 메서드의 경우 유효한 플래그는 다음과 같습니다.
- D3DLOCK_DISCARD
- D3DLOCK_DONOTWAIT
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 D3D_OK.
메서드가 실패하면 반환 값을 D3DERR_INVALIDCALL 또는 D3DERR_WASSTILLDRAWING 수 있습니다.
설명
D3DLOCK_DONOTWAIT 플래그를 지정하고 드라이버가 표면을 즉시 잠글 수 없는 경우 IDirect3DSurface9::LockRect는 드라이버가 표면을 잠그기를 기다리는 동안 애플리케이션이 CPU 주기를 사용할 수 있도록 D3DERR_WASSTILLDRAWING 반환합니다.
깊이 스텐실 표면에 대해 잠글 수 있는 유일한 형식은 D3DFMT_D16_LOCKABLE. D3DFORMAT 참조하세요.
성능상의 이유로 더티 영역은 텍스처의 수준 0에 대해서만 기록됩니다. 더티 지역은 IDirect3DSurface9::LockRect 가 D3DLOCK_NO_DIRTY_UPDATE 또는 D3DLOCK_READONLY 없이 호출될 때 자동으로 기록됩니다. 자세한 내용은 IDirect3DDevice9::UpdateTexture 를 참조하세요.
다중 샘플 백 버퍼를 잠글 수 없습니다.
이 메서드는 D3DUSAGE_RENDERTARGET 사용하여 만든 텍스처 리소스에 포함된 표면에서 데이터를 검색할 수 없습니다. 이러한 텍스처는 D3DPOOL_DEFAULT 메모리에 할당되어야 하므로 잠글 수 없기 때문입니다. 이 경우 대신 IDirect3DDevice9::GetRenderTargetData 를 사용하여 디바이스 메모리에서 시스템 메모리로 텍스처 데이터를 복사합니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d9helper.h(D3D9.h 포함) |
라이브러리 | D3D9.lib |