다음을 통해 공유


D3DPRESENT

어댑터 새로 고침 빈도와 Present 또는 Present 작업이 완료된 속도 간의 관계를 설명합니다. 이러한 값은 D3DCAPS9의 PresentationIntervals 필드에 대한 플래그 값으로도 사용할 수 있습니다.

상수 설명
D3DPRESENT_DONOTFLIP
렌더링하는 동안 전면 버퍼를 원본 및 대상 표면으로 사용합니다. 프레임 동기화가 예약되어 있지만 표시된 표면은 변경되지 않습니다. 이 플래그는 애플리케이션이 전체 화면 모드이고 D3DSWAPEFFECT_FLIPEX 지정된 경우에만 사용할 수 있습니다.
이 플래그는 Direct3D 9Ex에서만 사용할 수 있습니다.
D3DPRESENT_DONOTWAIT
hal 디바이스에서 프레젠테이션을 예약할 수 없습니다. 이 플래그가 Present 호출에서 설정되고 하드웨어가 처리 중이거나 수직 동기화 간격을 기다리는 경우 Present는 D3DERR_WASSTILLDRAWING 반환하여 블릿 작업이 완료되지 않았음을 나타냅니다.
D3DPRESENT_FLIPRESTART
예약되어 있습니다.
D3DPRESENT_FORCEIMMEDIATE
D3DPRESENT_INTERVAL_IMMEDIATE 이 Present 호출에 적용됩니다. 이 플래그는 D3DSWAPEFFECT_FLIPEX 사용하는 경우에만 지정할 수 있습니다. 창 및 전체 화면 프레젠테이션 동작은 동일합니다. 이는 늦게 검색된 프레임을 삭제하고 컴퍼지션 시 후속 프레임을 표시하려는 미디어 앱에 특히 유용합니다. 이 플래그를 잘못 지정하면 잘못된 매개 변수 오류가 반환됩니다. D3DPRESENT_FORCEIMMEDIATEs 있는 여러 개의 연속 프레임이 큐에 대기 중인 경우 창 및 전체 화면 프레젠테이션 모두에 대해 마지막 프레임만 표시됩니다.
이 플래그는 Windows 7 이상 운영 체제의 Direct3D 9Ex에서 사용할 수 있습니다.
D3DSWAPEFFECT_FLIPEX 사용하는 경우 D3DPRESENT_INTERVAL_IMMEDIATE 또는 D3DPRESENT_INTERVAL_FORCEIMMEDIATE 사용하여 표시되는 각 프레임은 이전 프레임의 현재 간격을 재정의합니다. 예를 들어 프레임 A(D3DPRESENT_INTERVAL_ONE), 프레임 B(D3DPRESENT_INTERVAL_ONE), 프레임 C(D3DPRESENT_INTERVAL_ONE), 프레임 D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE) 등의 스왑 효과를 사용하여 프레임을 큐에 넣은 경우 프레임 D는 프레임 C의 현재 간격을 재정의합니다. 현재 간격당 표시된 프레임은 프레임 A, 프레임 B, 프레임 C 재정의 기준) 프레임 D입니다.
설명 부분을 참조하세요.
D3DPRESENT_INTERVAL_DEFAULT
이는 D3DPRESENT_INTERVAL_ONE 거의 동일합니다. 설명을 참조하세요.
D3DPRESENT_INTERVAL_ONE
드라이버는 수직 리트레이스 기간(런타임이 찢어지는 것을 방지하기 위해 "빔 팔로우")을 기다립니다. 현재 작업은 화면 새로 고침보다 더 자주 영향을 받지 않습니다. 런타임은 어댑터 새로 고침 기간당 최대 하나의 현재 작업을 완료합니다. 이는 DirectX 8.1에서 D3DSWAPEFFECT_COPYVSYNC 사용하는 것과 같습니다. 이 옵션은 창 및 전체 화면 스왑 체인 모두에서 항상 사용할 수 있습니다. 설명을 참조하세요.
D3DPRESENT_INTERVAL_TWO
드라이버는 수직 리트레이스 기간을 기다립니다. 현재 작업은 매 초 화면 새로 고침보다 더 자주 영향을 받지 않습니다. PresentationIntervals 상한( D3DCAPS9 참조)을 확인하여 드라이버에서 D3DPRESENT_INTERVAL_TWO 지원되는지 확인합니다.
D3DPRESENT_INTERVAL_THREE
드라이버는 수직 리트레이스 기간을 기다립니다. 현재 작업은 세 번째 화면 새로 고침보다 더 자주 영향을 받지 않습니다. PresentationIntervals 상한( D3DCAPS9 참조)을 확인하여 드라이버에서 D3DPRESENT_INTERVAL_THREE 지원되는지 확인합니다.
D3DPRESENT_INTERVAL_FOUR
드라이버는 수직 리트레이스 기간을 기다립니다. 현재 작업은 네 번째 화면 새로 고침보다 더 자주 영향을 받지 않습니다. PresentationIntervals 멤버( D3DCAPS9 참조)를 확인하여 드라이버에서 D3DPRESENT_INTERVAL_FOUR 지원되는지 확인합니다.
D3DPRESENT_INTERVAL_IMMEDIATE
런타임은 창 클라이언트 영역을 즉시 업데이트하고 어댑터 새로 고침 기간 동안 두 번 이상 업데이트할 수 있습니다. 이는 DirectX 8에서 D3DSWAPEFFECT_COPY 사용하는 것과 같습니다. 현재 작업은 즉시 영향을 받을 수 있습니다. 이 옵션은 창 및 전체 화면 스왑 체인 모두에서 항상 사용할 수 있습니다. 설명을 참조하세요.
D3DPRESENT_LINEAR_CONTENT
표시할 백 버퍼의 콘텐츠는 선형 색 공간에 있습니다.
  • 프레젠테이션은 선형 공간에서 sRGB(감마 = 2.2)로 암시적으로 변환됩니다. 이는 지원되는 유일한 변환입니다.
  • 이 플래그는 백 버퍼 콘텐츠의 속성을 나타내므로 Present 호출 중에 플래그를 지정할 수 있습니다. 즉, 애플리케이션은 선형 콘텐츠를 한 프레임에 표시한 다음, 다음 프레임에서 수정된 콘텐츠로 전환할 수 있습니다.
  • 스왑 체인이 전체 화면일 때 이 플래그는 무시됩니다. (이 플래그는 Present의 명시적 스왑 체인 버전에서만 사용할 수 있습니다. Present 메서드는 flags 매개 변수를 사용하지 않습니다.)
  • 이 플래그는 항상 허용되지만 드라이버가 D3DCAPS3_LINEAR_TO_SRGB_PresentATION 노출하는 경우에만 적용됩니다 >.
  • 지원되는 유일한 백 버퍼 형식은 X8R8G8B8입니다.
