# ContextAttribs (LWJGL API)
Date: 2015-07-28

## org.lwjgl.opengl
Class ContextAttribs

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

    public final class ContextAttribs

extends java.lang.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 <spasi@users.sourceforge.net>

Field Summary
`static int` `CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB`
`static int` `CONTEXT_CORE_PROFILE_BIT_ARB`
`static int` `CONTEXT_DEBUG_BIT_ARB`
`static int` `CONTEXT_ES2_PROFILE_BIT_EXT`
`static int` `CONTEXT_FLAGS_ARB`
`static int` `CONTEXT_FORWARD_COMPATIBLE_BIT_ARB`
`static int` `CONTEXT_LAYER_PLANE_ARB`
`static int` `CONTEXT_MAJOR_VERSION_ARB`
`static int` `CONTEXT_MINOR_VERSION_ARB`
`static int` `CONTEXT_PROFILE_MASK_ARB`
`static int` `CONTEXT_RELEASE_BEHABIOR_ARB`
`static int` `CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB`
`static int` `CONTEXT_RELEASE_BEHAVIOR_NONE_ARB`
`static int` `CONTEXT_RESET_ISOLATION_BIT_ARB`
`static int` `CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB`
`static int` `CONTEXT_ROBUST_ACCESS_BIT_ARB`
`static int` `LOSE_CONTEXT_ON_RESET_ARB`
`static int` `NO_RESET_NOTIFICATION_ARB`

Constructor Summary
`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
`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.
`java.lang.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 Detail

### 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 Detail

### 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 Detail

### 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 java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

Copyright © 2002-2009 lwjgl.org. All Rights Reserved.