Metode IDXGISwapChain3::ResizeBuffers1 (dxgi1_4.h)
Mengubah ukuran buffer belakang rantai swap, format, dan jumlah buffer, di mana rantai pertukaran dibuat menggunakan antrean perintah D3D12 sebagai perangkat input. Ini harus dipanggil ketika jendela aplikasi diubah ukurannya.
Sintaks
HRESULT ResizeBuffers1(
[in] UINT BufferCount,
[in] UINT Width,
[in] UINT Height,
[in] DXGI_FORMAT Format,
[in] UINT SwapChainFlags,
[in] const UINT *pCreationNodeMask,
[in] IUnknown * const *ppPresentQueue
);
Parameter
[in] BufferCount
Jenis: UINT
Jumlah buffer dalam rantai pertukaran (termasuk semua buffer belakang dan depan). Jumlah ini bisa berbeda dari jumlah buffer yang Anda buat rantai pertukarannya. Jumlah ini tidak boleh lebih besar dari DXGI_MAX_SWAP_CHAIN_BUFFERS. Atur angka ini ke nol untuk mempertahankan jumlah buffer yang ada dalam rantai pertukaran. Anda tidak dapat menentukan kurang dari dua buffer untuk model presentasi balik.
[in] Width
Jenis: UINT
Lebar baru buffer belakang. Jika Anda menentukan nol, DXGI akan menggunakan lebar area klien jendela target. Anda tidak dapat menentukan lebar sebagai nol jika Anda memanggil metode IDXGIFactory2::CreateSwapChainForComposition untuk membuat rantai pertukaran untuk permukaan komposisi.
[in] Height
Jenis: UINT
Tinggi baru buffer belakang. Jika Anda menentukan nol, DXGI akan menggunakan tinggi area klien jendela target. Anda tidak dapat menentukan tinggi sebagai nol jika Anda memanggil metode IDXGIFactory2::CreateSwapChainForComposition untuk membuat rantai pertukaran untuk permukaan komposisi.
[in] Format
Jenis: DXGI_FORMAT
Nilai yang diketik DXGI_FORMAT untuk format baru buffer belakang. Atur nilai ini ke DXGI_FORMAT_UNKNOWN untuk mempertahankan format buffer belakang yang ada. Model presentasi balik mendukung serangkaian format yang lebih terbatas daripada model transfer blok bit (bitblt).
[in] SwapChainFlags
Jenis: UINT
Kombinasi nilai DXGI_SWAP_CHAIN_FLAG-ketik yang digabungkan dengan menggunakan operasi OR bitwise. Nilai yang dihasilkan menentukan opsi untuk perilaku rantai pertukaran.
[in] pCreationNodeMask
Jenis: const UINT*
Array UINT, dengan ukuran total BufferCount, di mana nilai menunjukkan simpul mana buffer belakang harus dibuat. Buffer yang dibuat menggunakan ResizeBuffers1 dengan array pCreationNodeMask non-null terlihat oleh semua simpul.
[in] ppPresentQueue
Jenis: IUnknown*
Array antrean perintah (instans ID3D12CommandQueue ), dari ukuran total BufferCount. Setiap antrean yang disediakan harus cocok dengan masker simpul pembuatan yang sesuai yang ditentukan dalam array pCreationNodeMask . Ketika Present() dipanggil, selain memutar ke buffer berikutnya untuk bingkai berikutnya, swapchain juga akan memutar melalui antrean perintah ini. Ini memungkinkan aplikasi untuk mengontrol antrean mana yang memerlukan sinkronisasi untuk operasi saat ini tertentu.
Menampilkan nilai
Jenis: HRESULT
Mengembalikan S_OK jika berhasil; kode kesalahan sebaliknya. Untuk daftar kode kesalahan, lihat DXGI_ERROR.
Keterangan
Metode ini hanya valid untuk memanggil ketika swapchain dibuat menggunakan antrean perintah D3D12 (ID3D12CommandQueue) sebagai perangkat input.
Ketika swapchain dibuat pada adaptor multi-GPU, backbuffer semuanya dibuat pada simpul 1 dan hanya satu antrean perintah yang didukung. ResizeBuffers1 memungkinkan aplikasi untuk membuat backbuffer pada node yang berbeda, memungkinkan antrean perintah yang berbeda untuk digunakan dengan setiap simpul. Kemampuan ini memungkinkan teknik Alternate Frame Rendering (AFR) digunakan dengan swapchain. Lihat Sistem multi-adaptor.
Lihat juga bagian Keterangan di IDXGISwapChain::ResizeBuffers, yang semuanya relevan dengan ResizeBuffers1.
Persyaratan
Target Platform | Windows |
Header | dxgi1_4.h |
Pustaka | Dxgi.lib |