Antarmuka Spesialisasi (Direct3D 10)
ID3D10EffectVariable Interface memiliki sejumlah metode untuk mentransmisikan antarmuka ke jenis antarmuka tertentu yang Anda butuhkan. Metodenya adalah dari bentuk SebagaiJenis dan menyertakan metode untuk setiap jenis variabel efek (seperti AsBlend, AsConstantBuffer dll.)
Misalnya, Anda memiliki efek dengan dua variabel global: waktu dan transformasi dunia.
float g_fTime;
float4x4 g_mWorld;
Berikut adalah contoh (dari Sampel SimpleSample10) yang mendapatkan variabel ini:
ID3D10EffectVariable* g_pVariable;
ID3D10EffectMatrixVariable* g_pmWorld;
ID3D10EffectScalarVariable* g_pfTime;
g_pVariable = g_pEffect10->GetVariableByName("g_mWorld");
g_pmWorld = g_pVariable->AsMatrix();
g_pfTime = g_pEffect10->GetVariableByName("g_fTime");
g_pfTime = g_pVariable->AsScalar();
Dengan mengkhususkan antarmuka, Anda dapat mengurangi kode menjadi satu panggilan.
g_pmWorld = (g_pEffect10->GetVariableByName("g_mWorld"))->AsMatrix();
g_pfTime = (g_pEffect10->GetVariableByName("g_fTime"))->AsScalar();
Antarmuka yang mewarisi dari ID3D10EffectVariable Interface juga memiliki metode ini, tetapi telah dirancang untuk mengembalikan objek yang tidak valid; hanya panggilan dari ID3D10EffectVariable Interface mengembalikan objek yang valid. Aplikasi dapat menguji objek yang dikembalikan untuk melihat apakah objek tersebut valid dengan memanggil ID3D10EffectVariable::IsValid.
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