PDD_VPORTCB_GETBANDWIDTH fungsi panggilan balik (ddrawint.h)
Fungsi panggilan balik DdVideoPortGetBandwidth melaporkan batasan bandwidth memori buffer bingkai perangkat berdasarkan format output objek VPE yang ditentukan.
Sintaks
PDD_VPORTCB_GETBANDWIDTH PddVportcbGetbandwidth;
DWORD PddVportcbGetbandwidth(
PDD_GETVPORTBANDWIDTHDATA unnamedParam1
)
{...}
Parameter
unnamedParam1
Menunjuk ke struktur DD_GETVPORTBANDWIDTHDATA yang berisi informasi yang diperlukan driver untuk mengembalikan data bandwidth.
Menampilkan nilai
DdVideoPortGetBandwidth mengembalikan salah satu kode panggilan balik berikut:
Keterangan
DdVideoPortGetBandwidth harus diimplementasikan di driver DirectDraw yang mendukung VPE.
DdVideoPortGetBandwidth memberi tahu klien tentang persyaratan bandwidth untuk format tertentu, membantu mereka memilih format dan lebih memahami batasannya. Driver dapat menyediakan informasi bandwidth yang akurat hanya setelah objek VPE dibuat karena driver membutuhkan informasi dalam struktur DDVIDEOPORTDESC .
DdVideoPortGetBandwidth biasanya dipanggil dua kali untuk mendapatkan parameter bandwidth port video perangkat keras yang ditentukan. Tergantung pada anggota dwFlags dari struktur DD_GETVPORTBANDWIDTHDATA di lpGetVideoPortBandwidth, driver harus melakukan hal berikut:
-
Ketika bendera DDVPB_TYPE, driver harus menunjukkan jenis perangkatnya dengan mengatur salah satu bendera berikut di anggota dwCaps dari struktur DDVIDEOPORTBANDWIDTH tempat anggota lpBandwidth DD_GETVPORTBANDWIDTHDATA poin:
- DDVPBCAPS_DESTINATION menunjukkan bahwa perangkat akan menggambarkan kemampuan bandwidthnya dalam hal faktor peregangan overlay; artinya, bahwa informasi bandwidth yang dikembalikan oleh driver dalam panggilan berikutnya ke DdVideoPortGetBandwidth akan mengacu pada ukuran overlay tujuan. Bendera ini paling menggambarkan perangkat keras yang di-refresh dari permukaan primer dan overlay secara bersamaan. Saat video tujuan direntangkan, perangkat keras memiliki lebih banyak waktu untuk membaca piksel dari permukaan overlay, mengurangi bandwidth memori yang diperlukan.
- DDVPBCAPS_SOURCE menunjukkan bahwa perangkat akan menjelaskan kemampuan bandwidthnya dalam hal ukuran overlay sumber yang diperlukan; artinya, informasi bandwidth yang dikembalikan oleh panggilan berikutnya ke DdVideoPortGetBandwidth mengacu pada ukuran overlay sumber. Bendera ini paling tepat menggambarkan perangkat keras yang mengambil data overlay ke dalam buffer baris atau FIFO besar. Perangkat keras tersebut tidak memerlukan bandwidth tambahan, tetapi mengharuskan data overlay sumber sepenuhnya sesuai dengan ukuran buffer/FIFO yang didukung oleh perangkat keras.
Driver juga harus mengatur anggota dwSize dari struktur DDVIDEOPORTBANDWIDTH sebelum kembali.
-
Ketika bendera DDVPB_VIDEOPORT, anggota dwWidth dan dwHeight dalam struktur DD_GETVPORTBANDWIDTHDATA mengacu pada ukuran preskal data video yang akan ditulis port video perangkat keras ke buffer bingkai sebagai overlay sumber. Driver harus mengembalikan faktor peregangan overlay di mana perangkat dapat menampilkan overlay, dikalikan dengan 1000, di setiap struktur dwOverlay, dwColorkey, dwYInterpolate, dan dwYInterpAndColorkey dari struktur DDVIDEOPORTBANDWIDTH. Misalnya, nilai 2000 menunjukkan bahwa perangkat memiliki bandwidth untuk meregangkan overlay hingga dua kali ukuran sumber yang ditentukan saat menampilkannya. Nilai 1000 menunjukkan bahwa tidak ada peregangan yang perlu dilakukan untuk ukuran data yang ditentukan. Nilai 500 menunjukkan bahwa perangkat memiliki bandwidth yang cukup untuk menyusutkan tujuan overlay menjadi dua. Driver harus menetapkan nilai yang valid di dwOverlay, tetapi dapat mengembalikan -1 di salah satu dari tiga anggota lain yang tidak didukungnya.
Bendera DDVPB_VIDEOPORT mengasumsikan bahwa perangkat paling baik dijelaskan oleh bendera DDVPBCAPS_DESTINATION. Jika tidak demikian, driver harus gagal dalam panggilan.
-
Saat bendera DDVPB_OVERLAY diatur, anggota dwWidth dan dwHeight dalam struktur DD_GETVPORTBANDWIDTHDATA mengacu pada ukuran overlay sumber. Driver harus mengembalikan persentase ukuran overlay ini, dikalikan dengan 1000, di mana ia dapat mendukung menampilkan overlay di setiap struktur dwOverlay, dwColorkey, dwYInterpolate, dan dwYInterpAndColorkey dari struktur DDVIDEOPORTBANDWIDTH. Misalnya, nilai 750 menunjukkan bahwa perangkat memerlukan overlay sumber yang ditentukan untuk menyusut hingga 75% dari ukuran aslinya agar perangkat berhasil menampilkannya. Nilai 1000 menunjukkan bahwa tidak diperlukan penyusutan. Driver untuk jenis perangkat ini biasanya tidak mengembalikan nilai yang lebih besar dari 1000. Driver harus menetapkan nilai yang valid di dwOverlay, tetapi dapat mengembalikan 0 di salah satu dari tiga anggota lainnya jika tidak mendukung keying warna dan/atau interpolasi sumbu Y.
Bendera DDVPB_OVERLAY mengasumsikan bahwa perangkat paling baik dijelaskan menggunakan bendera DDVPBCAPS_SOURCE. Jika tidak demikian, driver harus gagal dalam panggilan.
Persyaratan
Target Platform | Desktop |
Header | ddrawint.h (termasuk Winddi.h) |