Share via


PDD_VPORTCB_UPDATE 콜백 함수(ddrawint.h)

DdVideoPortUpdate 콜백 함수는 VPE 개체를 시작 및 중지하고 VPE 개체 데이터 스트림을 수정합니다.

구문

PDD_VPORTCB_UPDATE PddVportcbUpdate;

DWORD PddVportcbUpdate(
  PDD_UPDATEVPORTDATA unnamedParam1
)
{...}

매개 변수

unnamedParam1

드라이버가 VPE 개체를 업데이트하는 데 필요한 정보를 포함하는 DD_UPDATEVPORTDATA 구조를 가리킵니다.

반환 값

DdVideoPortUpdate 는 다음 콜백 코드 중 하나를 반환합니다.

설명

VPE를 지원하는 DirectDraw 드라이버는 DdVideoPortUpdate를 구현해야 합니다.

lpUpdate에서 DD_UPDATEVPORTDATA 구조체의 dwFlags 멤버가 DDRAWI_VPORTSTART 또는 DDRAWI_VPORTUPDATE 경우 드라이버는 다음을 수행해야 합니다.

  • DD_UPDATEVPORTDATA 요소의 lpVideoInfo 멤버가 가리키는 DDVIDEOPORTINFO 구조체의 dwVPFlags 멤버에 있는 모든 플래그를 확인합니다. 이러한 플래그는 드라이버가 비디오 데이터를 표면(또는 표면)으로 전송하는 방법을 설명합니다. 예를 들어 드라이버가 자동 플리핑을 수행해야 하는지, 비디오 또는 VBI 데이터를 자르는지 여부를 나타냅니다.
  • 화면이 배열에 저장되는 순서대로 화면에 비디오 및/또는 VBI 데이터를 쓰도록 하드웨어의 루프를 설정합니다. 드라이버는 이러한 루프를 설정한 후 가능한 한 빨리 반환해야 합니다.
  • 자동 플리핑이 요청된 경우 드라이버의 내부 데이터 구조에 각 표면에 대한 프레임 버퍼 오프셋을 저장합니다. 표면 오프셋은 DD_UPDATEVPORTDATA lplpDDSurface 및 lplpDDVBISurface 멤버의 DD_SURFACE_INT 배열에서 표면이 발생하는 순서대로 저장되어야 합니다. 이러한 방식으로 DdUpdateOverlay 가 호출되면 드라이버에는 표면 체인의 대칭 이동 순서에 대한 레코드가 있습니다.
DDVIDEOPORTINFO 구조체의 dwVBIHeight 멤버가 0보다 크고 lplpDDVBISurfaceNULL이 아닌 경우 드라이버는 dwVBIHeight의 숫자로 지정된 VBI 데이터의 줄을 lplpDDVBISurface가 가리키는 배열의 각 표면에 작성해야 합니다.

드라이버의 하드웨어가 자동 매핑을 요청할 때 지정된 표면 수를 지원할 수 없는 경우 DdVideoPortUpdate 는 DD_UPDATEVPORTDATA ddRVal 멤버에서 DDERR_UNSUPPORTED 설정하여 호출에 실패해야 합니다.

비디오 및 VBI 표면 체인의 표면 수는 다를 수 있습니다. 즉, DD_UPDATEVPORTDATA dwNumAutoflipdwNumVBIAutoflip 멤버는 서로 다른 값일 수 있습니다.

dwFlags가 DDRAWI_VPORTSTOP 드라이버가 즉시 반환되어야 합니다. 드라이버는 데이터 스트림이 중지될 때까지 폴링하면 안 됩니다.

요구 사항

   
대상 플랫폼 데스크톱
머리글 ddrawint.h(Winddi.h 포함)

추가 정보

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay