Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ID3DX11EffectVariable, arabirimi ihtiyacınız olan belirli bir arabirim türüne dönüştürmeye yönelik bir dizi yönteme sahiptir. Yöntemler AsType biçimindedir ve her efekt değişkeni türü için bir yöntem içerir (AsBlend, AsConstantBuffer vb.)
Örneğin, iki genel değişkenle bir etkiniz olduğunu varsayalım: zaman ve dünya dönüşümü.
float g_fTime;
float4x4 g_mWorld;
Bu değişkenleri alan bir örnek aşağıda verilmiştir:
ID3DX11EffectVariable* g_pVariable;
ID3DX11EffectMatrixVariable* g_pmWorld;
ID3DX11EffectScalarVariable* g_pfTime;
g_pVariable = g_pEffect11->GetVariableByName("g_mWorld");
g_pmWorld = g_pVariable->AsMatrix();
g_pVariable = g_pEffect11->GetVariableByName("g_fTime");
g_pfTime = g_pVariable->AsScalar();
Arabirimleri uzmanlaştırarak kodu tek bir çağrıya düşürebilirsiniz.
g_pmWorld = (g_pEffect11->GetVariableByName("g_mWorld"))->AsMatrix();
g_pfTime = (g_pEffect11->GetVariableByName("g_fTime"))->AsScalar();
ID3DX11EffectVariable devralan arabirimler de bu yöntemlere sahiptir, ancak geçersiz nesneler döndürecek şekilde tasarlanmıştır; yalnızca ID3DX11EffectVariable çağrıları geçerli nesneler döndürür. Uygulamalar, ID3DX11EffectVariable::IsValidçağrısı yaparak geçerli olup olmadığını görmek için döndürülen nesneyi test edebilir.
İlgili konular