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

NAME

       gl_ViewportIndex - contains the index of the viewport to be used in viewport
       transformation and scissoring

DECLARATION

       // In geometry shaders

       out int gl_ViewportIndex ;

       // In fragment shaders

       in int gl_ViewportIndex ;

DESCRIPTION

       In the geometry language, gl_ViewportIndex is used to specify the index of the viewport to
       which the next primitive emitted from the shader should be drawn. Primitives generated by
       the geometry shader will undergo viewport transformation and scissor testing using the
       viewport transformation and scissor rectangle selected by the value of gl_ViewportIndex.
       The viewport index used will come from one of the vertices in the primitive being shaded.
       However, which vertex the viewport index comes from is implementation-defined, and so it
       is recommended to use the same viewport index for all vertices of a primitive. If a
       geometry shader does not assign a value to gl_ViewportIndex, viewport transform and
       scissor rectangle zero will be used. If a geometry shader statically assigns a value to
       gl_ViewportIndex and there is a path through the shader that does not assign a value to
       gl_ViewportIndex, the value of gl_ViewportIndex is undefined for executions of the shader
       that take that path.

       In the fragment language, gl_ViewportIndex will have the same value that was written to
       the output variable gl_ViewportIndex in the geometry stage. If the geometry stage does not
       dynamically assign to gl_ViewportIndex, the value of gl_ViewportIndex in the fragment
       shader will be undefined. If the geometry stage makes no static assignment to
       gl_ViewportIndex, the fragment stage will read zero. Otherwise, the fragment stage will
       read the same value written by the geometry stage, even if that value is out of range. If
       a fragment shader contains a static access to gl_ViewportIndex, it will count against the
       implementation defined limit for the maximum number of inputs to the fragment stage.

VERSION SUPPORT

       ┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────┐
       │                 │        OpenGL Shading Language Version                                            │
       ├─────────────────┼──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┤
       │Function1.101.201.301.401.503.304.004.104.204.304.404.50 │
       │Name             │      │      │      │      │      │      │      │      │      │      │      │      │
       ├─────────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │gl_ViewportIndex │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │(geometry        │      │      │      │      │      │      │      │      │      │      │      │      │
       │stage)           │      │      │      │      │      │      │      │      │      │      │      │      │
       ├─────────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │gl_ViewportIndex │  -   │  -   │  -   │  -   │  -   │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │
       │(fragment stage) │      │      │      │      │      │      │      │      │      │      │      │      │
       └─────────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

SEE ALSO

       gl_Layer()

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]                             01/03/2018                       GL_VIEWPORTINDEX(3G)