Bagikan melalui


PDD_VPORTCB_UPDATE fungsi panggilan balik (ddrawint.h)

Fungsi panggilan balik DdVideoPortUpdate memulai dan menghentikan objek VPE, dan memodifikasi aliran data objek VPE.

Sintaks

PDD_VPORTCB_UPDATE PddVportcbUpdate;

DWORD PddVportcbUpdate(
  PDD_UPDATEVPORTDATA unnamedParam1
)
{...}

Parameter

unnamedParam1

Menunjuk ke struktur DD_UPDATEVPORTDATA yang berisi informasi yang diperlukan driver untuk memperbarui objek VPE.

Menampilkan nilai

DdVideoPortUpdate mengembalikan salah satu kode panggilan balik berikut:

Keterangan

Driver DirectDraw yang mendukung VPE harus menerapkan DdVideoPortUpdate.

Ketika anggota dwFlags dari struktur DD_UPDATEVPORTDATA di lpUpdate DDRAWI_VPORTSTART atau DDRAWI_VPORTUPDATE, driver harus melakukan hal berikut:

  • Periksa semua bendera dalam anggota dwVPFlags dari struktur DDVIDEOPORTINFO tempat anggota lpVideoInfo DD_UPDATEVPORTDATA poin. Bendera ini menjelaskan bagaimana driver harus mentransfer data video ke permukaan (atau permukaan); misalnya, mereka menunjukkan apakah driver harus melakukan autoflipping, memangkas data video atau VBI , dll.
  • Siapkan perulangan di perangkat keras untuk menulis data video dan/atau VBI ke permukaan dalam urutan permukaan disimpan dalam array. Driver harus kembali secepat mungkin setelah menyiapkan perulangan ini.
  • Jika autoflipping telah diminta, simpan offset buffer bingkai untuk setiap permukaan dalam struktur data internal driver. Offset permukaan harus disimpan dalam urutan di mana permukaan terjadi dalam array DD_SURFACE_INT di anggota lplpDDSurface dan lplpDVBISurface dari DD_UPDATEVPORTDATA. Dengan cara ini, ketika DdUpdateOverlay dipanggil, driver memiliki catatan urutan membalik rantai permukaan.
Jika anggota dwVBIHeight dari struktur DDVIDEOPORTINFO lebih besar dari nol dan lplpDDVBISurface bukan NULL, driver harus menulis baris data VBI yang ditentukan oleh angka dalam dwVBIHeight ke setiap permukaan dalam array tempat lplpDDVBISurface menunjuk.

Jika perangkat keras driver tidak dapat mendukung jumlah permukaan yang ditentukan saat autoflipping diminta, DdVideoPortUpdate harus gagal dalam panggilan dengan mengatur DDERR_UNSUPPORTED di anggota ddRVal DD_UPDATEVPORTDATA.

Jumlah permukaan dalam video dan rantai permukaan VBI bisa berbeda; artinya, anggota dwNumAutoflip dan dwNumVBIAutoflip dari DD_UPDATEVPORTDATA dapat menjadi nilai yang berbeda.

Ketika dwFlags DDRAWI_VPORTSTOP, driver harus segera kembali. Driver tidak boleh melakukan polling hingga aliran data berhenti.

Persyaratan

   
Target Platform Desktop
Header ddrawint.h (termasuk Winddi.h)

Lihat juga

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay