Cara: Membuat Perangkat dan Konteks Langsung
Topik ini menunjukkan cara menginisialisasi perangkat. Menginisialisasi perangkat adalah salah satu tugas pertama yang harus diselesaikan aplikasi Anda sebelum Anda dapat merender adegan Anda.
Untuk membuat perangkat dan konteks langsung
Isi struktur DXGI_SWAP_CHAIN_DESC dengan informasi tentang format dan dimensi buffer. Untuk informasi selengkapnya, lihat Membuat Swap Chain.
Contoh kode berikut menunjukkan cara mengisi struktur DXGI_SWAP_CHAIN_DESC.
DXGI_SWAP_CHAIN_DESC sd;
ZeroMemory( &sd, sizeof( sd ) );
sd.BufferCount = 1;
sd.BufferDesc.Width = 640;
sd.BufferDesc.Height = 480;
sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
sd.BufferDesc.RefreshRate.Numerator = 60;
sd.BufferDesc.RefreshRate.Denominator = 1;
sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
sd.OutputWindow = g_hWnd;
sd.SampleDesc.Count = 1;
sd.SampleDesc.Quality = 0;
sd.Windowed = TRUE;
Dengan menggunakan struktur DXGI_SWAP_CHAIN_DESC dari langkah pertama, panggil D3D11CreateDeviceAndSwapChain untuk menginisialisasi perangkat dan rantai pertukaran secara bersamaan.
D3D_FEATURE_LEVEL FeatureLevelsRequested = D3D_FEATURE_LEVEL_11_0;
UINT numLevelsRequested = 1;
D3D_FEATURE_LEVEL FeatureLevelsSupported;
if( FAILED (hr = D3D11CreateDeviceAndSwapChain( NULL,
D3D_DRIVER_TYPE_HARDWARE,
NULL,
0,
&FeatureLevelsRequested,
numFeatureLevelsRequested,
D3D11_SDK_VERSION,
&sd,
&g_pSwapChain,
&g_pd3dDevice,
&FeatureLevelsSupported,
&g_pImmediateContext )))
{
return hr;
}
Catatan
Jika Anda meminta perangkat D3D_FEATURE_LEVEL_11_1 di komputer dengan hanya runtime Direct3D 11.0, D3D11CreateDeviceAndSwapChain segera keluar dengan E_INVALIDARG. Untuk meminta semua tingkat fitur yang mungkin di komputer dengan runtime DirectX 11.0 atau DirectX 11.1 dengan aman, gunakan kode ini:
|
Buat tampilan target render dengan memanggil ID3D11Device::CreateRenderTargetView dan ikat back-buffer sebagai target render dengan memanggil ID3D11DeviceContext::OMSetRenderTargets.
|
Buat viewport untuk menentukan bagian mana dari target render yang akan terlihat. Tentukan viewport menggunakan struktur D3D11_VIEWPORT dan atur viewport menggunakan metode ID3D11DeviceContext::RSSetViewports.
C++ |
---|
|
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk