IDXGISwapChain1::P resent1 메서드(dxgi1_2.h)
디스플레이 화면에 프레임을 표시합니다.
구문
HRESULT Present1(
UINT SyncInterval,
UINT PresentFlags,
[in] const DXGI_PRESENT_PARAMETERS *pPresentParameters
);
매개 변수
SyncInterval
프레임의 프레젠테이션을 세로 공백과 동기화하는 방법을 지정하는 정수입니다.
비트 블록 전송(비트블렛) 모델(DXGI_SWAP_EFFECT_DISCARD 또는 DXGI_SWAP_EFFECT_SEQUENTIAL)의 경우 값은 다음과 같습니다.
- 0 - 프레젠테이션이 즉시 발생하며 동기화가 없습니다.
- 1~4 - n번째 세로 공백 이후에 프레젠테이션을 동기화합니다.
- 0 - 이전에 제공된 프레임의 남은 시간을 취소하고 최신 프레임이 대기 중인 경우 이 프레임을 삭제합니다.
- 1~4 - n 개 이상의 세 로 공백에 대해 프레젠테이션을 동기화합니다.
업데이트 영역이 둘 이상의 출력(각각 IDXGIOutput1로 표시됨)에 걸쳐 있는 경우 Present1 은 대상 창의 클라이언트 영역 중 가장 큰 하위 사각형을 포함하는 출력에 대한 동기화를 수행합니다.
PresentFlags
스왑 체인 프레젠테이션 옵션이 포함된 정수 값입니다. 이러한 옵션은 DXGI_PRESENT 상수로 정의됩니다.
[in] pPresentParameters
업데이트된 사각형과 표시할 프레임의 스크롤 정보를 설명하는 DXGI_PRESENT_PARAMETERS 구조체에 대한 포인터입니다.
반환 값
가능한 반환 값에는 S_OK, DXGI_ERROR_DEVICE_REMOVED , DXGI_STATUS_OCCLUDED, DXGI_ERROR_INVALID_CALL 또는 E_OUTOFMEMORY 있습니다.
설명
앱은 Present1을 사용하여 스크롤 및 더티 사각형을 지정하여 프레젠테이션을 최적화할 수 있습니다. 런타임에 이러한 사각형에 대한 정보가 있는 경우 런타임은 프레젠테이션 중에 필요한 비트블렛을 보다 효율적으로 수행하고 이 메타데이터를 DWM(데스크톱 창 관리자)에 전달할 수 있습니다. 그런 다음 DWM은 메타데이터를 사용하여 프레젠테이션을 최적화하고 메타데이터를 간접 디스플레이 및 터미널 서버에 전달하여 유선 트래픽을 최적화할 수 있습니다. 앱은 수정 내용을 Present1에 전달하는 더티 지역으로만 제한하고, 정의되지 않은 리소스 콘텐츠가 노출되지 않도록 전체 더티 지역을 수정해야 합니다.
DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 값 집합을 사용하여 만든 대칭 이동 프레젠테이션 모델 스왑 체인의 경우 Flags 매개 변수에서 DXGI_PRESENT_DO_NOT_SEQUENCE 플래그를 전달하는 경우를 제외하고 프레젠테이션에 성공하면 그래픽 파이프라인에서 백 버퍼 0의 바인딩이 해제됩니다.
화면에 콘텐츠를 표시할 때 데이터 값이 어떻게 변경되는지에 대한 자세한 내용은 색 공간에 대한 데이터 변환을 참조하세요.
앱에서 여러 스레드를 사용할 때 Present1 을 호출하는 방법에 대한 자세한 내용은 다중 스레드 고려 사항 및 다중 스레딩 및 DXGI를 참조하세요.
프레젠테이션 모델 대칭 이동 큐
Present1을 호출하기 전에 동기화 간격 값이 있는 다음 프레임이 가장 오래된(A)에서 최신(E)로 큐에 대기한다고 가정합니다.A: 3, B: 0, C: 0, D: 1, E: 0
Present1을 호출하면 런타임에 1의 세로 공백 간격에 대해서만 프레임 A가 표시됩니다. 런타임은 프레임 B의 동기화 간격 0으로 인해 프레임 A를 일찍 종료합니다. 그런 다음 런타임은 세로 간격 1의 프레임 D를 표시한 다음, 새 프레젠테이션을 제출할 때까지 E 프레임을 표시합니다. 런타임은 프레임 B 및 C를 삭제합니다.
가변 새로 고침 빈도 표시
가변 새로 고침 빈도 표시의 요구 사항으로, 찢기 기능을 사용할 수 있습니다. CheckFeatureSupport 메서드를 사용하여 이 기능을 사용할 수 있는지 확인하고 필요한 플래그를 설정하는 것은 DXGI_PRESENT_ALLOW_TEARING 및 DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING 대한 설명을 참조하며, 변수 새로 고침 빈도는 DXGI 1.5 개선 사항의 섹션을 표시/Vsync 해제합니다.요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | dxgi1_2.h |
라이브러리 | Dxgi.lib |