movc (sm4 – asm)
Komponentenweise bedingte Verschiebung.
movc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [src2[_abs][.swizzle], |
---|
Element | BESCHREIBUNG |
---|---|
Dest |
[in] Die Adresse des Ergebnisses des Vorgangs. Wenn src0, dann dest = src1 else dest = src2 |
src0 |
[in] Die Komponenten, an denen die Bedingung getestet werden soll. |
src1 |
[in] Die zu verschiebenden Komponenten. |
src2 |
[in] Die zu verschiebenden Komponenten. |
Bemerkungen
Das folgende Beispiel zeigt, wie Sie diese Anweisung verwenden.
for each component in dest[.mask]
if the corresponding component in src0 (POS-swizzle)
has any bit set
{
copy this component (POS-swizzle) from src1 into dest
}
else
{
copy this component (POS-swizzle) from src2 into dest
}
endfor
Die Modifizierer für src1 und src2, mit Ausnahme von swizzle, gehen davon aus, dass die Daten Gleitkommapunkte sind. Das Fehlen von Modifizierern verschiebt nur Daten, ohne Bits zu ändern.
Diese Anweisung gilt für die folgenden Shaderphasen:
Vertexshader | Geometrie-Shader | Pixelshader |
---|---|---|
x | x | x |
Minimales Shadermodell
Diese Funktion wird in den folgenden Shadermodellen unterstützt.
Shadermodell | Unterstützt |
---|---|
Shadermodell 5 | ja |
Shadermodell 4.1 | ja |
Shadermodell 4 | ja |
Shadermodell 3 (DirectX HLSL) | Nein |
Shadermodell 2 (DirectX HLSL) | Nein |
Shadermodell 1 (DirectX HLSL) | Nein |