Antarmuka ID3DX10ThreadPump
Digunakan untuk menjalankan tugas secara asinkron, dan dibuat dengan D3DX10CreateThreadPump. Ada beberapa API D3DX10 yang dapat secara opsional mengambil pompa utas sebagai parameter, seperti D3DX10CreateTextureFromFile dan D3DX10CompileFromFile (lihat keterangan untuk daftar lengkap). Jika pompa utas diteruskan ke API ini, mereka akan mengeksekusi secara asinkron pada utas pompa utas terpisah. Keuntungan untuk melakukan ini adalah dapat membuat pemuatan dan pemrosesan data dalam jumlah besar terjadi tanpa melihat perlambatan performa yang menonjol di layar.
Anggota
Antarmuka ID3DX10ThreadPump mewarisi dari antarmuka IUnknown . ID3DX10ThreadPump juga memiliki jenis anggota berikut:
Metode
Antarmuka ID3DX10ThreadPump memiliki metode ini.
Metode | Deskripsi |
---|---|
AddWorkItem | Tambahkan item kerja ke pompa utas. |
GetQueueStatus | Dapatkan jumlah item di masing-masing dari tiga antrean di dalam pompa utas. |
GetWorkItemCount | Dapatkan jumlah item kerja yang saat ini ada di pompa utas. |
ProcessDeviceWorkItems | Atur item kerja ke perangkat setelah selesai dimuat dan diproses. Ketika pompa utas telah selesai memuat dan memproses sumber daya atau shader, pompa tersebut akan menahannya dalam antrean hingga API ini dipanggil, di mana item yang diproses akan diatur ke perangkat. Ini berguna untuk mengontrol jumlah pemrosesan yang dihabiskan untuk mengikat sumber daya ke perangkat untuk setiap bingkai. Lihat keterangan. |
PurgeAllItems | Bersihkan semua item kerja dari pompa utas. |
WaitForAllItems | Tunggu hingga semua item kerja di pompa utas selesai. |
Keterangan
Pompa utas memuat dan memproses data dalam proses 3 langkah. Ini berbunyi:
- Muat dan dekompresi data dengan Pemuat Data. Objek pemuat data memiliki tiga metode yang akan dipanggil pompa utas secara internal karena memuat dan mendekompresi data: ID3DX10DataLoader::Load, ID3DX10DataLoader::D ecompress, dan ID3DX10DataLoader::D estroy. Fungsionalitas khusus dari ketiga API ini berbeda tergantung pada jenis data yang dimuat dan didekompresi. Antarmuka pemuat data juga dapat diwariskan dan API-nya dapat diubah jika seseorang memuat file data yang ditentukan dalam format kustom seseorang.
- Memproses data dengan Pemroses Data. Objek prosesor data memiliki tiga metode yang akan dipanggil pompa utas secara internal karena memproses data: ID3DX10DataProcessor::P rocess, ID3DX10DataProcessor::CreateDeviceObject, dan ID3DX10DataProcessor::D estroy. Caranya memproses data akan berbeda tergantung pada jenis data. Misalnya, jika data adalah tekstur yang disimpan sebagai JPEG, maka ID3DX10DataProcessor::P rocess akan melakukan dekompresi JPEG untuk mendapatkan bit gambar mentah gambar. Jika data adalah shader, id3DX10DataProcessor::P rocess akan mengkompilasi HLSL ke dalam bytecode. Setelah data diproses, objek perangkat akan dibuat untuk data tersebut (dengan ID3DX10DataProcessor::CreateDeviceObject) dan objek akan ditambahkan ke antrean objek perangkat. Antarmuka prosesor data juga dapat diwariskan dan API-nya dapat diubah jika seseorang memproses file data yang ditentukan dalam format kustom seseorang.
- Ikat objek perangkat ke perangkat. Ini dilakukan ketika aplikasi seseorang memanggil ID3DX10ThreadPump::P rocessDeviceWorkItems, yang akan mengikat sejumlah objek tertentu dalam antrean objek perangkat ke perangkat.
Pompa utas dapat digunakan untuk memuat data dengan salah satu dari dua cara: dengan memanggil API yang mengambil pompa utas sebagai parameter, seperti D3DX10CreateTextureFromFile dan D3DX10CompileFromFile, atau dengan memanggil ID3DX10ThreadPump::AddWorkItem. Dalam kasus API yang mengambil pompa utas, pemuat data dan prosesor data dibuat secara internal. Dalam kasus AddWorkItem, pemuat data dan prosesor data harus dibuat sebelumnya dan kemudian diteruskan ke AddWorkItem. D3DX10 menyediakan sekumpulan API untuk membuat pemuat data dan prosesor data yang memiliki fungsionalitas untuk memuat dan memproses format data umum (lihat keterangan untuk daftar lengkap API). Untuk format data kustom, pemuat data dan antarmuka prosesor data harus diwariskan dan metodenya harus ditentukan ulang.
Objek pompa utas membutuhkan sumber daya dalam jumlah besar, jadi umumnya hanya satu yang harus dibuat per aplikasi.
Pemuat data D3DX10 bawaan
Deskripsi | |
---|---|
D3DX10CreateAsyncFileLoader | Buat pemuat file secara asinkron. |
D3DX10CreateAsyncMemoryLoader | Buat pemuat data secara asinkron. |
D3DX10CreateAsyncResourceLoader | Buat pemuat sumber daya secara asinkron. |
Prosesor data D3DX10 bawaan
Deskripsi | |
---|---|
D3DX10CreateAsyncTextureProcessor | Buat prosesor data yang akan digunakan dengan pompa utas. API ini mirip dengan D3DX10CreateAsyncTextureInfoProcessor tetapi juga memuat tekstur. |
D3DX10CreateAsyncTextureInfoProcessor | Buat prosesor data yang akan digunakan dengan pompa utas. |
D3DX10CreateAsyncShaderCompilerProcessor | Kompilasi shader dan buat prosesor data secara asinkron. |
D3DX10CreateAsyncEffectCompilerProcessor | Buat efek dengan prosesor data secara asinkron. |
D3DX10CreateAsyncEffectCreateProcessor | Buat kumpulan efek secara asinkron. |
D3DX10CreateAsyncEffectPoolCreateProcessor | Buat prosesor data secara asinkron. |
D3DX10CreateAsyncShaderPreprocessProcessor | Buat prosesor data untuk shader secara asinkron. |
API yang mengambil pompa utas sebagai parameter.
Deskripsi | |
---|---|
D3DX10CompileFromFile | Mengkompilasi shader dari file. |
D3DX10CompileFromMemory | Kompilasi shader yang berada dalam memori. |
D3DX10CompileFromResource | Mengkompilasi shader dari sumber daya. |
D3DX10CreateEffectFromFile | Membuat efek dari file. |
D3DX10CreateEffectFromMemory | Membuat efek dari memori. |
D3DX10CreateEffectFromResource | Membuat efek dari sumber daya. |
D3DX10CreateEffectPoolFromFile | Membuat kumpulan efek dari file. |
D3DX10CreateEffectPoolFromMemory | Buat kumpulan efek dari file yang berada di memori. |
D3DX10CreateEffectPoolFromResource | Membuat kumpulan efek dari sumber daya. |
D3DX10PreprocessShaderFromFile | Buat shader dari file tanpa mengkompilasinya. |
D3DX10PreprocessShaderFromMemory | Buat shader dari memori tanpa mengkompilasinya. |
D3DX10PreprocessShaderFromResource | Buat shader dari sumber daya tanpa mengkompilasinya. |
D3DX10CreateShaderResourceViewFromFile | Membuat tampilan sumber daya shader dari file. |
D3DX10CreateShaderResourceViewFromMemory | Buat tampilan sumber daya shader dari file dalam memori. |
D3DX10CreateShaderResourceViewFromResource | Membuat tampilan sumber daya shader dari sumber daya. |
D3DX10GetImageInfoFromFile | Mengambil informasi tentang file gambar tertentu. |
D3DX10GetImageInfoFromMemory | Dapatkan informasi tentang gambar yang sudah dimuat ke dalam memori. |
D3DX10GetImageInfoFromResource | Mengambil informasi tentang gambar tertentu dalam sumber daya. |
D3DX10CreateTextureFromFile | Membuat sumber daya tekstur dari file. |
D3DX10CreateTextureFromMemory | Buat sumber daya tekstur dari file yang berada di memori sistem. |
D3DX10CreateTextureFromResource | Buat sumber daya tekstur dari sumber daya lain. |
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga