Package org.lwjgl.opengl

# Class ContextAttribs

java.lang.Object
org.lwjgl.opengl.ContextAttribs

public final class ContextAttribs extends Object
This class represents the context attributes passed to CreateContextAttribs of the ARB_create_context extension.

The attributes supported are described in the following extensions:

- WGL_ARB_create_context(_profile) and GLX_ARB_create_context(_profile)
- WGL_ARB_create_context_robustness and GLX_ARB_create_context_robustness
- WGL_ARB_robustness_isolation and GLX_ARB_robustness_isolation
- WGL_EXT_create_context_es2_profile and GLX_EXT_create_context_es2_profile
- KHR_context_flush_control

Use of this class is optional. If an OpenGL context is created without passing an instance of this class (or ARB_create_context is not supported), the old context creation code will be used. Support for debug and forward compatible mobes is not guaranteed by the OpenGL implementation. Developers may encounter debug contexts being the same as non-debug contexts or forward compatible contexts having support for deprecated functionality.

If the `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB` flag is used, LWJGL will not load the deprecated functionality (as defined in the OpenGL 3.0 specification), even if the driver exposes the corresponding entry points.

This extension is not supported on MacOS X. However, in order to enable the GL 3.2 context on MacOS X 10.7 or newer, an instance of this class must be passed to LWJGL. The only valid configuration is `ContextAttribs(3, 2, CONTEXT_CORE_PROFILE_BIT_ARB)`, anything else will be ignored.

