struktur DXGKARG_PRESENT (d3dkmddi.h)

Struktur DXGKARG_PRESENT menjelaskan operasi penyalinan sumber ke primer.

Sintaks

typedef struct _DXGKARG_PRESENT {
  [out]    VOID                     *pDmaBuffer;
  [in]     UINT                     DmaSize;
  [in]     VOID                     *pDmaBufferPrivateData;
  [in]     UINT                     DmaBufferPrivateDataSize;
  union {
    [in]     DXGK_ALLOCATIONLIST               *pAllocationList;
    [in]     DXGK_PRESENTALLOCATIONINFO        *pAllocationInfo;
    [in]     DXGK_PRESENTMULTIPLANEOVERLAYINFO *pPresentMultiPlaneOverlayInfo;
  };
#if ...
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#if ...
  [in]     UINT                     PatchLocationListOutSize;
  [in]     DXGK_ALLOCATIONLIST      *pAllocationList;
#else
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#endif
#else
  [in]     UINT                     PatchLocationListOutSize;
#endif
  [in/out] UINT                     MultipassOffset;
  [in]     UINT                     Color;
  [in]     RECT                     DstRect;
  [in]     RECT                     SrcRect;
  [in]     UINT                     SubRectCnt;
  [in]     const RECT               *pDstSubRects;
  [in]     D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
  [in]     DXGK_PRESENTFLAGS        Flags;
  [in]     UINT                     DmaBufferSegmentId;
  [in]     PHYSICAL_ADDRESS         DmaBufferPhysicalAddress;
  [in]     UINT                     Reserved;
           D3DGPU_VIRTUAL_ADDRESS   DmaBufferGpuVirtualAddress;
           UINT                     NumSrcAllocations;
           UINT                     NumDstAllocations;
           UINT                     PrivateDriverDataSize;
           PVOID                    pPrivateDriverData;
} DXGKARG_PRESENT;

Anggota

[out] pDmaBuffer

Penunjuk ke awal buffer DMA, yang selaras pada 4 KB. Buffer ini dapat dikirim melalui DMA ke perangkat keras grafis. Sebelum driver miniport tampilan kembali dari fungsi DxgkDdiPresent , driver harus mengatur pDmaBuffer ke byte kosong berikutnya yang mengikuti byte terakhir yang ditulis driver, atau driver harus menunjuk ke lokasi (satu byte di luar ruang buffer) jika tidak ada lagi ruang yang tersedia. Lokasi ini akan benar jika buffer cukup besar.

[in] DmaSize

Ukuran, dalam byte, dari buffer DMA yang dituju pDmaBuffer .

[in] pDmaBufferPrivateData

Penunjuk ke struktur data privat residen pengemudi yang terkait dengan buffer DMA yang dituju pDmaBuffer .

[in] DmaBufferPrivateDataSize

Jumlah byte yang tetap berada dalam struktur data privat yang dituju pDmaBufferPrivateData untuk operasi saat ini.

[in] pAllocationList

Array struktur DXGK_ALLOCATIONLIST yang menjelaskan sumber, tujuan, atau keduanya untuk operasi salin. Driver mengakses handel alokasi sumber melalui anggota hDeviceSpecificAllocation dari elemen pAllocationList[DXGK_PRESENT_SOURCE_INDEX] (yaitu, elemen 1). Driver mengakses handel alokasi tujuan melalui anggota hDeviceSpecificAllocation dari elemen pAllocationList[DXGK_PRESENT_DESTINATION_INDEX] (yaitu, elemen 2).

Handel yang ditentukan dalam elemen daftar alokasi adalah handel khusus perangkat yang dikembalikan fungsi DxgkDdiOpenAllocation driver ketika alokasi dibuka. Jika sumber atau tujuan tidak ada untuk operasi, anggota hDeviceSpecificAllocation dari masing-masing elemen adalah NULL. Anggota ini tersedia dimulai dengan Windows 7.

Catatan

Anggota hDeviceSpecificAllocation dari elemen pertama dalam daftar alokasi (elemen 0) selalu NULL.

[in] pAllocationInfo

Dicadangkan untuk penggunaan sistem. Driver miniport tampilan harus mengabaikan anggota ini. Anggota ini tersedia dimulai dengan Windows 7.

[in] pPresentMultiPlaneOverlayInfo

Penunjuk ke struktur jenis DXGK_PRESENTMULTIPLANEOVERLAYINFO yang menentukan info pada input VidPN dan bidang overlay untuk ditampilkan.

Didukung dimulai dengan Windows 8.

[in/out] pPatchLocationListOut

Array struktur D3DDDI_PATCHLOCATIONLIST untuk daftar lokasi patch yang diisi driver miniport tampilan. Sebelum driver kembali dari panggilan ke fungsi DxgkDdiPresent , driver harus mengatur pPatchLocationListOut ke elemen D3DDDI_PATCHLOCATIONLIST berikutnya yang mengikuti elemen D3DDDI_PATCHLOCATIONLIST terakhir yang diperbarui driver.

[in] PatchLocationListOutSize

