OpenGL ES 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 ES should draw primitives. Unextended OpenGL ES implementations provide a single viewport per context. In order to draw primitives into multiple viewports, the OpenGL ES 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 ES viewport.
This extension enhances OpenGL ES 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.
Requires GLES32, EXT_geometry_shader or OES_geometry_shader.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_MAX_VIEWPORTS_OES
Accepted by the |
| public static final int | GL_VIEWPORT_BOUNDS_RANGE_OES
Accepted by the |
| public static final int | GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES
Accepted by the |
| public static final int | GL_VIEWPORT_SUBPIXEL_BITS_OES
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static void | |
| public static void | |
| public static native void | |
| public static void | |
| public static void | |
| public static void | |
| public static void | |
| public static float | |
| public static boolean | |
| public static void | |
| public static void | |
| public static native void | |
| public static void | |
| public static void | |
| public static void | |
| public static void | |
| public static native void | |
| public static void | |
| public static void | |
| public static native void | |
| public static native void | |
| public static native void | |
| public static native void | |
| public static native void | |
| public static native void |
| GL_MAX_VIEWPORTS_OES | back to summary |
|---|---|
| public static final int GL_MAX_VIEWPORTS_OES Accepted by the | |
| GL_VIEWPORT_BOUNDS_RANGE_OES | back to summary |
|---|---|
| public static final int GL_VIEWPORT_BOUNDS_RANGE_OES Accepted by the | |
| GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES | back to summary |
|---|---|
| public static final int GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES Accepted by the | |
| GL_VIEWPORT_SUBPIXEL_BITS_OES | back to summary |
|---|---|
| public static final int GL_VIEWPORT_SUBPIXEL_BITS_OES Accepted by the | |
| OESViewportArray | back to summary |
|---|---|
| protected OESViewportArray() | |
| glDepthRangeArrayfvOES | back to summary |
|---|---|
| public static void glDepthRangeArrayfvOES(int first, FloatBuffer v) | |
| glDepthRangeArrayfvOES | back to summary |
|---|---|
| public static void glDepthRangeArrayfvOES(int first, float[] v) Array version of: | |
| glDepthRangeIndexedfOES | back to summary |
|---|---|
| public static native void glDepthRangeIndexedfOES(int index, float n, float f) | |
| glDisableiOES | back to summary |
|---|---|
| public static void glDisableiOES(int target, int index) | |
| glEnableiOES | back to summary |
|---|---|
| public static void glEnableiOES(int target, int index) | |
| glGetFloati_vOES | back to summary |
|---|---|
| public static void glGetFloati_vOES(int target, int index, FloatBuffer data) | |
| glGetFloati_vOES | back to summary |
|---|---|
| public static void glGetFloati_vOES(int target, int index, float[] data) Array version of: | |
| glGetFloatiOES | back to summary |
|---|---|
public static float glGetFloatiOES(int target, int index)
| |
| glIsEnablediOES | back to summary |
|---|---|
public static boolean glIsEnablediOES(int target, int index)
| |
| glScissorArrayvOES | back to summary |
|---|---|
| public static void glScissorArrayvOES(int first, IntBuffer v) | |
| glScissorArrayvOES | back to summary |
|---|---|
| public static void glScissorArrayvOES(int first, int[] v) Array version of: | |
| glScissorIndexedOES | back to summary |
|---|---|
| public static native void glScissorIndexedOES(int index, int left, int bottom, int width, int height) | |
| glScissorIndexedvOES | back to summary |
|---|---|
| public static void glScissorIndexedvOES(int index, IntBuffer v) | |
| glScissorIndexedvOES | back to summary |
|---|---|
| public static void glScissorIndexedvOES(int index, int[] v) Array version of: | |
| glViewportArrayvOES | back to summary |
|---|---|
| public static void glViewportArrayvOES(int first, FloatBuffer v) | |
| glViewportArrayvOES | back to summary |
|---|---|
| public static void glViewportArrayvOES(int first, float[] v) Array version of: | |
| glViewportIndexedfOES | back to summary |
|---|---|
| public static native void glViewportIndexedfOES(int index, float x, float y, float w, float h) | |
| glViewportIndexedfvOES | back to summary |
|---|---|
| public static void glViewportIndexedfvOES(int index, FloatBuffer v) | |
| glViewportIndexedfvOES | back to summary |
|---|---|
| public static void glViewportIndexedfvOES(int index, float[] v) Array version of: | |
| nglDepthRangeArrayfvOES | back to summary |
|---|---|
| public static native void nglDepthRangeArrayfvOES(int first, int count, long v) | |
| nglGetFloati_vOES | back to summary |
|---|---|
| public static native void nglGetFloati_vOES(int target, int index, long data) | |
| nglScissorArrayvOES | back to summary |
|---|---|
| public static native void nglScissorArrayvOES(int first, int count, long v) | |
| nglScissorIndexedvOES | back to summary |
|---|---|
| public static native void nglScissorIndexedvOES(int index, long v) | |
| nglViewportArrayvOES | back to summary |
|---|---|
| public static native void nglViewportArrayvOES(int first, int count, long v) | |
| nglViewportIndexedfvOES | back to summary |
|---|---|
| public static native void nglViewportIndexedfvOES(int index, long v) | |