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

Lihat juga

Struktur Shader