Class ARBRobustness
Several recent trends in how OpenGL integrates into modern computer systems have created new requirements for robustness and security for OpenGL rendering contexts.
Additionally GPU architectures now support hardware fault detection; for example, video memory supporting ECC (error correcting codes) and error detection. OpenGL contexts should be capable of recovering from hardware faults such as uncorrectable memory errors. Along with recovery from such hardware faults, the recovery mechanism can also allow recovery from video memory access exceptions and system software failures. System software failures can be due to device changes or driver failures.
Demands for increased software robustness and concerns about malware exploiting buffer overflows have lead API designers to provide additional "safe" APIs that bound the amount of data returned by an API query. For example, the safer "snprintf" or "_snprintf" routines are prefered over "sprintf".
The OpenGL API has many such robustness perils. OpenGL queries return (write) some number of bytes to a buffer indicated by a pointer parameter. The exact number of bytes written by existing OpenGL queries is not expressed directly by any specific parameter; instead the number of bytes returned is a complex function of one or more query arguments, sometimes context state such as pixel store modes or the active texture selector, and the current state of an object (such as a texture level's number of total texels). By the standards of modern API design, such queries are not "safe". Making these queries safer involves introducing a new query API with an additional parameter that specifies the number of bytes in the buffer and never writing bytes beyond that limit.
Multi-threaded use of OpenGL contexts in a "share group" allow sharing of objects such as textures and programs. Such sharing in conjunction with concurrent OpenGL commands stream execution by two or more contexts introduces hazards whereby one context can change objects in ways that can cause buffer overflows for another context's OpenGL queries.
The original ARB_vertex_buffer_object
extension includes an issue that explicitly states program termination is allowed when out-of-bounds
vertex buffer object fetches occur. Modern GPUs capable of DirectX 10 enforce the well-defined behavior of always returning zero values for indices or
non-fixed components in this case. Older GPUs may require extra checks to enforce well-defined (and termination free) behavior, but this expense is
warranted when processing potentially untrusted content.
The intent of this extension is to address some specific robustness goals:
- For all existing OpenGL queries, provide additional "safe" APIs that limit data written to user pointers to a buffer size in bytes that is an explicit additional parameter of the query.
- Provide a mechanism for an OpenGL application to learn about graphics resets that affect the context. When a graphics reset occurs, the OpenGL context becomes unusable and the application must create a new context to continue operation. Detecting a graphics reset happens through an inexpensive query.
- Provide an enable to guarantee that out-of-bounds buffer object accesses by the GPU will have deterministic behavior and preclude application instability or termination due to an incorrect buffer access. Such accesses include vertex buffer fetches of attributes and indices, and indexed reads of uniforms or parameters from buffers.
In one anticipated usage model, WebGL contexts may make use of these robust features to grant greater stability when using untrusted code. WebGL contexts cannot call OpenGL commands directly but rather must route all OpenGL API calls through the web browser. It is then the web browser that configures the context, using the commands in this extension, to enforce safe behavior. In this scenario, the WebGL content cannot specify or change the use of this extension's features itself; the web browser enforces this policy.
There are other well-known robustness issues with the OpenGL API which this extension does not address. For example, selector-based OpenGL commands are
a well-known source of programming errors. Code to manipulate texture state may assume the active texture selector is set appropriately when an
intervening function call obscures a change to the active texture state resulting in incorrectly updated or queried state. The
EXT_direct_state_access
extension introduces selector-free OpenGL commands and queries to address that particular issue so this extension does
not.
The intent of this extension is NOT to deprecate any existing API and thereby introduce compatibility issues and coding burdens on existing code, but rather to provide new APIs to ensure a level of robustness commensurate with the expectations of modern applications of OpenGL.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Returned by GetIntegerv whenpname
is CONTEXT_FLAGS.static final int
Returned by GetGraphicsResetStatusARB.static final int
Returned by GetGraphicsResetStatusARB.static final int
Returned by GetIntegerv and related simple queries whenvalue
is RESET_NOTIFICATION_STRATEGY_ARB.static final int
Returned by GetIntegerv and related simple queries whenvalue
is RESET_NOTIFICATION_STRATEGY_ARB.static final int
Accepted by thevalue
parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.static final int
Returned by GetGraphicsResetStatusARB. -
Method Summary
Modifier and TypeMethodDescriptionstatic int
The symbolic constant returned indicates if the GL context has been in a reset state at any point since the last call toGetGraphicsResetStatusARB
.static void
glGetnColorTableARB
(int target, int format, int type, float[] table) Array version of:GetnColorTableARB
static void
glGetnColorTableARB
(int target, int format, int type, int[] table) Array version of:GetnColorTableARB
static void
glGetnColorTableARB
(int target, int format, int type, int bufSize, long table) Robust version ofGetColorTable
static void
glGetnColorTableARB
(int target, int format, int type, short[] table) Array version of:GetnColorTableARB
static void
glGetnColorTableARB
(int target, int format, int type, ByteBuffer table) Robust version ofGetColorTable
static void
glGetnColorTableARB
(int target, int format, int type, FloatBuffer table) Robust version ofGetColorTable
static void
glGetnColorTableARB
(int target, int format, int type, IntBuffer table) Robust version ofGetColorTable
static void
glGetnColorTableARB
(int target, int format, int type, ShortBuffer table) Robust version ofGetColorTable
static void
glGetnCompressedTexImageARB
(int target, int level, int bufSize, long img) Robust version ofGetCompressedTexImage
static void
glGetnCompressedTexImageARB
(int target, int level, ByteBuffer img) Robust version ofGetCompressedTexImage
static void
glGetnConvolutionFilterARB
(int target, int format, int type, int bufSize, long image) Robust version ofGetConvolutionFilter
static void
glGetnConvolutionFilterARB
(int target, int format, int type, ByteBuffer image) Robust version ofGetConvolutionFilter
static void
glGetnHistogramARB
(int target, boolean reset, int format, int type, int bufSize, long values) Robust version ofGetHistogram
static void
glGetnHistogramARB
(int target, boolean reset, int format, int type, ByteBuffer values) Robust version ofGetHistogram
static double
glGetnMapdARB
(int target, int query) Robust version ofGetMapdv
static void
glGetnMapdvARB
(int target, int query, double[] data) Array version of:GetnMapdvARB
static void
glGetnMapdvARB
(int target, int query, DoubleBuffer data) Robust version ofGetMapdv
static float
glGetnMapfARB
(int target, int query) Robust version ofGetMapfv
static void
glGetnMapfvARB
(int target, int query, float[] data) Array version of:GetnMapfvARB
static void
glGetnMapfvARB
(int target, int query, FloatBuffer data) Robust version ofGetMapfv
static int
glGetnMapiARB
(int target, int query) Robust version ofGetMapiv
static void
glGetnMapivARB
(int target, int query, int[] data) Array version of:GetnMapivARB
static void
glGetnMapivARB
(int target, int query, IntBuffer data) Robust version ofGetMapiv
static void
glGetnMinmaxARB
(int target, boolean reset, int format, int type, int bufSize, long values) Robust version ofGetMinmax
static void
glGetnMinmaxARB
(int target, boolean reset, int format, int type, ByteBuffer values) Robust version ofGetMinmax
static void
glGetnPixelMapfvARB
(int map, float[] data) Array version of:GetnPixelMapfvARB
static void
glGetnPixelMapfvARB
(int map, FloatBuffer data) Robust version ofGetPixelMapfv
static void
glGetnPixelMapuivARB
(int map, int[] data) Array version of:GetnPixelMapuivARB
static void
glGetnPixelMapuivARB
(int map, IntBuffer data) Robust version ofGetPixelMapuiv
static void
glGetnPixelMapusvARB
(int map, short[] data) Array version of:GetnPixelMapusvARB
static void
glGetnPixelMapusvARB
(int map, ShortBuffer data) Robust version ofGetPixelMapusv
static void
glGetnPolygonStippleARB
(int bufSize, long pattern) Robust version ofGetPolygonStipple
static void
glGetnPolygonStippleARB
(ByteBuffer pattern) Robust version ofGetPolygonStipple
static void
glGetnSeparableFilterARB
(int target, int format, int type, int rowBufSize, long row, int columnBufSize, long column, ByteBuffer span) Robust version ofGetSeparableFilter
static void
glGetnSeparableFilterARB
(int target, int format, int type, ByteBuffer row, ByteBuffer column, ByteBuffer span) Robust version ofGetSeparableFilter
static void
glGetnTexImageARB
(int tex, int level, int format, int type, double[] img) Array version of:GetnTexImageARB
static void
glGetnTexImageARB
(int tex, int level, int format, int type, float[] img) Array version of:GetnTexImageARB
static void
glGetnTexImageARB
(int tex, int level, int format, int type, int[] img) Array version of:GetnTexImageARB
static void
glGetnTexImageARB
(int tex, int level, int format, int type, int bufSize, long img) Robust version ofGetTexImage
static void
glGetnTexImageARB
(int tex, int level, int format, int type, short[] img) Array version of:GetnTexImageARB
static void
glGetnTexImageARB
(int tex, int level, int format, int type, ByteBuffer img) Robust version ofGetTexImage
static void
glGetnTexImageARB
(int tex, int level, int format, int type, DoubleBuffer img) Robust version ofGetTexImage
static void
glGetnTexImageARB
(int tex, int level, int format, int type, FloatBuffer img) Robust version ofGetTexImage
static void
glGetnTexImageARB
(int tex, int level, int format, int type, IntBuffer img) Robust version ofGetTexImage
static void
glGetnTexImageARB
(int tex, int level, int format, int type, ShortBuffer img) Robust version ofGetTexImage
static double
glGetnUniformdARB
(int program, int location) Robust version ofGetUniformdv
static void
glGetnUniformdvARB
(int program, int location, double[] params) Array version of:GetnUniformdvARB
static void
glGetnUniformdvARB
(int program, int location, DoubleBuffer params) Robust version ofGetUniformdv
static float
glGetnUniformfARB
(int program, int location) Robust version ofGetUniformfv
static void
glGetnUniformfvARB
(int program, int location, float[] params) Array version of:GetnUniformfvARB
static void
glGetnUniformfvARB
(int program, int location, FloatBuffer params) Robust version ofGetUniformfv
static int
glGetnUniformiARB
(int program, int location) Robust version ofGetUniformiv
static void
glGetnUniformivARB
(int program, int location, int[] params) Array version of:GetnUniformivARB
static void
glGetnUniformivARB
(int program, int location, IntBuffer params) Robust version ofGetUniformiv
static int
glGetnUniformuiARB
(int program, int location) Robust version ofGetUniformuiv
static void
glGetnUniformuivARB
(int program, int location, int[] params) Array version of:GetnUniformuivARB
static void
glGetnUniformuivARB
(int program, int location, IntBuffer params) Robust version ofGetUniformuiv
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, float[] data) Array version of:ReadnPixelsARB
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, int[] data) Array version of:ReadnPixelsARB
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, int bufSize, long data) Robust version ofReadPixels
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, short[] data) Array version of:ReadnPixelsARB
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, ByteBuffer data) Robust version ofReadPixels
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, FloatBuffer data) Robust version ofReadPixels
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, IntBuffer data) Robust version ofReadPixels
static void
glReadnPixelsARB
(int x, int y, int width, int height, int format, int type, ShortBuffer data) Robust version ofReadPixels
static void
nglGetnColorTableARB
(int target, int format, int type, int bufSize, long table) Unsafe version of:GetnColorTableARB
static void
nglGetnCompressedTexImageARB
(int target, int level, int bufSize, long img) Unsafe version of:GetnCompressedTexImageARB
static void
nglGetnConvolutionFilterARB
(int target, int format, int type, int bufSize, long image) Unsafe version of:GetnConvolutionFilterARB
static void
nglGetnHistogramARB
(int target, boolean reset, int format, int type, int bufSize, long values) Unsafe version of:GetnHistogramARB
static void
nglGetnMapdvARB
(int target, int query, int bufSize, long data) Unsafe version of:GetnMapdvARB
static void
nglGetnMapfvARB
(int target, int query, int bufSize, long data) Unsafe version of:GetnMapfvARB
static void
nglGetnMapivARB
(int target, int query, int bufSize, long data) Unsafe version of:GetnMapivARB
static void
nglGetnMinmaxARB
(int target, boolean reset, int format, int type, int bufSize, long values) Unsafe version of:GetnMinmaxARB
static void
nglGetnPixelMapfvARB
(int map, int bufSize, long data) Unsafe version of:GetnPixelMapfvARB
static void
nglGetnPixelMapuivARB
(int map, int bufSize, long data) Unsafe version of:GetnPixelMapuivARB
static void
nglGetnPixelMapusvARB
(int map, int bufSize, long data) Unsafe version of:GetnPixelMapusvARB
static void
nglGetnPolygonStippleARB
(int bufSize, long pattern) Unsafe version of:GetnPolygonStippleARB
static void
nglGetnSeparableFilterARB
(int target, int format, int type, int rowBufSize, long row, int columnBufSize, long column, long span) Unsafe version of:GetnSeparableFilterARB
static void
nglGetnTexImageARB
(int tex, int level, int format, int type, int bufSize, long img) Unsafe version of:GetnTexImageARB
static void
nglGetnUniformdvARB
(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformdvARB
static void
nglGetnUniformfvARB
(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformfvARB
static void
nglGetnUniformivARB
(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformivARB
static void
nglGetnUniformuivARB
(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformuivARB
static void
nglReadnPixelsARB
(int x, int y, int width, int height, int format, int type, int bufSize, long data) Unsafe version of:ReadnPixelsARB
-
Field Details
-
GL_GUILTY_CONTEXT_RESET_ARB
public static final int GL_GUILTY_CONTEXT_RESET_ARBReturned by GetGraphicsResetStatusARB.- See Also:
-
GL_INNOCENT_CONTEXT_RESET_ARB
public static final int GL_INNOCENT_CONTEXT_RESET_ARBReturned by GetGraphicsResetStatusARB.- See Also:
-
GL_UNKNOWN_CONTEXT_RESET_ARB
public static final int GL_UNKNOWN_CONTEXT_RESET_ARBReturned by GetGraphicsResetStatusARB.- See Also:
-
GL_RESET_NOTIFICATION_STRATEGY_ARB
public static final int GL_RESET_NOTIFICATION_STRATEGY_ARBAccepted by thevalue
parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.- See Also:
-
GL_LOSE_CONTEXT_ON_RESET_ARB
public static final int GL_LOSE_CONTEXT_ON_RESET_ARBReturned by GetIntegerv and related simple queries whenvalue
is RESET_NOTIFICATION_STRATEGY_ARB.- See Also:
-
GL_NO_RESET_NOTIFICATION_ARB
public static final int GL_NO_RESET_NOTIFICATION_ARBReturned by GetIntegerv and related simple queries whenvalue
is RESET_NOTIFICATION_STRATEGY_ARB.- See Also:
-
GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
public static final int GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARBReturned by GetIntegerv whenpname
is CONTEXT_FLAGS.- See Also:
-
-
Method Details
-
glGetGraphicsResetStatusARB
public static int glGetGraphicsResetStatusARB()The symbolic constant returned indicates if the GL context has been in a reset state at any point since the last call toGetGraphicsResetStatusARB
.NO_ERROR
indicates that the GL context has not been in a reset state since the last call.GUILTY_CONTEXT_RESET_ARB
indicates that a reset has been detected that is attributable to the current GL context.INNOCENT_CONTEXT_RESET_ARB
indicates a reset has been detected that is not attributable to the current GL context.UNKNOWN_CONTEXT_RESET_ARB
indicates a detected graphics reset whose cause is unknown.If a reset status other than NO_ERROR is returned and subsequent calls return NO_ERROR, the context reset was encountered and completed. If a reset status is repeatedly returned, the context may be in the process of resetting.
Reset notification behavior is determined at context creation time, and may be queried by calling
GetIntegerv
with the symbolic constantRESET_NOTIFICATION_STRATEGY_ARB
.If the reset notification behavior is
NO_RESET_NOTIFICATION_ARB
, then the implementation will never deliver notification of reset events, andGetGraphicsResetStatusARB
will always return NO_ERROR.If the behavior is
LOSE_CONTEXT_ON_RESET_ARB
, a graphics reset will result in the loss of all context state, requiring the recreation of all associated objects. In this caseGetGraphicsResetStatusARB
. may return any of the values described above.If a graphics reset notification occurs in a context, a notification must also occur in all other contexts which share objects with that context.
-
nglGetnMapdvARB
public static void nglGetnMapdvARB(int target, int query, int bufSize, long data) Unsafe version of:GetnMapdvARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glGetnMapdvARB
Robust version ofGetMapdv
- Parameters:
target
- the evaluator mapquery
- the information to querydata
- a buffer in which to place the returned data
-
glGetnMapdARB
public static double glGetnMapdARB(int target, int query) Robust version ofGetMapdv
- Parameters:
target
- the evaluator mapquery
- the information to query
-
nglGetnMapfvARB
public static void nglGetnMapfvARB(int target, int query, int bufSize, long data) Unsafe version of:GetnMapfvARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glGetnMapfvARB
Robust version ofGetMapfv
- Parameters:
target
- the evaluator mapquery
- the information to querydata
- a buffer in which to place the returned data
-
glGetnMapfARB
public static float glGetnMapfARB(int target, int query) Robust version ofGetMapfv
- Parameters:
target
- the evaluator mapquery
- the information to query
-
nglGetnMapivARB
public static void nglGetnMapivARB(int target, int query, int bufSize, long data) Unsafe version of:GetnMapivARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glGetnMapivARB
Robust version ofGetMapiv
- Parameters:
target
- the evaluator target. One of:query
- the information to query. One of:ORDER
COEFF
DOMAIN
data
- a buffer in which to place the returned data
-
glGetnMapiARB
public static int glGetnMapiARB(int target, int query) Robust version ofGetMapiv
- Parameters:
target
- the evaluator target. One of:query
- the information to query. One of:ORDER
COEFF
DOMAIN
-
nglGetnPixelMapfvARB
public static void nglGetnPixelMapfvARB(int map, int bufSize, long data) Unsafe version of:GetnPixelMapfvARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glGetnPixelMapfvARB
Robust version ofGetPixelMapfv
- Parameters:
map
- the pixel map parameter to query. One of:PIXEL_MAP_I_TO_I
PIXEL_MAP_S_TO_S
PIXEL_MAP_I_TO_R
PIXEL_MAP_I_TO_G
PIXEL_MAP_I_TO_B
PIXEL_MAP_I_TO_A
PIXEL_MAP_R_TO_R
PIXEL_MAP_G_TO_G
PIXEL_MAP_B_TO_B
PIXEL_MAP_A_TO_A
data
- a buffer in which to place the returned data
-
nglGetnPixelMapuivARB
public static void nglGetnPixelMapuivARB(int map, int bufSize, long data) Unsafe version of:GetnPixelMapuivARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glGetnPixelMapuivARB
Robust version ofGetPixelMapuiv
- Parameters:
map
- the pixel map parameter to querydata
- a buffer in which to place the returned data
-
nglGetnPixelMapusvARB
public static void nglGetnPixelMapusvARB(int map, int bufSize, long data) Unsafe version of:GetnPixelMapusvARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glGetnPixelMapusvARB
Robust version ofGetPixelMapusv
- Parameters:
map
- the pixel map parameter to querydata
- a buffer in which to place the returned data
-
nglGetnPolygonStippleARB
public static void nglGetnPolygonStippleARB(int bufSize, long pattern) Unsafe version of:GetnPolygonStippleARB
- Parameters:
bufSize
- the maximum number of bytes to write intopattern
-
glGetnPolygonStippleARB
public static void glGetnPolygonStippleARB(int bufSize, long pattern) Robust version ofGetPolygonStipple
- Parameters:
bufSize
- the maximum number of bytes to write intopattern
pattern
- a buffer in which to place the returned pattern
-
glGetnPolygonStippleARB
Robust version ofGetPolygonStipple
- Parameters:
pattern
- a buffer in which to place the returned pattern
-
nglGetnTexImageARB
public static void nglGetnTexImageARB(int tex, int level, int format, int type, int bufSize, long img) Unsafe version of:GetnTexImageARB
- Parameters:
bufSize
- the maximum number of bytes to write intoimg
-
glGetnTexImageARB
public static void glGetnTexImageARB(int tex, int level, int format, int type, int bufSize, long img) Robust version ofGetTexImage
- Parameters:
tex
- the texture (or texture face) to be obtained. One of:level
- the level-of-detail numberformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:bufSize
- the maximum number of bytes to write intoimg
img
- a buffer in which to place the returned data
-
glGetnTexImageARB
Robust version ofGetTexImage
- Parameters:
tex
- the texture (or texture face) to be obtained. One of:level
- the level-of-detail numberformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:img
- a buffer in which to place the returned data
-
glGetnTexImageARB
Robust version ofGetTexImage
- Parameters:
tex
- the texture (or texture face) to be obtained. One of:level
- the level-of-detail numberformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:img
- a buffer in which to place the returned data
-
glGetnTexImageARB
Robust version ofGetTexImage
- Parameters:
tex
- the texture (or texture face) to be obtained. One of:level
- the level-of-detail numberformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:img
- a buffer in which to place the returned data
-
glGetnTexImageARB
Robust version ofGetTexImage
- Parameters:
tex
- the texture (or texture face) to be obtained. One of:level
- the level-of-detail numberformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:img
- a buffer in which to place the returned data
-
glGetnTexImageARB
Robust version ofGetTexImage
- Parameters:
tex
- the texture (or texture face) to be obtained. One of:level
- the level-of-detail numberformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:img
- a buffer in which to place the returned data
-
nglReadnPixelsARB
public static void nglReadnPixelsARB(int x, int y, int width, int height, int format, int type, int bufSize, long data) Unsafe version of:ReadnPixelsARB
- Parameters:
bufSize
- the maximum number of bytes to write intodata
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, int bufSize, long data) Robust version ofReadPixels
- Parameters:
x
- the left pixel coordinatey
- the lower pixel coordinatewidth
- the number of pixels to read in the x-dimensionheight
- the number of pixels to read in the y-dimensionformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:bufSize
- the maximum number of bytes to write intodata
data
- a buffer in which to place the returned data
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, ByteBuffer data) Robust version ofReadPixels
- Parameters:
x
- the left pixel coordinatey
- the lower pixel coordinatewidth
- the number of pixels to read in the x-dimensionheight
- the number of pixels to read in the y-dimensionformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:data
- a buffer in which to place the returned data
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, ShortBuffer data) Robust version ofReadPixels
- Parameters:
x
- the left pixel coordinatey
- the lower pixel coordinatewidth
- the number of pixels to read in the x-dimensionheight
- the number of pixels to read in the y-dimensionformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:data
- a buffer in which to place the returned data
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, IntBuffer data) Robust version ofReadPixels
- Parameters:
x
- the left pixel coordinatey
- the lower pixel coordinatewidth
- the number of pixels to read in the x-dimensionheight
- the number of pixels to read in the y-dimensionformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:data
- a buffer in which to place the returned data
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, FloatBuffer data) Robust version ofReadPixels
- Parameters:
x
- the left pixel coordinatey
- the lower pixel coordinatewidth
- the number of pixels to read in the x-dimensionheight
- the number of pixels to read in the y-dimensionformat
- the pixel format. One of:RED
GREEN
BLUE
ALPHA
RG
RGB
RGBA
BGR
BGRA
RED_INTEGER
GREEN_INTEGER
BLUE_INTEGER
ALPHA_INTEGER
RG_INTEGER
RGB_INTEGER
RGBA_INTEGER
BGR_INTEGER
BGRA_INTEGER
STENCIL_INDEX
DEPTH_COMPONENT
DEPTH_STENCIL
type
- the pixel type. One of:data
- a buffer in which to place the returned data
-
nglGetnColorTableARB
public static void nglGetnColorTableARB(int target, int format, int type, int bufSize, long table) Unsafe version of:GetnColorTableARB
- Parameters:
bufSize
- the maximum number of bytes to write intotable
-
glGetnColorTableARB
public static void glGetnColorTableARB(int target, int format, int type, int bufSize, long table) Robust version ofGetColorTable
- Parameters:
target
- the color table target. One of:COLOR_TABLE
POST_CONVOLUTION_COLOR_TABLE
POST_COLOR_MATRIX_COLOR_TABLE
format
- the color data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the color data type. One of:bufSize
- the maximum number of bytes to write intotable
table
- a buffer in which to place the returned data
-
glGetnColorTableARB
Robust version ofGetColorTable
- Parameters:
target
- the color table target. One of:COLOR_TABLE
POST_CONVOLUTION_COLOR_TABLE
POST_COLOR_MATRIX_COLOR_TABLE
format
- the color data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the color data type. One of:table
- a buffer in which to place the returned data
-
glGetnColorTableARB
Robust version ofGetColorTable
- Parameters:
target
- the color table target. One of:COLOR_TABLE
POST_CONVOLUTION_COLOR_TABLE
POST_COLOR_MATRIX_COLOR_TABLE
format
- the color data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the color data type. One of:table
- a buffer in which to place the returned data
-
glGetnColorTableARB
Robust version ofGetColorTable
- Parameters:
target
- the color table target. One of:COLOR_TABLE
POST_CONVOLUTION_COLOR_TABLE
POST_COLOR_MATRIX_COLOR_TABLE
format
- the color data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the color data type. One of:table
- a buffer in which to place the returned data
-
glGetnColorTableARB
Robust version ofGetColorTable
- Parameters:
target
- the color table target. One of:COLOR_TABLE
POST_CONVOLUTION_COLOR_TABLE
POST_COLOR_MATRIX_COLOR_TABLE
format
- the color data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the color data type. One of:table
- a buffer in which to place the returned data
-
nglGetnConvolutionFilterARB
public static void nglGetnConvolutionFilterARB(int target, int format, int type, int bufSize, long image) Unsafe version of:GetnConvolutionFilterARB
- Parameters:
bufSize
- the maximum number of bytes to write intoimage
-
glGetnConvolutionFilterARB
public static void glGetnConvolutionFilterARB(int target, int format, int type, int bufSize, long image) Robust version ofGetConvolutionFilter
- Parameters:
target
- the convolution target. One of:CONVOLUTION_1D
CONVOLUTION_2D
format
- the filter data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the filter data type. One of:bufSize
- the maximum number of bytes to write intoimage
image
- a buffer in which to place the returned data
-
glGetnConvolutionFilterARB
Robust version ofGetConvolutionFilter
- Parameters:
target
- the convolution target. One of:CONVOLUTION_1D
CONVOLUTION_2D
format
- the filter data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the filter data type. One of:image
- a buffer in which to place the returned data
-
nglGetnSeparableFilterARB
public static void nglGetnSeparableFilterARB(int target, int format, int type, int rowBufSize, long row, int columnBufSize, long column, long span) Unsafe version of:GetnSeparableFilterARB
- Parameters:
rowBufSize
- the maximum number of bytes to write intorow
columnBufSize
- the maximum number of bytes to write intocolumn
-
glGetnSeparableFilterARB
public static void glGetnSeparableFilterARB(int target, int format, int type, int rowBufSize, long row, int columnBufSize, long column, @Nullable ByteBuffer span) Robust version ofGetSeparableFilter
- Parameters:
target
- the filter target. Must be:SEPARABLE_2D
format
- the filter data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the filter data type. One of:rowBufSize
- the maximum number of bytes to write intorow
row
- a buffer in which to return the filter rowcolumnBufSize
- the maximum number of bytes to write intocolumn
column
- a buffer in which to return the filter column
-
glGetnSeparableFilterARB
public static void glGetnSeparableFilterARB(int target, int format, int type, ByteBuffer row, ByteBuffer column, @Nullable ByteBuffer span) Robust version ofGetSeparableFilter
- Parameters:
target
- the filter target. Must be:SEPARABLE_2D
format
- the filter data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the filter data type. One of:row
- a buffer in which to return the filter rowcolumn
- a buffer in which to return the filter column
-
nglGetnHistogramARB
public static void nglGetnHistogramARB(int target, boolean reset, int format, int type, int bufSize, long values) Unsafe version of:GetnHistogramARB
- Parameters:
bufSize
- the maximum number of bytes to write intovalues
-
glGetnHistogramARB
public static void glGetnHistogramARB(int target, boolean reset, int format, int type, int bufSize, long values) Robust version ofGetHistogram
- Parameters:
target
- the histogram target. Must be:HISTOGRAM
reset
- ifTRUE
, then all counters of all elements of the histogram are reset to zero. Counters are reset whether returned or not.format
- the pixel data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the pixel data types. One of:bufSize
- the maximum number of bytes to write intovalues
values
- a buffer in which to place the returned data
-
glGetnHistogramARB
public static void glGetnHistogramARB(int target, boolean reset, int format, int type, ByteBuffer values) Robust version ofGetHistogram
- Parameters:
target
- the histogram target. Must be:HISTOGRAM
reset
- ifTRUE
, then all counters of all elements of the histogram are reset to zero. Counters are reset whether returned or not.format
- the pixel data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the pixel data types. One of:values
- a buffer in which to place the returned data
-
nglGetnMinmaxARB
public static void nglGetnMinmaxARB(int target, boolean reset, int format, int type, int bufSize, long values) Unsafe version of:GetnMinmaxARB
- Parameters:
bufSize
- the maximum number of bytes to write intovalues
-
glGetnMinmaxARB
public static void glGetnMinmaxARB(int target, boolean reset, int format, int type, int bufSize, long values) Robust version ofGetMinmax
- Parameters:
target
- the minmax target. Must be:MINMAX
reset
- IfTRUE
, then each minimum value is reset to the maximum representable value, and each maximum value is reset to the minimum representable value. All values are reset, whether returned or not.format
- the pixel data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the pixel data type. One of:bufSize
- the maximum number of bytes to write intovalues
values
- a buffer in which to place the returned data
-
glGetnMinmaxARB
public static void glGetnMinmaxARB(int target, boolean reset, int format, int type, ByteBuffer values) Robust version ofGetMinmax
- Parameters:
target
- the minmax target. Must be:MINMAX
reset
- IfTRUE
, then each minimum value is reset to the maximum representable value, and each maximum value is reset to the minimum representable value. All values are reset, whether returned or not.format
- the pixel data format. One of:RED
GREEN
BLUE
ALPHA
RGB
RGBA
BGR
BGRA
LUMINANCE
LUMINANCE_ALPHA
type
- the pixel data type. One of:values
- a buffer in which to place the returned data
-
nglGetnCompressedTexImageARB
public static void nglGetnCompressedTexImageARB(int target, int level, int bufSize, long img) Unsafe version of:GetnCompressedTexImageARB
- Parameters:
bufSize
- the maximum number of bytes to write intoimg
-
glGetnCompressedTexImageARB
public static void glGetnCompressedTexImageARB(int target, int level, int bufSize, long img) Robust version ofGetCompressedTexImage
- Parameters:
target
- the target texture. One of:level
- the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.bufSize
- the maximum number of bytes to write intoimg
img
- a buffer in which to place the returned data
-
glGetnCompressedTexImageARB
Robust version ofGetCompressedTexImage
- Parameters:
target
- the target texture. One of:level
- the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.img
- a buffer in which to place the returned data
-
nglGetnUniformfvARB
public static void nglGetnUniformfvARB(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformfvARB
- Parameters:
bufSize
- the maximum number of bytes to write intoparams
-
glGetnUniformfvARB
Robust version ofGetUniformfv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queriedparams
- a buffer in which to place the returned data
-
glGetnUniformfARB
public static float glGetnUniformfARB(int program, int location) Robust version ofGetUniformfv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queried
-
nglGetnUniformivARB
public static void nglGetnUniformivARB(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformivARB
- Parameters:
bufSize
- the maximum number of bytes to write intoparams
-
glGetnUniformivARB
Robust version ofGetUniformiv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queriedparams
- a buffer in which to place the returned data
-
glGetnUniformiARB
public static int glGetnUniformiARB(int program, int location) Robust version ofGetUniformiv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queried
-
nglGetnUniformuivARB
public static void nglGetnUniformuivARB(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformuivARB
- Parameters:
bufSize
- the maximum number of bytes to write intoparams
-
glGetnUniformuivARB
Robust version ofGetUniformuiv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queriedparams
- a buffer in which to place the returned data
-
glGetnUniformuiARB
public static int glGetnUniformuiARB(int program, int location) Robust version ofGetUniformuiv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queried
-
nglGetnUniformdvARB
public static void nglGetnUniformdvARB(int program, int location, int bufSize, long params) Unsafe version of:GetnUniformdvARB
- Parameters:
bufSize
- the maximum number of bytes to write intoparams
-
glGetnUniformdvARB
Robust version ofGetUniformdv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queriedparams
- a buffer in which to place the returned data
-
glGetnUniformdARB
public static double glGetnUniformdARB(int program, int location) Robust version ofGetUniformdv
- Parameters:
program
- the program object to be queriedlocation
- the location of the uniform variable to be queried
-
glGetnMapdvARB
public static void glGetnMapdvARB(int target, int query, double[] data) Array version of:GetnMapdvARB
-
glGetnMapfvARB
public static void glGetnMapfvARB(int target, int query, float[] data) Array version of:GetnMapfvARB
-
glGetnMapivARB
public static void glGetnMapivARB(int target, int query, int[] data) Array version of:GetnMapivARB
-
glGetnPixelMapfvARB
public static void glGetnPixelMapfvARB(int map, float[] data) Array version of:GetnPixelMapfvARB
-
glGetnPixelMapuivARB
public static void glGetnPixelMapuivARB(int map, int[] data) Array version of:GetnPixelMapuivARB
-
glGetnPixelMapusvARB
public static void glGetnPixelMapusvARB(int map, short[] data) Array version of:GetnPixelMapusvARB
-
glGetnTexImageARB
public static void glGetnTexImageARB(int tex, int level, int format, int type, short[] img) Array version of:GetnTexImageARB
-
glGetnTexImageARB
public static void glGetnTexImageARB(int tex, int level, int format, int type, int[] img) Array version of:GetnTexImageARB
-
glGetnTexImageARB
public static void glGetnTexImageARB(int tex, int level, int format, int type, float[] img) Array version of:GetnTexImageARB
-
glGetnTexImageARB
public static void glGetnTexImageARB(int tex, int level, int format, int type, double[] img) Array version of:GetnTexImageARB
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, short[] data) Array version of:ReadnPixelsARB
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, int[] data) Array version of:ReadnPixelsARB
-
glReadnPixelsARB
public static void glReadnPixelsARB(int x, int y, int width, int height, int format, int type, float[] data) Array version of:ReadnPixelsARB
-
glGetnColorTableARB
public static void glGetnColorTableARB(int target, int format, int type, short[] table) Array version of:GetnColorTableARB
-
glGetnColorTableARB
public static void glGetnColorTableARB(int target, int format, int type, int[] table) Array version of:GetnColorTableARB
-
glGetnColorTableARB
public static void glGetnColorTableARB(int target, int format, int type, float[] table) Array version of:GetnColorTableARB
-
glGetnUniformfvARB
public static void glGetnUniformfvARB(int program, int location, float[] params) Array version of:GetnUniformfvARB
-
glGetnUniformivARB
public static void glGetnUniformivARB(int program, int location, int[] params) Array version of:GetnUniformivARB
-
glGetnUniformuivARB
public static void glGetnUniformuivARB(int program, int location, int[] params) Array version of:GetnUniformuivARB
-
glGetnUniformdvARB
public static void glGetnUniformdvARB(int program, int location, double[] params) Array version of:GetnUniformdvARB
-