DirectX Graphics 프로그래밍 가이드 Direct3D 의 기초지식 리소스 리소스의 잠금   [목차열람] [주소복사] [슬롯비우기]
리소스의 잠금
 
Microsoft DirectX 9.0

리소스의 잠금


리소스를 잠그면 스토리지에의 CPU 액세스가 허가된다. 리소스에는, 다음의 잠금 메서드가 정의되고 있다.

락킹 플래그 및 잠금 플래그와 특정의 리소스와의 관계에 대해서는, 각 리소스 잠금 메서드의 레퍼런스 페이지를 참조할것. 애플리케이션 개발자는, D3DLOCK_DISCARD, D3DLOCK_READONLY, 및 D3DLOCK_NOOVERWRITE 플래그는 단순한 힌트에 지나지 않기 때문에 주의 해야 한다. 런타임에서는, 애플리케이션이 이러한 플래그로 지정되고 있는 기능에 따르고 있는지의 체크는 행해지지 않는다. D3DLOCK_READONLY 를 지정하면서 리소스에 쓰기를 실시했을 경우, 예기 할 수 없는 결과가 발생한다. 일반적으로, 잠금 이용 플래그를 포함 잠금 플래그에 대한 처리가, 향후의 릴리스로 사용할 수 있는 보증은 없고, 퍼포먼스의 대폭적인 저하를 가져올 가능성이 있다.

락 처리의 뒤에는 언락 처리를 실시한다. 예를 들어, 텍스처를 잠근 후, 애플리케이션은 잠금 된 텍스처의 잠금을 해제해, 그 텍스처에의 직접 액세스를 방폐한다. 프로세서 액세스를 허가할 뿐만 아니라, 잠금 지속중은, 그 리소스와 관계되는 다른 모든 처리가 차례로 늘어놓을 수 있다. 오버랩 하지 않는 영역에서 만나도, 리소스에 대해서 1 개의 잠금만이 허가되어 표면상에 잠금 처리를 하고 있는 동안은, 그 표면에서의 가속기 처리는 실행할 수 없다.

각 리소스 인터페이스에는, 저장 되고 있는 버퍼를 잠그기 위한 메서드가 있다. 또, 각 텍스처 소스는, 리소스의 서브 일부를 잠글 수 있다. 2 차원 리소스 (표면)에서는, 서브 직사각형을 잠글 수가 있어 볼륨 리소스에서는, 서브 볼륨 또는 박스를 잠글 수가 있다. 각 잠금 메서드는, 리소스를 되돌리는 스토리지의 포인터와 데이터의 행간격 또는 평면 간격 (리소스 타입에 따라서 다르다)을 나타내는 값을 돌려준다. 더 자세한 정보는, 리소스 인터페이스의 메서드 리스트를 참조할것. 돌려받는 포인터는, 항상, 잠금 된 서브 리전의 좌상의 바이트를 가리킨다.

인덱스 버퍼나 정점 버퍼를 조작하는 경우는, 복수의 잠금 호출을 실시할 수 있지만, 잠금 호출의 수와 언락 호출의 수가 일치하고 있을 필요가 있다.

encode 된 4x4 블록에 픽셀을 저장 하는 압축 텍스처 포맷의 Microsoft® DirectX® Transform 세트는, 4x4 의 경계에서만 잠글 수가 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP