Provided by: opengl-4-man-doc_1.0~svn31251-1build1_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 ofFirst Vertex ConventionLast Vertex Convention                    │
       │Polygon i                │                          │                                            │
       ├─────────────────────────┼──────────────────────────┼────────────────────────────────────────────┤
       │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]                             07/22/2015                      GLPROVOKINGVERTEX(3G)