Compartilhar via


Função glDrawArrays

A função glDrawArrays especifica vários primitivos a serem renderizados.

Sintaxe

void WINAPI glDrawArrays(
   GLenum  mode,
   GLint   first,
   GLsizei count
);

Parâmetros

mode

O tipo de primitivos a serem renderizados. As seguintes constantes especificam tipos aceitáveis de primitivos: GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS e GL_POLYGON.

first

O índice inicial nas matrizes habilitadas.

contagem

O número de índices a serem renderizados.

Retornar valor

Essa função não retorna um valor.

Códigos de erro

Os códigos de erro a seguir podem ser recuperados pela função glGetError .

Nome Significado
GL_INVALID_VALUE
count foi negativo.
GL_INVALID_ENUM
mode não era um valor aceito.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

Com glDrawArrays, você pode especificar vários primitivos geométricos a serem renderizados. Em vez de chamar funções OpenGL separadas para passar cada vértice individual, normal ou cor, você pode especificar matrizes separadas de vértices, normais e cores para definir uma sequência de primitivos (todos do mesmo tipo) com uma única chamada para glDrawArrays.

Quando você chama glDrawArrays, os elementos sequenciais de contagem de cada matriz habilitada são usados para construir uma sequência de primitivos geométricos, começando com o primeiro elemento. O parâmetro mode especifica que tipo de primitivo construir e como usar os elementos de matriz para construir os primitivos.

Após o retorno de glDrawArrays , os valores de atributos de vértice modificados por glDrawArrays são indefinidos. Por exemplo, se GL_COLOR_ARRAY estiver habilitado, o valor da cor atual será indefinido após o retorno de glDrawArrays . Atributos não modificados por glDrawArrays permanecem definidos . Quando GL_VERTEX_ARRAY não está habilitado, nenhum primitivo geométrico é gerado, mas os atributos correspondentes às matrizes habilitadas são modificados.

Você pode incluir glDrawArrays em listas de exibição. Quando você inclui glDrawArrays em uma lista de exibição, os dados de matriz necessários, determinados pelos ponteiros da matriz e pelas habilitações, são gerados e inseridos na lista de exibição. Os valores de ponteiros e habilitações da matriz são determinados durante a criação de listas de exibição.

Você pode ler dados de matriz estática a qualquer momento. Se algum elemento de matriz estática for modificado e a matriz não for especificada novamente, os resultados de quaisquer chamadas subsequentes para glDrawArrays serão indefinidos.

Embora nenhum erro seja gerado quando você especifica uma matriz mais de uma vez dentro de pares glBegin e glend , os resultados são indefinidos.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Gl.h
Biblioteca
Opengl32.lib
DLL
Opengl32.dll

Confira também

glArrayElement

glBegin

glColorPointer

glEdgeFlagPointer

glEnd

glGetPointerv

glGetString

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer