OpenGL.GL.ARB.viewport_array
OpenGL extension ARB.viewport_array
This module customises the behaviour of the
OpenGL.raw.GL.ARB.viewport_array to provide a more
Python-friendly API
Overview (from the spec)
OpenGL is modeled on a pipeline of operations. The final stage in this
pipeline before rasterization is the viewport transformation. This stage
transforms vertices from view space into window coordinates and allows the
application to specify a rectangular region of screen space into which
OpenGL should draw primitives. Unextended OpenGL implementations provide a
single viewport per context. In order to draw primitives into multiple
viewports, the OpenGL viewport may be changed between several draw calls.
With the advent of Geometry Shaders, it has become possible for an
application to amplify geometry and produce multiple output primitives
for each primitive input to the Geometry Shader. It is possible to direct
these primitives to render into a selected render target. However, all
render targets share the same, global OpenGL viewport.
This extension enhances OpenGL by providing a mechanism to expose multiple
viewports. Each viewport is specified as a rectangle. The destination
viewport may be selected per-primitive by the geometry shader. This allows
the Geometry Shader to produce different versions of primitives destined
for separate viewport rectangles on the same surface. Additionally, when
combined with multiple framebuffer attachments, it allows a different
viewport rectangle to be selected for each. This extension also exposes a
separate scissor rectangle for each viewport. Finally, the viewport bounds
are now floating point quantities allowing fractional pixel offsets to be
applied during the viewport transform.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/viewport_array.txt
Functions
Constants
GL_DEPTH_RANGE (2928)
GL_FIRST_VERTEX_CONVENTION (36429)
GL_LAST_VERTEX_CONVENTION (36430)
GL_LAYER_PROVOKING_VERTEX (33374)
GL_MAX_VIEWPORTS (33371)
GL_PROVOKING_VERTEX (36431)
GL_SCISSOR_BOX (3088)
GL_SCISSOR_TEST (3089)
GL_UNDEFINED_VERTEX (33376)
GL_VIEWPORT (2978)
GL_VIEWPORT_BOUNDS_RANGE (33373)
GL_VIEWPORT_INDEX_PROVOKING_VERTEX (33375)
GL_VIEWPORT_SUBPIXEL_BITS (33372)