glProvokingVertex.3G man page

glProvokingVertex — specifiy the vertex to be used as the source of data for flat shaded varyings

C Specification

void glProvokingVertex(GLenum provokeMode);

Parameters

provokeMode

Specifies the vertex to be used as the source of data for flat shaded varyings.

Description

Flatshading a vertex shader varying output means to assign all vetices of the primitive the same value for that output. The vertex from which these values is derived is known as the provoking vertex and glProvokingVertex specifies which vertex is to be used as the source of data for flat shaded varyings.

provokeMode must be either GL_FIRST_VERTEX_CONVENTION or GL_LAST_VERTEX_CONVENTION, and controls the selection of the vertex whose values are assigned to flatshaded varying outputs. The interpretation of these values for the supported primitive types is:

Primitive Type of Polygon i First Vertex Convention Last Vertex Convention
pointii
independent line2i - 12i
line loopi

i + 1, if i < n

.PP 1, if i = n

line stripii + 1
independent triangle3i - 23i
triangle stripii + 2
triangle fani + 1i + 2
line adjacency4i - 24i - 1
line strip adjacencyi + 1i + 2
triangle adjacency6i - 56i - 1
triangle strip adjacency2i - 12i + 3

If a vertex or geometry shader is active, user-defined varying outputs may be flatshaded by using the flat qualifier when declaring the output.

Notes

glProvokingVertex is available only if the GL version is 3.2 or greater.

Errors

GL_INVALID_ENUM is generated if provokeMode is not an accepted value.

Info

02/04/2016 [FIXME: source] [FIXME: manual]