Author:
  spasi invalid input: '<'spasi@users.sourceforge.net>

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB`
`static final int`
`CONTEXT_CORE_PROFILE_BIT_ARB`
`static final int`
`CONTEXT_DEBUG_BIT_ARB`
`static final int`
`CONTEXT_ES2_PROFILE_BIT_EXT`
`static final int`
`CONTEXT_FLAGS_ARB`
`static final int`
`CONTEXT_FORWARD_COMPATIBLE_BIT_ARB`
`static final int`
`CONTEXT_LAYER_PLANE_ARB`
`static final int`
`CONTEXT_MAJOR_VERSION_ARB`
`static final int`
`CONTEXT_MINOR_VERSION_ARB`
`static final int`
`CONTEXT_PROFILE_MASK_ARB`
`static final int`
`CONTEXT_RELEASE_BEHABIOR_ARB`
`static final int`
`CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB`
`static final int`
`CONTEXT_RELEASE_BEHAVIOR_NONE_ARB`
`static final int`
`CONTEXT_RESET_ISOLATION_BIT_ARB`
`static final int`
`CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB`
`static final int`
`CONTEXT_ROBUST_ACCESS_BIT_ARB`
`static final int`
`LOSE_CONTEXT_ON_RESET_ARB`
`static final int`
`NO_RESET_NOTIFICATION_ARB`

## Constructor Summary

Constructors
Constructor
Description
`ContextAttribs()`
Creates the default ContextAttribs instance.
`ContextAttribs(int majorVersion, int minorVersion)`
Creates a ContextAttribs instance for the given OpenGL version.
`ContextAttribs(int majorVersion, int minorVersion, int profileMask)`
Creates a new ContextAttribs instance with the given attributes.
`ContextAttribs(int majorVersion, int minorVersion, int profileMask, int contextFlags)`
Creates a new ContextAttribs instance with the given attributes.

## Method Summary

Modifier and Type
Method
Description
`int`
`getContextFlags()`
Returns the `CONTEXT_FLAGS_ARB` value.
`int`
`getContextReleaseBehavior()`
Returns the `CONTEXT_RELEASE_BEHABIOR_ARB` value.
`int`
`getContextResetNotificationStrategy()`
Returns the `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB` value.
`int`
`getLayerPlane()`
Returns the `CONTEXT_LAYER_PLANE_ARB` value.
`int`
`getMajorVersion()`
Returns the `CONTEXT_MAJOR_VERSION_ARB` value.
`int`
`getMinorVersion()`
Returns the `CONTEXT_MINOR_VERSION_ARB` value.
`int`
`getProfileMask()`
Returns the `CONTEXT_PROFILE_MASK_ARB` value.
`boolean`
`isContextResetIsolation()`
Returns true if the `CONTEXT_RESET_ISOLATION_BIT_ARB` has been set.
`boolean`
`isDebug()`
Returns true if the `CONTEXT_DEBUG_BIT_ARB` has been set.
`boolean`
`isForwardCompatible()`
Returns true if the `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB` has been set.
`boolean`
`isLoseContextOnReset()`
Deprecated.
use `getContextResetNotificationStrategy()` instead
`boolean`
`isProfileCompatibility()`
Returns true if the `CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB` has been set.
`boolean`
`isProfileCore()`
Returns true if the `CONTEXT_CORE_PROFILE_BIT_ARB` has been set.
`boolean`
`isProfileES()`
Returns true if the `CONTEXT_ES2_PROFILE_BIT_EXT` has been set.
`boolean`
`isRobustAccess()`
Returns true if the `CONTEXT_ROBUST_ACCESS_BIT_ARB` has been set.
`String`
`toString()`
`ContextAttribs`
`withContextReleaseBehavior(int behavior)`
Returns a ContextAttribs instance with `CONTEXT_RELEASE_BEHABIOR_ARB` set to the given behavior.
`ContextAttribs`
`withContextResetIsolation(boolean contextResetIsolation)`
Returns a new `ContextAttribs` instance with the `CONTEXT_RESET_ISOLATION_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.
`ContextAttribs`
`withDebug(boolean debug)`
Returns a new `ContextAttribs` instance with the `CONTEXT_DEBUG_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.
`ContextAttribs`
`withForwardCompatible(boolean forwardCompatible)`
Returns a new `ContextAttribs` instance with the `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.
`ContextAttribs`
`withLayer(int layerPlane)`
Returns a new `ContextAttribs` instance with `CONTEXT_LAYER_PLANE_ARB` set to the given value.
`ContextAttribs`
`withLoseContextOnReset(boolean loseContextOnReset)`
Deprecated.
use `withResetNotificationStrategy(int)` instead
`ContextAttribs`
`withProfileCompatibility(boolean profileCompatibility)`
Returns a new `ContextAttribs` instance with the `CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB` bit in `CONTEXT_PROFILE_MASK_ARB` set to the given value.
`ContextAttribs`
`withProfileCore(boolean profileCore)`
Returns a new `ContextAttribs` instance with the `CONTEXT_CORE_PROFILE_BIT_ARB` bit in `CONTEXT_PROFILE_MASK_ARB` set to the given value.
`ContextAttribs`
`withProfileES(boolean profileES)`
Returns a new `ContextAttribs` instance with the `CONTEXT_ES2_PROFILE_BIT_EXT` bit in `CONTEXT_PROFILE_MASK_ARB` set to the given value.
`ContextAttribs`
`withResetNotificationStrategy(int strategy)`
Returns a ContextAttribs instance with `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB` set to the given strategy.
`ContextAttribs`
`withRobustAccess(boolean robustAccess)`
Returns a new `ContextAttribs` instance with the `CONTEXT_ROBUST_ACCESS_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### CONTEXT_MAJOR_VERSION_ARB

public static final int CONTEXT_MAJOR_VERSION_ARB

See Also:
  - Constant Field Values

### CONTEXT_MINOR_VERSION_ARB

public static final int CONTEXT_MINOR_VERSION_ARB

See Also:
  - Constant Field Values

### CONTEXT_PROFILE_MASK_ARB

public static final int CONTEXT_PROFILE_MASK_ARB

See Also:
  - Constant Field Values

### CONTEXT_CORE_PROFILE_BIT_ARB

public static final int CONTEXT_CORE_PROFILE_BIT_ARB

See Also:
  - Constant Field Values

### CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB

public static final int CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB

See Also:
  - Constant Field Values

### CONTEXT_ES2_PROFILE_BIT_EXT

public static final int CONTEXT_ES2_PROFILE_BIT_EXT

See Also:
  - Constant Field Values

### CONTEXT_FLAGS_ARB

public static final int CONTEXT_FLAGS_ARB

See Also:
  - Constant Field Values

### CONTEXT_DEBUG_BIT_ARB

public static final int CONTEXT_DEBUG_BIT_ARB

See Also:
  - Constant Field Values

### CONTEXT_FORWARD_COMPATIBLE_BIT_ARB

public static final int CONTEXT_FORWARD_COMPATIBLE_BIT_ARB

See Also:
  - Constant Field Values

### CONTEXT_ROBUST_ACCESS_BIT_ARB

public static final int CONTEXT_ROBUST_ACCESS_BIT_ARB

See Also:
  - Constant Field Values

### CONTEXT_RESET_ISOLATION_BIT_ARB

public static final int CONTEXT_RESET_ISOLATION_BIT_ARB

See Also:
  - Constant Field Values

### CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB

public static final int CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB

See Also:
  - Constant Field Values

### NO_RESET_NOTIFICATION_ARB

public static final int NO_RESET_NOTIFICATION_ARB

See Also:
  - Constant Field Values

### LOSE_CONTEXT_ON_RESET_ARB

public static final int LOSE_CONTEXT_ON_RESET_ARB

See Also:
  - Constant Field Values

### CONTEXT_RELEASE_BEHABIOR_ARB

public static final int CONTEXT_RELEASE_BEHABIOR_ARB

See Also:
  - Constant Field Values

### CONTEXT_RELEASE_BEHAVIOR_NONE_ARB

public static final int CONTEXT_RELEASE_BEHAVIOR_NONE_ARB

See Also:
  - Constant Field Values

### CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB

public static final int CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB

See Also:
  - Constant Field Values

### CONTEXT_LAYER_PLANE_ARB

public static final int CONTEXT_LAYER_PLANE_ARB

See Also:
  - Constant Field Values

## Constructor Details

### ContextAttribs

public ContextAttribs()
Creates the default ContextAttribs instance. No special attributes will be used when creating the OpenGL context.

### ContextAttribs

public ContextAttribs(int majorVersion, int minorVersion)
Creates a ContextAttribs instance for the given OpenGL version.

### ContextAttribs

public ContextAttribs(int majorVersion, int minorVersion, int profileMask)
Creates a new ContextAttribs instance with the given attributes.

Parameters:
  `majorVersion` - the major OpenGL version
  `minorVersion` - the minor OpenGL version
  `profileMask` - the context profile mask. One of:
  `CONTEXT_CORE_PROFILE_BIT_ARB`, `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB`, `CONTEXT_ES2_PROFILE_BIT_EXT`

### ContextAttribs

public ContextAttribs(int majorVersion, int minorVersion, int profileMask, int contextFlags)
Creates a new ContextAttribs instance with the given attributes.

Parameters:
  `majorVersion` - the major OpenGL version
  `minorVersion` - the minor OpenGL version
  `profileMask` - the context profile mask. One of:
  `CONTEXT_CORE_PROFILE_BIT_ARB`, `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB`, `CONTEXT_ES2_PROFILE_BIT_EXT`
  `contextFlags` - the context flags, a bitfield value. One or more of:
  `CONTEXT_DEBUG_BIT_ARB`, `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB`, `CONTEXT_ROBUST_ACCESS_BIT_ARB`, `CONTEXT_RESET_ISOLATION_BIT_ARB`

## Method Details

### getMajorVersion

public int getMajorVersion()
Returns the `CONTEXT_MAJOR_VERSION_ARB` value.

### getMinorVersion

public int getMinorVersion()
Returns the `CONTEXT_MINOR_VERSION_ARB` value.

### getProfileMask

public int getProfileMask()
Returns the `CONTEXT_PROFILE_MASK_ARB` value.

### isProfileCore

public boolean isProfileCore()
Returns true if the `CONTEXT_CORE_PROFILE_BIT_ARB` has been set.

### isProfileCompatibility

public boolean isProfileCompatibility()
Returns true if the `CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB` has been set.

### isProfileES

public boolean isProfileES()
Returns true if the `CONTEXT_ES2_PROFILE_BIT_EXT` has been set.

### getContextFlags

public int getContextFlags()
Returns the `CONTEXT_FLAGS_ARB` value.

### isDebug

public boolean isDebug()
Returns true if the `CONTEXT_DEBUG_BIT_ARB` has been set.

### isForwardCompatible

public boolean isForwardCompatible()
Returns true if the `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB` has been set.

### isRobustAccess

public boolean isRobustAccess()
Returns true if the `CONTEXT_ROBUST_ACCESS_BIT_ARB` has been set.

### isContextResetIsolation

public boolean isContextResetIsolation()
Returns true if the `CONTEXT_RESET_ISOLATION_BIT_ARB` has been set.

### getContextResetNotificationStrategy

public int getContextResetNotificationStrategy()
Returns the `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB` value.

### isLoseContextOnReset

public boolean isLoseContextOnReset()
Deprecated.
use `getContextResetNotificationStrategy()` instead
Returns true if the `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB` has been set to `LOSE_CONTEXT_ON_RESET_ARB`.

### getContextReleaseBehavior

public int getContextReleaseBehavior()
Returns the `CONTEXT_RELEASE_BEHABIOR_ARB` value.

### getLayerPlane

public int getLayerPlane()
Returns the `CONTEXT_LAYER_PLANE_ARB` value.

### withProfileCore

public ContextAttribs withProfileCore(boolean profileCore)
Returns a new `ContextAttribs` instance with the `CONTEXT_CORE_PROFILE_BIT_ARB` bit in `CONTEXT_PROFILE_MASK_ARB` set to the given value. If `profileCore` is true, all other bits in the mask are cleared.

### withProfileCompatibility

public ContextAttribs withProfileCompatibility(boolean profileCompatibility)
Returns a new `ContextAttribs` instance with the `CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB` bit in `CONTEXT_PROFILE_MASK_ARB` set to the given value. If `profileCompatibility` is true, all other bits in the mask are cleared.

### withProfileES

public ContextAttribs withProfileES(boolean profileES)
Returns a new `ContextAttribs` instance with the `CONTEXT_ES2_PROFILE_BIT_EXT` bit in `CONTEXT_PROFILE_MASK_ARB` set to the given value. If `profileES` is true, all other bits in the mask are cleared.

### withDebug

public ContextAttribs withDebug(boolean debug)
Returns a new `ContextAttribs` instance with the `CONTEXT_DEBUG_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.

