struktur DXGI1_2_DDI_BASE_FUNCTIONS (dxgiddi.h)

Berisi pointer ke fungsi yang dapat diimplementasikan oleh Windows Display Driver Model (WDDM) 1.2 dan driver tampilan mode pengguna yang lebih baru untuk melakukan tugas tingkat rendah seperti menyajikan bingkai yang dirender ke output, mengontrol gamma, mendapatkan pemberitahuan mengenai permukaan interoperabilitas Antarmuka Perangkat Grafis (GDI) bersama dan Windows, dan mengelola transisi layar penuh.

Sintaks

typedef struct DXGI1_2_DDI_BASE_FUNCTIONS {
  HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
  HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
  HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
  HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
  HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
  HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
  HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
  HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
  HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
  HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
  HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
  HRESULT()(void *) * pfnGetMultiplaneOverlayFilterRange;
  HRESULT()(DXGI_DDI_ARG_CHECKMULTIPLANEOVERLAYSUPPORT *) * pfnCheckMultiplaneOverlaySupport;
  HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
} DXGI1_2_DDI_BASE_FUNCTIONS;

Anggota

pfnPresent

Penunjuk ke fungsi PresentDXGI driver.

pfnGetGammaCaps

Penunjuk ke fungsi GetGammaCapsDXGI driver.

pfnSetDisplayMode

Penunjuk ke fungsi SetDisplayModeDXGI driver.

pfnSetResourcePriority

Penunjuk ke fungsi SetResourcePriorityDXGI driver.

pfnQueryResourceResidency

Penunjuk ke fungsi QueryResourceResidencyDXGI driver.

pfnRotateResourceIdentities

Penunjuk ke fungsi RotateResourceIdentitiesDXGI driver.

pfnBlt

Penunjuk ke fungsi BltDXGI driver.

Runtime Direct3D dapat mengatur anggota Bendera dari struktur DXGI_DDI_ARG_BLT yang ditunjuk oleh parameter pBltData sed sedari itu untuk mengharuskan fungsi Blt1DXGI melakukan operasi transfer blok bit (bitblt) yang menyelesaikan sumber daya multi-sampel, melakukan konversi format warna, dan melakukan peregangan atau menyusutkan semua sekaligus. Namun, runtime Direct3D tidak akan pernah mengatur anggota BenderaDXGI_DDI_ARG_BLT1 ke nol (yaitu, tidak ada bendera yang diatur) bersama dengan nilai DXGI_DDI_MODE_ROTATION_IDENTITY yang ditetapkan dalam anggota PutarDXGI_DDI_ARG_BLT1 (yaitu, untuk menunjukkan tidak ada rotasi) untuk melakukan operasi salinan memori lurus. Sebaliknya, kecuali kedua sumber daya multi-sampel, runtime Direct3D memanggil fungsi ResourceCopy atau ResourceCopyRegion (D3D11_1) driver untuk melakukan operasi salinan memori lurus.

Kualitas peregangan atau penyusutan yang dilakukan driver tampilan mode pengguna harus sebagus peregangan atau susutkan yang dilakukan filter bilinear.

Runtime Direct3D akan memanggil fungsi Blt1DXGI driver jarang. Artinya, runtime harus memanggil Blt1DXGI tidak lebih dari sekali atau dua kali per bingkai karena runtime menggunakan Blt1DXGI terutama untuk mendukung presentasi.

Saat runtime memanggil Blt1DXGI untuk presentasi, runtime mengatur bendera Sajikan bit-field di anggota BenderaDXGI_DDI_ARG_BLT1. Runtime mengatur bendera Present bit-field untuk memberi tahu driver bahwa ada persyaratan tambahan untuk bitblt dan bahwa sinkronisasi ekstra mungkin diperlukan (misalnya, runtime mungkin perlu melakukan sinkronisasi ekstra dalam konfigurasi komputer yang berisi dua adaptor grafis yang masing-masing menangani bagian terpisah dari tampilan). Ketika bendera Bidang bit saat ini diatur, driver harus melakukan operasi salin dari buffer belakang aplikasi ke permukaan bersama DWM. Karena sinkronisasi untuk jenis operasi salin ini tidak tepat, artefak yang merobek harus menjadi jenis artefak terburuk yang dialami pengguna. Untuk jenis operasi salin ini, driver tidak boleh menggunakan pendekatan multi-pass dengan terlebih dahulu menyelesaikan ke permukaan tujuan dan kemudian mengonversi warna hasil di tempat karena artefak yang mungkin akan jauh lebih buruk.

