Primitivos e comandos
O OpenGL desenha pontos primitivos , segmentos de linha ou polígonos sujeitos a vários modos selecionáveis. Você pode controlar modos independentemente uns dos outros. Ou seja, definir um modo não afeta se outros modos estão definidos (embora muitos modos possam interagir para determinar o que eventualmente acaba no framebuffer). Para especificar primitivos, definir modos e executar outras operações OpenGL, emita comandos na forma de chamadas de função.
Primitivos são definidos por um grupo de um ou mais vértices. Um vértice define um ponto, um ponto de extremidade de uma linha ou um canto de um polígono em que duas bordas se encontram. Os dados (que consistem em coordenadas de vértice, cores, normais, coordenadas de textura e sinalizadores de borda) são associados a um vértice e cada vértice e seus dados associados são processados independentemente, na ordem e da mesma maneira. As únicas exceções a essa regra são casos em que o grupo de vértices deve ser recortado para que um primitivo específico se encaixe em uma região especificada. Nesse caso, os dados de vértice podem ser modificados e novos vértices criados. O tipo de recorte depende de qual primitivo o grupo de vértices representa.
Os comandos são sempre processados na ordem em que são recebidos, embora possa haver um atraso indeterminado antes que um comando entre em vigor. Isso significa que cada primitivo é desenhado completamente antes que qualquer comando subsequente entre em vigor. Isso também significa que os comandos de consulta de estado retornam dados consistentes com a execução completa de todos os comandos OpenGL emitidos anteriormente.