Provided by: opengl-4-man-doc_1.0~svn33624-1_all bug

NAME

       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 iFirst Vertex ConventionLast Vertex Convention                    │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │point                        │ ii                                          │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │independent line             │ 2i - 1                   │ 2i                                         │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │line loop                    │ i                        │                                            │
       │                             │                          │        i + 1, if i < n                     │
       │                             │                          │                                            │
       │                             │                          │                                        .PP │
       │                             │                          │        1, if i = n                         │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │line strip                   │ ii + 1                                      │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │independent triangle         │ 3i - 2                   │ 3i                                         │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │triangle strip               │ ii + 2                                      │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │triangle fan                 │ i + 1                    │ i + 2                                      │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │line adjacency               │ 4i - 2                   │ 4i - 1                                     │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │line strip adjacency         │ i + 1                    │ i + 2                                      │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │triangle adjacency           │ 6i - 5                   │ 6i - 1                                     │
       ├─────────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │triangle strip adjacency     │ 2i - 1                   │ 2i + 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.

VERSION SUPPORT

       ┌──────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                  │                OpenGL Version                                         │
       ├──────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │/                 │     │     │     │     │     │     │     │     │     │     │     │     │
       │Feature           │     │     │     │     │     │     │     │     │     │     │     │     │
       │Name              │     │     │     │     │     │     │     │     │     │     │     │     │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glProvokingVertex │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       └──────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

SEE ALSO

COPYRIGHT

       Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions
       set forth in the Open Publication License, v 1.0, 8 June 1999.  http://opencontent.org/openpub/.

COPYRIGHT

       Copyright © 2010-2014 Khronos Group

[FIXME: source]                                    01/03/2018                              GLPROVOKINGVERTEX(3G)