창 스왑 체인을 참조하세요.
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
렌더링된 콘텐츠를 어댑터가 대상으로 하는 모니터/디바이스에 잘라내고 Flip3D 보기의 콘텐츠에 대한 축소판 그림과 다른 모니터의 작업 표시줄 미리 보기를 표시합니다.
이 플래그는 Direct3D 9Ex에서만 사용할 수 있습니다.
Windows Vista의 이 기능에 대한 자세한 내용은 데스크톱 창 관리자 를 참조하세요. 데스크톱 컴퍼지션 모드에서 실행하지 않는 경우 플래그는 D3DPRESENTFLAG_DEVICECLIP 동일한 동작을 제공합니다.
참고: 이 플래그는 스왑 효과 D3DSWAPEFFECT_FLIPEX 사용해야 합니다. 이 플래그를 다른 스왑 효과와 함께 사용하는 것은 더 이상 사용되지 않으며 이후 버전의 Windows에서는 작동하지 않을 수 있습니다.
D3DPRESENT_UPDATEOVERLAYONLY
실제 대칭 이동이 발생하지 않고 이미지가 표시되는 기간을 변경하지 않고 오버레이 위치 또는 colorkey 데이터를 업데이트.
이 플래그는 Direct3D 9Ex에서만 사용할 수 있습니다.
D3DPRESENT_HIDEOVERLAY
오버레이 하드웨어를 끕니다.
이 플래그는 Direct3D 9Ex에서만 사용할 수 있습니다.
D3DPRESENT_UPDATECOLORKEY
색 키 데이터를 다시 그어 줍니다.
이 플래그는 Direct3D 9Ex에서만 사용할 수 있습니다.

설명

창 모드는 D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_IMMEDIATE 및 D3DPRESENT_INTERVAL_ONE 지원합니다. D3DPRESENT_INTERVAL_DEFAULT 및 D3DPRESENT_INTERVAL_ONE 거의 동일합니다(아래 타이머 해상도에 대한 정보 참조). 프레임당 하나만 존재하고 빔 팔로우로 찢어지는 것을 방지한다는 COPY_VSYNC 유사하게 수행합니다. 반면, D3DPRESENT_INTERVAL_IMMEDIATE 무제한 프레젠테이션 속도를 제공하려고 시도합니다.

전체 화면 모드는 새로 고침 빈도 또는 스왑 효과에 관계없이 D3DPRESENT_INTERVAL_IMMEDIATE 지원하여 창 모드와 유사한 사용을 지원합니다. D3DPRESENT_INTERVAL_DEFAULT 기본 시스템 타이머 해상도를 사용하는 반면 D3DPRESENT_INTERVAL_ONE timeBeginPeriod 를 호출하여 시스템 타이머 해상도를 향상시킵니다. 이렇게 하면 수직 동기화의 품질이 향상되지만 처리 시간이 약간 더 많이 소비됩니다. 두 매개 변수 모두 세로로 동기화를 시도합니다.

요구 사항

요구 사항
헤더
D3d9.h

추가 정보

Direct3D 상수