Bagikan melalui


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:

  1. 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.
  2. 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.
  3. 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
D3DX10.h
Pustaka
D3DX10.lib

Lihat juga

Antarmuka D3DX