Freigeben über


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

Shadermodell 4-Assembly (DirectX HLSL)