Jumlah elemen dalam daftar lokasi patch yang ditentukan pPatchLocationListOut . Driver miniport tampilan tidak diperlukan untuk mengisi semua elemen di seluruh daftar; driver hanya harus menggunakan elemen yang diperlukan untuk menggambarkan lokasi patch dalam buffer DMA.

[in/out] MultipassOffset

Nilai UINT yang menentukan kemajuan operasi penyalinan jika fungsi DxgkDdiPresent driver miniport tampilan harus mengembalikan STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER untuk mendapatkan buffer DMA baru. Ketika fungsi DxgkDdiPresent driver pertama kali dipanggil dengan daftar RECT baru, MultipassOffset diinisialisasi ke nol. Sebelum driver kembali dari panggilan DxgkDdiPresent , driver mengatur MultipassOffset untuk menunjukkan kemajuan penyalinan untuk panggilan DxgkDdiPresent berikutnya dengan buffer perintah yang sama. Subsistem kernel grafis Microsoft DirectX tidak mengubah nilai lebih lanjut.

[in] Color

Warna A8R8G8B8 dalam operasi isian warna, yang ditentukan oleh bendera bit-field ColorFill yang diatur dalam anggota Bendera , atau operasi kunci warna, yang ditentukan oleh bendera bit-field SrcColorKey atau DstColorKey . Perhatikan bahwa hanya satu bendera bidang bit ColorFill, SrcColorKey, dan DstColorKey yang diatur kapan saja.

Jika format utama diplettisasi RGB, Warna berisi indeks palet daripada nilai D3DDDIFMT_A8R8G8B8 dari jenis enumerasi D3DDDIFORMAT .

[in] DstRect

Struktur RECT untuk persegi panjang tujuan yang digunakan untuk menghitung faktor peregangan.

[in] SrcRect

Struktur RECT untuk persegi panjang sumber yang digunakan untuk menghitung faktor peregangan.

[in] SubRectCnt

Jumlah sub-persegi tujuan dalam array yang ditentukan pDstSubRects .

[in] pDstSubRects

Array struktur RECT untuk daftar sub-persegi tujuan yang disalin oleh fungsi DxgkDdiPresent .

[in] FlipInterval

Nilai D3DDDI_FLIPINTERVAL_TYPE-ketik yang menunjukkan interval balik (yaitu, jika flip terjadi setelah sinkronisasi vertikal nol, satu, dua, tiga, atau empat).

[in] Flags

Struktur DXGK_PRESENTFLAGS yang mengidentifikasi, dalam bendera bidang bit, jenis operasi saat ini untuk dilakukan. Perhatikan bahwa bendera bidang bit ColorFill, SrcColorKey, dan DstColorKey di Bendera saling eksklusif.

[in] DmaBufferSegmentId

Pengidentifikasi segmen memori tempat buffer DMA di-paged. Jika pengidentifikasi nol, buffer DMA tidak di-paged dengan benar.

[in] DmaBufferPhysicalAddress

Jenis data PHYSICAL_ADDRESS (yang didefinisikan sebagai LARGE_INTEGER) yang menunjukkan alamat fisik tempat buffer DMA di-paged in. Jika alamat fisik adalah nol, buffer DMA tidak di-paged dengan benar.

[in] Reserved

Dicadangkan untuk penggunaan sistem. Driver harus mengabaikan anggota ini.

DmaBufferGpuVirtualAddress

Jenis data D3DGPU_VIRTUAL_ADDRESS yang menunjukkan alamat virtual tempat buffer DMA di-paged in. Jika alamat fisik adalah nol, buffer DMA tidak di-paged dengan benar.

NumSrcAllocations

Jumlah alokasi konteks dalam sumber.

NumDstAllocations

Jumlah alokasi konteks di tujuan.

PrivateDriverDataSize

Ukuran pPrivateDriverData.

pPrivateDriverData

Penunjuk ke buffer yang berisi data driver privat opsional.

Keterangan

Rasio area persegi panjang sumber dan tujuan yang ditentukan anggota SrcRect dan DstRect digunakan untuk menghitung faktor peregangan. Driver dapat memperhitungkan perhitungan faktor peregangan saat melakukan operasi penyalinan.

Driver tidak diperlukan untuk melakukan kliping apa pun. Subsistem kernel grafis Microsoft DirectX mendahului daftar sub-persegi tujuan yang ditentukan anggota pDstSubRects ke koordinat persegi panjang tujuan yang ditentukan anggota DstRect dan ke layar (utama). Perhatikan bahwa jika daftar sub-persegi tujuan disediakan dalam pDstSubRects, driver hanya boleh menggunakan SrcRect dan DstRect untuk menghitung faktor peregangan dan harus menggunakan koordinat sub-persegi tujuan untuk operasi penyalinan aktual.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Header d3dkmddi.h (termasuk D3dkmddi.h)

Lihat juga

D3DDDI_FLIPINTERVAL_TYPE

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DXGK_PRESENTFLAGS

DXGK_PRESENTMULTIPLANEOVERLAYINFO

DxgkDdiPresent

RECT