DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 정수 D3DLOCK   [목차열람] [주소복사] [슬롯비우기]
D3DLOCK
 
Microsoft DirectX 9.0

D3DLOCK


실행하는 잠금의 종류를 기술하는, 0 혹은 복수의 잠금 옵션의 편성.

#define설명
D3DLOCK_DISCARD애플리케이션은, 잠금 되고 있는 영역내의 모든 장소를, 쓰기 전용 처리로 덧쓰기한다. 이것은 동적 텍스처, 동적인 정점 버퍼, 및 동적인 인덱스 버퍼를 사용할 때에 유효한 옵션이다.

정점 버퍼 및 인덱스 버퍼의 경우, 애플리케이션은 버퍼 전체를 파기한다. 새로운 메모리 영역의 포인터가 돌려주어지므로, 다이나믹 메모리 액세스 (DMA)와 낡은 영역으로부터의 렌더링이 기능 정지할 것은 없다.

텍스처에 대해서는, 애플리케이션은 잠금 되고 있는 영역내의 모든 장소를 쓰기 전용 처리로 덧쓰기한다.

D3DLOCK_DONOTWAIT드라이버가 즉시 표면을 잠글 수 없는 경우에, 애플리케이션이 CPU 사이클을 다시 취득할 수가 있다. 이 플래그가 설정되어 있는 경우, 드라이버가 즉시 표면을 잠글 수 없을 때는, 잠금 호출은 D3DERRR_WASSTILLDRAWING 를 돌려준다. 이 플래그는,IDirect3DDevice9::CreateOffscreenPlainSurface ,IDirect3DDevice9::CreateRenderTarget , 또는 IDirect3DDevice9::CreateDepthStencilSurface 를 사용해 생성 한 표면의 LockRect 를 호출하는 경우에만 사용할 수 있다. 이 플래그는 백 버퍼와 함께 사용할 수도 있다.
D3DLOCK_NO_DIRTY_UPDATE디폴트에서는, 리소스의 잠금은 더티 영역을 그 리소스에 추가한다. 이 옵션을 지정 하면, 리소스의 더티 상태가 변경되지 않게 된다. 애플리케이션에서는, 잠금 처리동안으로 변경되는 것 영역 세트에 대한 추가 정보를 가지고 있을 때는, 이 옵션을 사용할 필요가 있다.
D3DLOCK_NOOVERWRITE애플리케이션이 정점 버퍼 및 인덱스 버퍼내의 데이터를 덧쓰기하지 않는 것을 보증한다. 이 플래그를 지정 하면, 드라이버가 즉석에서 종료해, 이 버퍼를 사용해 렌더링을 속행할 수 있다. 이 플래그를 사용하지 않는 경우, 드라이버는 잠금으로부터 돌아오기 전에 렌더링을 종료할 필요가 있다.
D3DLOCK_NOSYSLOCK

비디오 메모리 잠금의 디폴트의 동작은, 시스템의 크리티컬 섹션을 확보하는 것으로, 잠금중에 디스플레이 모드의 변경을 하지 않는 것을 보증한다. 이 옵션은, 시스템 와이드인 크리티컬 섹션이 잠금의 사이 보관 유지되지 않게 한다.

락 처리는 시간이 걸리지만, 마우스 커서의 이동 등, 시스템으로 다른 처리를 실행하는 것이 가능하게 된다. 이 옵션은, 소프트웨어 렌더링의 백 버퍼의 잠금과 같이, 잠금이 장시간에 이르러, 시스템의 응답성에 악영향을 주어 버리는 것 같은 잠금에 대해서 유효하다.

D3DLOCK_READONLY애플리케이션은 버퍼에 기입하지 않는다. 이것에 의해, 비네이티브 포맷으로 저장 되고 있는 리소스는, 언락시에 재압축 스텝을 생략 할 수 있다.

정수 정보

헤더d3d9types.h
최저한의 operating systemWindows 98

관련 항목



© 2002 Microsoft Corporation. All rights reserved.
↑TOP