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 |
|
|
|
|
|
|
|
|
|
|
|
Function Name |
1.10 |
1.20 |
1.30 |
1.40 |
1.50 |
3.30 |
4.00 |
4.10 |
4.20 |
4.30 |
4.40 |
4.50 |
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