다음을 통해 공유


IDirectDrawSurface7::Flip 메서드(ddraw.h)

DDSCAPS_BACKBUFFER 표면과 연결된 표면 메모리를 전면 버퍼 표면과 연결합니다.

구문

HRESULT Flip(
  [in] LPDIRECTDRAWSURFACE7 unnamedParam1,
  [in] DWORD                unnamedParam2
);

매개 변수

[in] unnamedParam1

대칭 이동 체인의 임의 표면에 대한 IDirectDrawSurface7 인터페이스에 대한 포인터입니다. 이 매개 변수의 기본값은 NULL입니다. 이 경우 DirectDraw는 서로 연결된 순서대로 버퍼를 순환합니다. 이 매개 변수가 NULL이 아닌 경우 DirectDraw는 대칭 이동 체인의 다음 표면 대신 지정된 표면으로 대칭 이동합니다. 지정된 표면이 칭 이동 체인의 멤버가 아닌 경우 대칭 이동이 실패합니다.

[in] unnamedParam2

대칭 이동 옵션을 지정하는 플래그의 조합입니다. 다음 플래그가 정의됩니다.

DDFLIP_DONOTWAIT

IDirectDrawSurface7 인터페이스에서 기본값은 DDFLIP_WAIT. 기본값을 재정의하고 액셀러레이터가 사용 중일 때(DDERR_WASSTILLDRAWING 반환 값으로 표시됨) 시간을 사용하려면 DDFLIP_DONOTWAIT 사용합니다.

DDFLIP_EVEN

오버레이 화면에 비디오를 표시할 때만 사용합니다. 새 표면에는 비디오 신호의 짝수 필드의 데이터가 포함되어 있습니다. 이 플래그는 DDFLIP_ODD 플래그와 함께 사용할 수 없습니다.

DDFLIP_STEREO

DirectDraw는 기본 스테레오 표면을 대칭 이동 및 표시합니다. 이 플래그를 설정하면 스테레오 자동 플리핑이 사용됩니다. 하드웨어는 각 화면을 새로 고치는 동안 왼쪽 버퍼와 오른쪽 버퍼 간에 자동으로 대칭 이동됩니다.

DDFLIP_INTERVAL2

DDFLIP_INTERVAL3

DDFLIP_INTERVAL4

DDFLIP_INTERVAL2, DDFLIP_INTERVAL3 및 DDFLIP_INTERVAL4 플래그는 각 대칭 이동 사이에 대기할 세로 추적 수를 나타냅니다. 기본값은 1입니다. DirectDraw는 지정된 수의 세로 리트레이스가 발생할 때까지 대칭 이동에 관련된 각 표면에 대한 DERR_WASSTILLDRAWING 반환합니다. DDFLIP_INTERVAL2 설정되면 DirectDraw는 두 번째 세로 동기화마다 대칭 이동됩니다. DDFLIP_INTERVAL3 경우 세 번째 동기화마다 및 가 DDFLIP_INTERVAL4 경우 네 번째 동기화마다 입니다.

이러한 플래그는 디스플레이 하드웨어에 대해 반환되는 DDCAPS 구조체의 dwCaps2 멤버에서 DDCAPS2_FLIPINTERVAL 비트가 설정된 경우에만 유효합니다.

DDFLIP_NOVSYNC

DirectDraw가 다음 검사 줄에 최대한 가깝게 물리적 대칭 이동을 수행하도록 합니다. 대칭 이동된 두 표면을 포함하는 후속 작업은 물리적 대칭 이동이 완료되었는지 여부를 검사 않습니다. 즉, 이러한 이유로 DDERR_WASSTILLDRAWING 반환하지 않습니다(하지만 다른 이유로 인해 발생할 수 있습니다). 이렇게 하면 애플리케이션이 모니터 새로 고침 속도보다 더 높은 빈도로 대칭 이동 작업을 수행할 수 있지만 표시되는 아티팩트가 발생할 수 있습니다.

디스플레이 하드웨어에 대해 반환되는 DDCAPS 구조체의 dwCaps2 멤버에서 DDCAPS2_FLIPNOVSYNC 설정되지 않은 경우 DDFLIP_NOVSYNC 아무런 영향을 주지 않습니다.

DDFLIP_ODD

오버레이 화면에 비디오를 표시할 때만 사용합니다. 새 표면에는 비디오 신호의 홀수 필드의 데이터가 포함됩니다. 이 플래그는 DDFLIP_EVEN 플래그와 함께 사용할 수 없습니다.

DDFLIP_WAIT

일반적으로 디스플레이 하드웨어의 상태가 적절하지 않아 대칭 이동이 설정되지 않으면 DDERR_WASSTILLDRAWING 오류가 즉시 반환되고 대칭 이동이 발생하지 않습니다. 이 플래그를 설정하면 HAL(하드웨어 추상화 계층)에서 DDERR_WASSTILLDRAWING 오류를 수신하는 경우 Flip 이 계속 대칭 이동하려고 합니다. 칭 이동 작업이 성공적으로 설정되거나 DDERR_SURFACEBUSY 같은 다른 오류가 반환될 때까지 Flip이 반환되지 않습니다.

반환 값

메서드가 성공하면 반환 값이 DD_OK.

실패하면 메서드는 다음 오류 값 중 하나를 반환할 수 있습니다.

  • DDERR_GENERIC
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_NOFLIPHW
  • DDERR_NOTFLIPPABLE
  • DDERR_SURFACEBUSY
  • DDERR_SURFACELOST
  • DDERR_UNSUPPORTED
  • DDERR_WASSTILLDRAWING

설명

IDirectDrawSurface7을 사용하면 Flip의 기본 동작은 가속기가 완료되기를 기다리는 것입니다. 따라서 기본 조건에서 Flip 은 DDERR_WASSTILLDRAWING 반환하지 않습니다. 오류 코드를 보고 대칭 이동 작업이 성공할 때까지 기다리지 않으려면 DDFLIP_DONOTWAIT 플래그를 사용합니다.

flip 은 DDSCAPS_FLIP 및 DDSCAPS_FRONTBUFFER 기능이 있는 표면에 대해서만 호출할 수 있습니다. 이전에 전면 버퍼와 연결된 디스플레이 메모리는 백 버퍼와 연결됩니다.

lpDDSurfaceTargetOverride 매개 변수는 백 버퍼가 전면 버퍼가 되어야 하는 버퍼가 아닌 드문 경우에 사용됩니다. 일반적으로 이 매개 변수는 NULL입니다.

대칭 이동 은 항상 세로 공백과 동기화됩니다. 화면이 비디오 포트에 할당된 경우 이 메서드는 비디오 포트의 표시되는 오버레이 표면과 대상 표면을 업데이트합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 ddraw.h
라이브러리 Ddraw.lib
DLL Ddraw.dll

추가 정보

IDirectDrawSurface7