movc (sm4 - asm)

Komponentenweises bedingtes Verschieben.

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, für die die Bedingung getestet werden soll.
src1
[in ] Die zu verschiebende Komponenten.
src2
[in ] Die zu verschiebende Komponenten.

Hinweise

Im folgenden Beispiel wird die Verwendung dieser Anweisung veranschaulicht.

                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, setzen voraus, dass es sich bei den Daten um Gleitkommadaten handelt. Das Fehlen von Modifizierern verschiebt nur Daten, ohne Bits zu ändern.

Diese Anweisung gilt für die folgenden Shaderstufen:

Vertexshader Geometrie-Shader Pixelshader
x x x

Shader-Mindestmodell

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)