public class EXTWindowRectangles
extends java.lang.Object
This extension provides additional orthogonally aligned "window rectangles" specified in window-space coordinates that restrict rasterization of all primitive types (geometry, images, paths) and framebuffer clears.
When rendering to the framebuffer of an on-screen window, these window rectangles are ignored so these window rectangles apply to rendering to non-zero framebuffer objects only.
From zero to an implementation-dependent limit (specified by MAX_WINDOW_RECTANGLES_EXT) number of window rectangles can be operational at once. When
one or more window rectangles are active, rasterized fragments can either survive if the fragment is within any of the operational window rectangles
(INCLUSIVE_EXT mode) or be rejected if the fragment is within any of the operational window rectangles (EXCLUSIVE_EXT mode).
These window rectangles operate orthogonally to the existing scissor test functionality.
This extension has specification language for both OpenGL and ES so EXT_window_rectangles can be implemented and advertised for either or both
API contexts.
Requires GL30 or EXT_draw_buffers2.
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_EXCLUSIVE_EXT
Accepted by the
mode parameter of WindowRectanglesEXT. |
static int |
GL_INCLUSIVE_EXT
Accepted by the
mode parameter of WindowRectanglesEXT. |
static int |
GL_MAX_WINDOW_RECTANGLES_EXT
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_NUM_WINDOW_RECTANGLES_EXT
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_WINDOW_RECTANGLE_EXT
Accepted by the
pname parameter of GetIntegeri_v, GetInteger64i_v, GetBooleani_v, GetFloati_v, GetDoublei_v, GetIntegerIndexedvEXT,
GetFloatIndexedvEXT, GetDoubleIndexedvEXT, GetBooleanIndexedvEXT, and GetIntegeri_vEXT. |
static int |
GL_WINDOW_RECTANGLE_MODE_EXT
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
| Modifier and Type | Method and Description |
|---|---|
static void |
glWindowRectanglesEXT(int mode,
int[] box)
Array version of:
WindowRectanglesEXT |
static void |
glWindowRectanglesEXT(int mode,
java.nio.IntBuffer box)
Sets the active window rectangles.
|
static void |
nglWindowRectanglesEXT(int mode,
int count,
long box)
Unsafe version of:
WindowRectanglesEXT |
public static final int GL_INCLUSIVE_EXT
mode parameter of WindowRectanglesEXT.public static final int GL_EXCLUSIVE_EXT
mode parameter of WindowRectanglesEXT.public static final int GL_WINDOW_RECTANGLE_EXT
pname parameter of GetIntegeri_v, GetInteger64i_v, GetBooleani_v, GetFloati_v, GetDoublei_v, GetIntegerIndexedvEXT,
GetFloatIndexedvEXT, GetDoubleIndexedvEXT, GetBooleanIndexedvEXT, and GetIntegeri_vEXT.public static final int GL_WINDOW_RECTANGLE_MODE_EXT
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_WINDOW_RECTANGLES_EXT
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_NUM_WINDOW_RECTANGLES_EXT
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static void nglWindowRectanglesEXT(int mode,
int count,
long box)
WindowRectanglesEXTcount - the number of active window rectangles. Must be between zero and the value of MAX_WINDOW_RECTANGLES_EXT.public static void glWindowRectanglesEXT(int mode,
@Nullable
java.nio.IntBuffer box)
When the WindowRectanglesEXT command is processed without error, the ith window rectangle box is set to the corresponding four
parameters for values of i less then n. For values of i greater than n, each window rectangle box is set to (0,0,0,0).
Each four elements corresponds to the ith window rectangle indicating a box of pixels specified with window-space coordinates. Each window
rectangle box i has a lower-left origin at (x_i,y_i) and upper-right corner at (x_i+w_i,y_i+h_i).
The INVALID_VALUE error is generated if any element w_i or h_i, corresponding to each box's respective width and height, is negative.
Each rasterized or cleared fragment with a window-space position (xw,yw) is within the ith window rectangle box when both of these
equations are satisfied for all i less than n:
x_i <= xw < x_i+w_i
y_i <= yw < y_i+h_i
When the window rectangles mode is INCLUSIVE_EXT mode and the bound framebuffer object is non-zero, a fragment passes the window rectangles test if
the fragment's window-space position is within at least one of the current n active window rectangles; otherwise the window rectangles test
fails and the fragment is discarded.
When the window rectangles mode is EXCLUSIVE_EXT mode and the bound framebuffer object is non-zero, a fragment fails the window rectangles test and is
discarded if the fragment's window-space position is within at least one of the current n active window rectangles; otherwise the window
rectangles test passes and the fragment passes the window rectangles test.
When the bound framebuffer object is zero, the window rectangles test always passes.
mode - the rectangle mode. One of:INCLUSIVE_EXT | EXCLUSIVE_EXT |
box - an array of 4*count window rectangle coordinatespublic static void glWindowRectanglesEXT(int mode,
@Nullable
int[] box)
WindowRectanglesEXTCopyright LWJGL. All Rights Reserved. License terms.