anruf – vs
Führt einen Funktionsaufruf der Anweisung aus, die mit der angegebenen Bezeichnung gekennzeichnet ist.
Syntax
call l # |
---|
Wobei l# eine Bezeichnung ist, im Vergleich zum Markieren des Anfangs der aufgerufenen Unterroutine.
Bemerkungen
Vertexshaderversionen | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Aufruf | x | x | x | x | x |
Mit dieser Anweisung wird Folgendes ausgeführt:
- Pushadresse der nächsten Anweisung in den Rückgabeadressstapel.
- Setzen Sie die Ausführung über die Anweisung fort, die durch die Bezeichnung gekennzeichnet ist.
In Vertex shader 2_0 sind Schachtelungsaufrufe nicht zulässig.
In vertex shader 2_x wird die Schachtelungstiefe durch das StaticFlowControlDepth-Element der D3DVSHADERCAPS2_0-Struktur beschränkt. Weitere Informationen finden Sie unter GetDeviceCaps.
Im Vertex-Shader 3_0 sind vier Ebenen der Aufrufschachtelung zulässig.
Nur Weiterleitungsanrufe sind zulässig. Dies bedeutet, dass die Position der Bezeichnung innerhalb des Vertexshaders nach der Aufrufanweisung sein sollte, die darauf verweist.
Wenn eine Aufrufanweisung innerhalb der Schleife aufgerufen wird... Endloop-Block , der Wert des Schleifenzählerregisters (aL) ist innerhalb der Unterroutine zugänglich.
Wenn eine Unterroutine auf das Schleifenzählerregister (aL) verweist, das sich außerhalb der Unterroutine befindet, sollte jede instance des Aufrufs dieser Subroutine von einer Schleife umgeben sein... Endloop-Block.
Zugehörige Themen