Comandos básicos de desenho
Agora que temos todos os recursos necessários para desenhar nosso primeiro triângulo na tela. Podemos vincular o pipeline gráfico. Isso é feito chamando a função vkCmdBindPipeline
. Isso “ativa” todos os programas de shader (semelhante à função glUseProgram
do OpenGL) e define testes desejados, operações de blending e assim por diante.
m_deviceFunctions->vkCmdBindPipeline(
commandBuffer,
VK_PIPELINE_BIND_POINT_GRAPHICS,
m_graphicsPipeline
);
O segundo parâmetro dessa função especifica se o objeto de pipeline é um pipeline gráfico ou de computação.
Depois que o pipeline é vinculado, podemos finalmente desenhar algo chamando a função vkCmdDraw
:
m_deviceFunctions->vkCmdDraw(commandBuffer, 3, 1, 0, 0);
Nessa função, especificamos o número de vértices que queremos desenhar (três), o número de instâncias que devem ser desenhadas (apenas uma) e números ou índices de um primeiro vértice e primeira instância (ambos zero).
Por fim, chamamos a função vkCmdEndRenderPass
, o que, como o nome sugere, encerra o render pass dado:
m_deviceFunctions->vkCmdEndRenderPass(commandBuffer);
Se fizemos tudo corretamente até este ponto, então devemos ver algo parecido com o mostrado na Figura 7 quando executarmos nosso programa.

Neste capítulo, realizamos operações de desenho “reais”. Um triângulo simples pode não parecer muito convincente, mas é um bom ponto de partida para uma primeira imagem criada usando Vulkan. No próximo capítulo vamos nos livrar dos vértices codificados no vertex shader e realmente usar um buffer de vértices.