Jika driver mendukung pengembalian DXGI_DDI_ERR_UNSUPPORTED selama pembuatan permukaan utama (yaitu, mengembalikan DXGI_DDI_ERR_UNSUPPORTED dari panggilan ke fungsi CreateResource (D3D10) dengan bendera D3D10_DDI_BIND_PRESENT yang diatur dalam anggota BindFlagsD3D10DDIARG_CREATERESOURCE bersama dengan anggota pPrimaryDescdari D3D10DDIARG_CREATERESOURCE diatur ke non-NULL), driver juga harus mendukung rotasi selama operasi salin. Jika driver tidak pernah mengembalikan DXGI_DDI_ERR_UNSUPPORTED dari panggilan ke fungsi CreateResource(D3D10) atau CreateResource(D3D11), runtime tidak akan pernah meneruskan nilai DXGI_DDI_MODE_ROTATION_ROTATE90, DXGI_DDI_MODE_ROTATION_ROTATE180, atau DXGI_DDI_MODE_ROTATION_ROTATE270 ke anggota Rotate DXGI_DDI_ARG_BLT1. Oleh karena itu, dalam situasi ini, fungsi Blt1DXGI driver tidak diperlukan untuk mendukung rotasi.

Runtime menetapkan nilai dalam anggota PutarDXGI_DDI_ARG_BLT1 untuk menunjukkan jumlah derajat untuk memutar berlawanan jajaran jajar konten sumber sebelum driver menyalin konten ke tujuan. Rotasi ditentukan dalam kenaikan 90 derajat.

Catatan

Ketika fungsi Blt1DXGI driver menyalin konten berformat sRGB dari permukaan sumber ke permukaan tujuan non-sRGB, driver harus menyalin konten sRGB tidak berubah (artinya, driver tidak boleh melakukan sRGB ke konversi linier).

Pembatasan sumber

Fungsi Blt1DXGI selalu menggunakan seluruh subsumber daya (versus beberapa area sub-persegi panjang) untuk melakukan operasi bitblt. Selain itu, sumbernya adalah representasi D3D10DDIRESOURCE_TEXTURE2D (ditentukan dalam anggota ResourceDimensionD3D10DDIARG_CREATERESOURCE atau D3D11DDIARG_CREATERESOURCE saat sumber dibuat dalam panggilan ke fungsi CreateResource (D3D10) driver tampilan pengguna atau CreateResource (D3D11), masing-masing). Ketika runtime mengatur bitfield Resolve di anggota FlagsDXGI_DDI_ARG_BLT1, sumbernya adalah sumber daya multi-sampel. Sumber daya sumber dibatasi untuk sumber daya tempat bendera D3D10_DDI_BIND_PRESENT diatur dalam anggota BindFlagsdari D3D10DDIARG_CREATERESOURCE atau D3D11DDIARG_CREATERESOURCE. Format sumber (ditentukan dalam format anggotaD3D10DDIARG_CREATERESOURCE atau D3D11DDIARG_CREATERESOURCE) dibatasi untuk menampilkan format mode, yang ditentukan oleh nilai berikut dari enumerasi DXGI_FORMAT :

  • DXGI_FORMAT_B5G6R5_UNORM
  • DXGI_FORMAT_B5G5R5A1_UNORM
  • DXGI_FORMAT_B8G8R8A8_UNORM (Lihat Catatan di bawah ini.)
  • DXGI_FORMAT_B8G8R8X8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT
  • DXGI_FORMAT_R10G10B10A2_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB

Catatan

Jika driver mendukung format sumber DXGI_FORMAT_B8G8R8A8_UNORM, pembatasan berikut berlaku:

  • Ketika driver melakukan operasi bitblt dari format floating-point ke format bilangan bulat seperti BGRA8888, itu harus secara implisit mengodekan gamma ke dalam hasil.
  • Sebaliknya, ketika driver melakukan operasi bitblt dari format bilangan bulat ke format floating-point, driver harus secara implisit menghapus pengodean gamma dari hasil.

Pembatasan tujuan

Tujuannya juga merupakan representasi D3D10DDIRESOURCE_TEXTURE2D . Format tujuan juga dibatasi untuk menampilkan format mode. Sumber daya tujuan dibatasi untuk sumber daya yang terikat sebagai target render (D3D10_DDI_BIND_RENDER_TARGET ditetapkan dalam anggota BindFlagsdari D3D10DDIARG_CREATERESOURCE atau D3D11DDIARG_CREATERESOURCE).

