전체 화면 모드 동작
사용자 모드 표시 드라이버는 렌더링 디바이스가 전체 화면 모드에 있는지 확인할 수 있습니다.
전체 화면 비트 필드 플래그가 드라이버의 OpenResource 함수 호출에서 pResource 매개 변수가 가리키는 D3DDDIARG_OPENRESOURCE 구조체의 Flags 멤버에 설정된 경우
기본 비트 필드 플래그가 드라이버의 CreateResource 함수 호출에서 pResource 매개 변수가 가리키는 D3DDDIARG_CREATERESOURCE 구조체의 Flags 멤버에 설정된 경우
Microsoft DirectX 9.0 이하용으로 개발된 애플리케이션은 Microsoft Direct3D 런타임에서 OpenResource 를 호출하여 공유 기본 표면을 연 다음 CreateResource 를 호출하여 추가 백 버퍼를 만듭니다. Microsoft DirectX 9L 애플리케이션은 Direct3D 런타임에서 CreateResource 를 호출하여 (OpenResource를 호출하지 않고) 모든 스왑 체인 버퍼를 만듭니다. Direct3D 런타임은 각각 OpenResource 및 CreateResource 함수를 호출할 때 pResource 매개 변수가 가리키는 D3DDDIARG_OPENRESOURCE 및 D3DDDIARG_CREATERESOURCE 구조의 Rotation 멤버에서 기본 표면 방향을 지정합니다.
전체 화면 디바이스의 경우 사용자 모드 표시 드라이버는 회전된 리소스를 잠그고, 회전된 리소스로 렌더링하고, 회전된 리소스에서 비트 블록 전송(비트블렛)을 수행해야 합니다. 일반적으로 사용자 모드 표시 드라이버는 회전된 방향(모든 잠금, 비트블 및 렌더링은 이러한 중간 렌더링 대상으로 이동)과 가로 방향(즉, 디지털-아날로그 변환기[DAC]이 스캔하는 데 사용하는 방향)의 기본 할당으로 중간 렌더링 대상을 만듭니다. 데이터를 대칭 이동하기 위해 사용자 모드 표시 드라이버를 호출하면 pfnPresentCb 함수를 호출하여 대칭 이동 명령을 실행하기 전에 중간 렌더링 대상에서 가로 버퍼로 회전 비트블렛을 수행합니다.
사용자 모드 표시 드라이버가 회전된 리소스와 회전되지 않은 리소스를 포함하는 비트블렛을 수행해야 할 때마다 Direct3D 런타임은 드라이버의 Blt 함수 호출에서 D3DDDIARG_BLT 구조체의 Flags 멤버에 있는 회전 비트 필드 플래그를 지정하여 드라이버에 비트blt에 대해 적절한 회전이 발생해야 함을 나타냅니다.
DirectX 9L 애플리케이션은 회전을 인식할 수 있습니다. 즉, 모든 항목을 적절한 방향으로 렌더링하고 회전된 버퍼에 대한 잠금을 제대로 처리합니다. Direct3D 런타임이 회전 인식 애플리케이션에 대한 스왑 체인을 만들 때 사용자 모드 표시 드라이버가 회전 인식 애플리케이션이 작동하기 위해 특별한 작업을 수행할 필요가 없으므로 런타임은 항상 D3DDDIARG_CREATERESOURCE 구조의 회전 멤버에서 회전을 D3DDDI_ROTATION_IDENTITY 지정합니다.