Share via


IDirect3DSwapChain9::P resent 메서드(d3d9helper.h)

스왑 체인이 소유한 백 버퍼 시퀀스에서 다음 버퍼의 내용을 표시합니다.

구문

HRESULT Present(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

매개 변수

[in] pSourceRect

형식: const RECT*

원본 사각형에 대한 포인터입니다( RECT 참조). NULL을 사용하여 전체 표면을 표시합니다. D3DSWAPEFFECT_COPY 스왑 체인을 만들지 않는 한 이 값은 NULL 이어야 합니다. 사각형이 원본 표면을 초과하면 사각형이 원본 표면으로 잘립니다.

[in] pDestRect

형식: const RECT*

클라이언트 좌표의 대상 사각형에 대한 포인터입니다( RECT 참조). D3DSWAPEFFECT_COPY 스왑 체인을 만들지 않는 한 이 값은 NULL 이어야 합니다. NULL을 사용하여 전체 클라이언트 영역을 채웁니다. 사각형이 대상 클라이언트 영역을 초과하면 사각형이 대상 클라이언트 영역으로 잘립니다.

[in] hDestWindowOverride

형식: HWND

클라이언트 영역을 이 프레젠테이션의 대상으로 사용하는 대상 창입니다. 이 값이 NULL이면 런타임은 프레젠테이션에 D3DPRESENT_PARAMETERShDeviceWindow 멤버를 사용합니다.

[in] pDirtyRegion

형식: const RGNDATA*

스왑 체인이 D3DSWAPEFFECT_COPY 만들어지지 않는 한 이 값은 NULL이어야 합니다. Surface 대칭 이동(Direct3D 9)을 참조하세요.

이 값이 NULL이 아닌 경우 포함된 영역은 백 버퍼 좌표로 표현됩니다. 지역 내의 사각형은 업데이트해야 하는 최소 픽셀 집합입니다. 이 메서드는 영역 내의 픽셀만 복사하거나 일부 적절하게 확장된 사각형 집합을 복사하여 프레젠테이션을 최적화할 때 이러한 사각형을 고려합니다. 이는 최적화에만 도움이 되며 애플리케이션은 정확히 복사되는 지역에 의존해서는 안 됩니다. 구현에서 전체 원본 사각형을 복사하도록 선택할 수 있습니다.

[in] dwFlags

형식: DWORD

드라이버가 프레젠테이션을 예약할 수 없다고 보고할 때 애플리케이션에서 메서드가 즉시 반환되도록 요청할 수 있습니다. 유효한 값은 0이거나 D3DPRESENT_DONOTWAIT 또는 D3DPRESENT_LINEAR_CONTENT 조합입니다.

  • dwFlags = 0이면 이 메서드는 Direct3D 9 이전과 같이 동작합니다. 오류가 반환되지 않고 하드웨어가 해제될 때까지 가 회전합니다.
  • dwFlags = D3DPRESENT_DONOTWAIT 하드웨어가 처리 중이거나 수직 동기화 간격을 기다리는 경우 메서드는 D3DERR_WASSTILLDRAWING 반환합니다.
  • dwFlags = D3DPRESENT_LINEAR_CONTENT 경우 창이 있는 스왑 체인에 대해 선형 공간에서 sRGB로 감마 보정이 수행됩니다. 이 플래그는 드라이버가 D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 노출하는 경우에만 적용됩니다( 감마(Direct3D 9 참조)). 백 버퍼 형식이 전체 화면 감마 동작에 있는 창 모드와 일치하기 위해 16비트 부동 소수점인 경우 애플리케이션에서 이 플래그를 지정해야 합니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY 중 하나일 수 있습니다.

설명

Present 메서드는 Present의 바로 가기입니다. 프레젠테이션은 드라이버가 프레젠테이션을 예약할 수 없다고 보고할 때 애플리케이션이 메서드가 즉시 반환하도록 요청하는 플래그를 사용하도록 업데이트되었습니다.

필요한 경우 원본 사각형 내의 픽셀을 대상 창의 클라이언트 영역에 있는 대상 사각형으로 전송하기 위해 스트레치 작업이 적용됩니다.

렌더링 대상이 현재 렌더링 대상이 아닌 경우(예: 추가 스왑 체인을 만들 때 가져오는 백 버퍼) BeginSceneEndScene 쌍 간에 호출되면 가 실패합니다. Direct3D 9의 새로운 동작입니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d9helper.h(D3D9.h 포함)
라이브러리 D3D9.lib

추가 정보

IDirect3DSwapChain9

Reset