Membuat buffer stereo back

Dimulai di Windows 8, jika driver harus membuat buffer back stereo, driver harus mengatur anggota struktur D3D10DDIARG_CREATERESOURCE atau D3D11DDIARG_CREATERESOURCE, masing-masing, yang ditunjukkan oleh parameter pCreateResource dari fungsi CreateResource (D3D10) atau CreateResource (D3D11), sebagai berikut:

  1. Atur anggota ArraySize ke nilai 2.
  2. Atur nilai bendera D3D10_DDI_BIND_PRESENT di anggota BindFlags .

Selain itu, untuk mendukung presentasi stereo, fungsi BltDXGI harus mengizinkan nilai apa pun untuk anggota DstSubresource dan SrcSubresource dari struktur DXGI_DDI_ARG_BLT yang berada dalam rentang sumber daya sumber dan tujuan.

pfnResolveSharedResource

Penunjuk ke fungsi ResolveSharedResourceDXGI driver.

pfnBlt1

Penunjuk ke fungsi Blt1DXGI driver.

pfnOfferResources

Penunjuk ke fungsi pfnOfferResources driver.

pfnReclaimResources

Dipanggil oleh runtime DXGI untuk mengklaim kembali sumber daya memori video yang sebelumnya ditawarkan driver tampilan mode pengguna untuk digunakan kembali. Diimplementasikan oleh WDDM 1.2 dan driver tampilan mode pengguna yang lebih baru.

pfnGetMultiplaneOverlayCaps

Dipanggil oleh runtime Microsoft DirectX Graphics Infrastructure (DXGI) untuk meminta agar driver tampilan mode pengguna mendapatkan kemampuan bidang overlay dasar. Secara opsional diimplementasikan oleh Windows Display Driver Model (WDDM) 1.3 dan driver tampilan mode pengguna yang lebih baru. Sintaks pfnGetMultiplaneOverlayCaps mengikuti:

pfnGetMultiPlaneOverlayCaps GetMultiPlaneOverlayCaps;

HRESULT __stdcall* GetMultiPlaneOverlayCaps(
    DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *pCaps
)
{ ... }

Parameter pCaps adalah penunjuk ke struktur DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS yang menentukan kemampuan bidang overlay.

pfnGetMultiplaneOverlayCaps mengembalikan salah satu nilai berikut:

  • S_OK: Driver berhasil menyediakan kemampuan bidang overlay.
  • D3DDDIERR_DEVICEREMOVED: Driver mendeteksi bahwa adaptor tampilan telah dihapus, sehingga driver tidak menyelesaikan operasi. Jika driver tidak mengetahui penghapusan adaptor, driver tidak diperlukan untuk mengembalikan kode kesalahan ini.

pfnGetMultiplaneOverlayFilterRange

Anggota ini dicadangkan dan harus diatur ke nol. Didukung dimulai dengan Windows 8.1.

pfnCheckMultiplaneOverlaySupport

Dipanggil oleh runtime Microsoft DirectX Graphics Infrastructure (DXGI) untuk memeriksa detail tentang dukungan perangkat keras untuk overlay multiplane. Sintaks pfnCheckMultiplaneOverlaySupport adalah:

PFND3DDDI_CHECKMULTIPLANEOVERLAYSUPPORT pfnCheckMultiplaneOverlaySupport;

HRESULT __stdcall* pfnCheckMultiplaneOverlaySupport(
   D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT *pSupport
)
{ ... }

Parameter pSupport adalah penunjuk ke struktur DXGI_DDI_ARG_CHECKMULTIPLANEOVERLAYSUPPORT yang menjelaskan cara menampilkan ke permukaan tujuan.

Jika pfnCheckMultiplaneOverlaySupport berhasil, pfnCheckMultiplaneOverlaySupport akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

pfnPresentMultiplaneOverlay

Penunjuk ke fungsi pfnPresentMultiplaneOverlay (DXGI) driver. Didukung dimulai dengan Windows 8.1.

pSupport

Penunjuk ke struktur DXGI_DDI_ARG_CHECKMULTIPLANEOVERLAYSUPPORT yang menjelaskan cara menampilkan ke permukaan tujuan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8, WDDM 1.2
Server minimum yang didukung Windows Server 2012
Header dxgiddi.h (termasuk D3d10umddi.h)

Lihat juga

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_3_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS