Provided by: opengl-4-man-doc_1.0~svn31251-1build1_all bug

NAME

       gl_PrimitiveID - contains the index of the current primitive

DECLARATION

       // In tessellation control, tessellation evaluation, and
       // fragment shaders

       in int gl_PrimitiveID ;

       // In geometry shaders

       out int gl_PrimitiveID ;

DESCRIPTION

       gl_PrimitiveID is a tessellation control, tessellation evaluation and fragment language
       input variable. For the tessellation control and tessellation evaluation languages, it
       holds the number of primitives processed by the shader since the current set of rendering
       primitives was started. The first primitive processed by the drawing command is numbered
       zero and the primitive ID counter is incremented after every individual point, line or
       triangle primitive is processed. For triangles drawn in point or line mode, the primitive
       ID counter is incremented only once, even through multiple points or lines may actually be
       drawn. Restarting a primitive topology using the primitive restart index has no effect on
       the primitive ID counter.

       In the geometry language, gl_PrimitiveID is an output variable that is passed to the
       corresponding gl_PrimitiveID input variable in the fragment shader. If no geomery shader
       is present then gl_PrimitiveID in the fragment language behaves identically as it would in
       the tessellation control and evaluation languages. If a geometry shader is present but
       does not write to gl_PrimitiveID, the value of gl_PrimitiveID in the fragment shader is
       undefined.

VERSION SUPPORT

       ┌───────────────┬───────────────────────────────────────────────────────────────────────────────────┐
       │               │        OpenGL Shading Language Version                                            │
       ├───────────────┼──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┤
       │Function1.101.201.301.401.503.304.004.104.204.304.404.50 │
       │Name           │      │      │      │      │      │      │      │      │      │      │      │      │
       ├───────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │gl_PrimitiveID │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │(Fragment      │      │      │      │      │      │      │      │      │      │      │      │      │
       │and            │      │      │      │      │      │      │      │      │      │      │      │      │
       │Geometry       │      │      │      │      │      │      │      │      │      │      │      │      │
       │Languages)     │      │      │      │      │      │      │      │      │      │      │      │      │
       ├───────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │gl_PrimitiveID │  -   │  -   │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │(Tessellation  │      │      │      │      │      │      │      │      │      │      │      │      │
       │Control and    │      │      │      │      │      │      │      │      │      │      │      │      │
       │Evaluation     │      │      │      │      │      │      │      │      │      │      │      │      │
       │Languages)     │      │      │      │      │      │      │      │      │      │      │      │      │
       └───────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

SEE ALSO

       gl_InstanceID(), gl_VertexID(), gl_PrimitiveIDIn()

COPYRIGHT

       Copyright © 2011-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 © 2011-2014 Khronos Group

[FIXME: source]                             07/22/2015                         GL_PRIMITIVEID(3G)