### withForwardCompatible

public ContextAttribs withForwardCompatible(boolean forwardCompatible)
Returns a new `ContextAttribs` instance with the `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.

### withRobustAccess

public ContextAttribs withRobustAccess(boolean robustAccess)
Returns a new `ContextAttribs` instance with the `CONTEXT_ROBUST_ACCESS_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.

### withContextResetIsolation

public ContextAttribs withContextResetIsolation(boolean contextResetIsolation)
Returns a new `ContextAttribs` instance with the `CONTEXT_RESET_ISOLATION_BIT_ARB` bit in `CONTEXT_FLAGS_ARB` set to the given value.

### withResetNotificationStrategy

public ContextAttribs withResetNotificationStrategy(int strategy)
Returns a ContextAttribs instance with `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB` set to the given strategy. The default context reset notification strategy is `NO_RESET_NOTIFICATION_ARB`.

Parameters:
  `strategy` - the context reset notification strategy. One of:
  `NO_RESET_NOTIFICATION_ARB`, `LOSE_CONTEXT_ON_RESET_ARB`
Returns:
  the new ContextAttribs

### withLoseContextOnReset

public ContextAttribs withLoseContextOnReset(boolean loseContextOnReset)
Deprecated.
use `withResetNotificationStrategy(int)` instead
Returns a ContextAttribs instance with `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB` set to `LOSE_CONTEXT_ON_RESET_ARB` if the parameter is true or to `NO_RESET_NOTIFICATION_ARB` if the parameter is false.

Parameters:
  `loseContextOnReset` - the context reset notification strategy
Returns:
  the new ContextAttribs

### withContextReleaseBehavior

public ContextAttribs withContextReleaseBehavior(int behavior)
Returns a ContextAttribs instance with `CONTEXT_RELEASE_BEHABIOR_ARB` set to the given behavior. The default context release behavior is `CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB`.

Parameters:
  `behavior` - the context release behavior. One of:
  `CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB`, `CONTEXT_RELEASE_BEHAVIOR_NONE_ARB`
Returns:
  the new ContextAttribs

### withLayer

public ContextAttribs withLayer(int layerPlane)
Returns a new `ContextAttribs` instance with `CONTEXT_LAYER_PLANE_ARB` set to the given value.

### toString

public String toString()

Overrides:
  `toString` in class `Object`