struktur D3D10_SIGNATURE_PARAMETER_DESC (d3d10shader.h)
Menjelaskan tanda tangan shader.
Sintaks
typedef struct _D3D10_SIGNATURE_PARAMETER_DESC {
LPCSTR SemanticName;
UINT SemanticIndex;
UINT Register;
D3D10_NAME SystemValueType;
D3D10_REGISTER_COMPONENT_TYPE ComponentType;
BYTE Mask;
BYTE ReadWriteMask;
} D3D10_SIGNATURE_PARAMETER_DESC;
Anggota
SemanticName
Jenis: LPCSTR
String per parameter yang mengidentifikasi bagaimana data akan digunakan. Lihat Semantik (DirectX HLSL).
SemanticIndex
Jenis: UINT
Indeks semantik yang memodifikasi semantik. Digunakan untuk membedakan parameter berbeda yang menggunakan semantik yang sama.
Register
Jenis: UINT
Register yang akan berisi data variabel ini.
SystemValueType
Jenis: D3D10_NAME
String yang telah ditentukan sebelumnya yang menentukan fungsionalitas tahap alur tertentu. Lihat D3D10_NAME.
ComponentType
Jenis: D3D10_REGISTER_COMPONENT_TYPE
Jenis data per komponen yang disimpan dalam register. Lihat D3D10_REGISTER_COMPONENT_TYPE. Setiap register dapat menyimpan hingga empat komponen data.
Mask
Jenis: BYTE
Masker yang menunjukkan komponen register mana yang digunakan.
ReadWriteMask
Jenis: BYTE
Masker yang menunjukkan apakah komponen tertentu tidak pernah ditulis (jika tanda tangan adalah tanda tangan output) atau selalu baca (jika tanda tangan adalah tanda tangan input). Masker adalah kombinasi dari nilai D3D10_REGISTER_COMPONENT_TYPE .
Keterangan
Shader dapat mengambil input n dan dapat menghasilkan output m. Urutan parameter input (atau output), jenis terkaitnya, dan semantik yang terpasang membentuk tanda tangan shader. Setiap shader memiliki input dan tanda tangan output.
Saat mengompilasi shader atau efek, beberapa panggilan API memvalidasi tanda tangan shader (seperti D3D10CompileShader dan D3D10CompileEffectFromMemory). Artinya, mereka membandingkan tanda tangan output dari satu shader (seperti shader vertex) dengan tanda tangan input shader lain (seperti shader piksel). Ini memastikan bahwa shader menghasilkan data yang kompatibel dengan shader hilir yang mengkonsumsi data tersebut. Kompatibel berarti bahwa tanda tangan shader adalah subset pencocokan yang tepat dari tahap shader sebelumnya. Kecocokan persis berarti jenis parameter dan semantik harus sama persis. Subset berarti bahwa parameter yang tidak diperlukan oleh tahap hilir, tidak perlu menyertakan parameter tersebut dalam tanda tangan shader-nya.
Dapatkan shader-signature dari shader atau efek dengan memanggil API seperti ID3D10ShaderReflection::GetInputParameterDesc atau ID3D10EffectShaderVariable::GetInputSignatureElementDesc.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | d3d10shader.h |