다음을 통해 공유


장면 프레젠테이션 소개(Direct3D 9)

프레젠테이션 API는 사용자가 모니터에서 보는 내용에 영향을 주는 디바이스의 상태를 제어하는 메서드 집합입니다. 이러한 메서드에는 사용자에게 이미지를 표시하는 데 사용되는 디스플레이 모드 및 프레임당 한 번 메서드 설정이 포함됩니다.

프레젠테이션 API를 이해하려면 다음 용어를 숙지해야 합니다.

  • 프런트 버퍼. 그래픽 어댑터로 변환되고 모니터 또는 기타 출력 디바이스에 표시되는 메모리 사각형입니다.
  • 백 버퍼. 콘텐츠를 전면 버퍼로 승격할 수 있는 표면입니다.
  • 스왑 체인. 전면 버퍼에 직렬로 표시할 수 있는 백 버퍼의 컬렉션입니다. 일반적으로 전체 화면 스왑 체인은 DDI(대칭 이동 디바이스 드라이버 인터페이스)를 사용하여 후속 이미지를 표시하고, 창이 있는 스왑 체인은 블리팅 DDI가 있는 이미지를 제공합니다.

Direct3D 9에는 디바이스의 속성으로 하나의 스왑 체인이 있으므로 항상 디바이스당 하나 이상의 스왑 체인이 있습니다. IDirect3DDevice9 인터페이스에는 암시적 스왑 체인을 조작하는 메서드 집합이 있으며 스왑 체인 자체 인터페이스의 복사본입니다. 애플리케이션은 추가 스왑 체인을 만들 수 있습니다. 그러나 일반적인 단일 창 또는 전체 화면 애플리케이션에는 필요하지 않습니다.

전면 버퍼는 Direct3D 9에서 직접 노출되지 않습니다. 따라서 애플리케이션은 프런트 버퍼를 잠그거나 렌더링할 수 없습니다. 자세한 내용은 색 전면 버퍼 액세스(Direct3D 9)를 참조하세요.

참고

DirectX 7은 함께 호출된 여러 프레젠테이션 API를 제공했습니다. 이 예제의 좋은 예는 IDirectDraw7::SetCooperativeLevel, IDirectDraw7::SetDisplayMode 및 IDirectDraw7::CreateSurface 시퀀스입니다. 또한 IDirectDrawSurface7::Flip 및 IDirectDrawSurface7::Blt 메서드는 렌더링된 프레임을 모니터로 전송하는 신호를 보냅니다. Direct3D 9는 이러한 API 그룹을 두 가지 기본 메서드인 Reset 및 Present로 축소합니다. SetCooperativeLevel, SetDisplayMode, CreateSurface 및 대칭 이동하려는 일부 매개 변수를 다시 설정합니다. 프레젠테이션 하위 소거 대칭 이동 및 프레젠테이션에서 blit를 사용합니다.

 

IDirect3D9::CreateDevice 호출은 디바이스의 암시적 재설정을 나타냅니다. Direct3D 9 API에는 기본 표면에 대한 개념이 없습니다. 기본 표면을 나타내는 개체를 만들 수 없습니다. 디바이스의 내부 속성으로 간주됩니다.

감마 램프는 스왑 체인과 연결되며 IDirect3DDevice9::GetGammaRampIDirect3DDevice9::SetGammaRamp 메서드로 조작됩니다.

장면 표시