call - vs
Executa uma chamada de função para a instrução marcada com o rótulo fornecido.
Sintaxe
call l # |
---|
em que l# é um rótulo – versus marcando o início da sub-rotina a ser chamada.
Comentários
Versões do sombreador de vértice | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
chamada | x | x | x | x | x |
Esta instrução faz o seguinte:
- Endereço por push da próxima instrução para a pilha de endereços de retorno.
- Continue a execução da instrução marcada pelo rótulo.
No sombreador de vértice 2_0, chamadas de aninhamento não são permitidas.
No sombreador de vértice 2_x, a profundidade de aninhamento é limitada pelo elemento StaticFlowControlDepth da estrutura D3DVSHADERCAPS2_0 . Para obter mais informações, consulte GetDeviceCaps.
No sombreador de vértice 3_0, quatro níveis de aninhamento de chamadas são permitidos.
Somente chamadas de encaminhamento são permitidas. Isso significa que o local do rótulo dentro do sombreador de vértice deve ser após a instrução de chamada referenciando-o.
Se uma instrução de chamada for invocada dentro do loop... bloco endloop , o valor do Registro de Contador de Loop (aL) é acessível dentro da sub-rotina.
Se uma sub-rotina estiver fazendo referência ao Registro de Contador de Loop (aL) localizado fora da sub-rotina, cada instância da chamada para essa sub-rotina deverá estar cercada por um loop... bloco endloop .
Tópicos relacionados