# GLAPI/glProvokingVertex

Core in version | 4.6 | |
---|---|---|

Core since version | 3.2 | |

Core ARB extension | ARB_provoking_vertex |

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

## Function Definition

voidglProvokingVertex(GLenum provokeMode);

- 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 |
---|---|---|

point | i |
i |

independent line | 2i - 1 |
2i |

line loop | i |
i + 1, if i < n
1, if |

line strip | i |
i + 1 |

independent triangle | 3i - 2 |
3i |

triangle strip | i |
i + 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.

## See Also

Category:Core API Ref Vertex Rendering

## Copyright

Copyright © 2010 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/.