Package com.jogamp.opengl
Class GLCapabilities
java.lang.Object
com.jogamp.nativewindow.Capabilities
com.jogamp.opengl.GLCapabilities
- All Implemented Interfaces:
com.jogamp.common.type.WriteCloneable
,CapabilitiesImmutable
,VisualIDHolder
,GLCapabilitiesImmutable
,Cloneable
,Comparable<CapabilitiesImmutable>
Specifies a set of OpenGL capabilities.
At creation time of a
The actual capabilites of created
It currently contains the minimal number of routines which allow configuration on all supported window systems.
At creation time of a
GLDrawable
using GLDrawableFactory
,
an instance of this class is passed,
describing the desired capabilities that a rendering context
must support, such as the OpenGL profile, color depth and whether stereo is enabled.The actual capabilites of created
GLDrawable
s are then reflected by their own
GLCapabilites instance, which can be queried with GLDrawable.getChosenGLCapabilities()
.
It currently contains the minimal number of routines which allow configuration on all supported window systems.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.jogamp.nativewindow.VisualIDHolder
VisualIDHolder.VIDComparator, VisualIDHolder.VIDType
-
Field Summary
Fields inherited from interface com.jogamp.opengl.GLCapabilitiesImmutable
DEFAULT_SAMPLE_EXTENSION
Fields inherited from interface com.jogamp.nativewindow.VisualIDHolder
VID_UNDEFINED
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()
int
comparing hw/sw, stereo, multisample, stencil, RGBA and depth onlycopyFrom
(GLCapabilitiesImmutable source) Copies allGLCapabilitiesImmutable
values fromsource
into this instance.boolean
Equality over the immutable attributes of both objectsfinal int
Returns the number of bits for the accumulation buffer's alpha component.final int
Returns the number of bits for the accumulation buffer's blue component.final int
Returns the number of bits for the accumulation buffer's green component.final int
Returns the number of bits for the accumulation buffer's red component.final int
Returns the number of depth buffer bits.final boolean
Returns whether double-buffering is requested, available or chosen.final GLProfile
Returns the GL profile you desire or used by the drawable.final boolean
Returns whether hardware acceleration is requested, available or chosen.final int
Returns the number of sample buffers to be allocated if sample buffers are enabled, otherwise returns 0.final boolean
Returns whether sample buffers for full-scene antialiasing (FSAA) should be allocated for this drawable.final String
Returns the extension for full-scene antialiasing (FSAA).final int
Returns the number of stencil buffer bits.final boolean
Returns whether stereo is requested, available or chosen.int
hashCode()
hash code over the immutable attributes of both objectsfinal boolean
isFBO()
Returns whether FBO offscreen mode is requested, available or chosen.final boolean
Returns whether pbuffer offscreen mode is requested, available or chosen.void
setAccumAlphaBits
(int accumAlphaBits) Sets number of bits requested for accumulation buffer's alpha component.void
setAccumBlueBits
(int accumBlueBits) Sets the number of bits requested for the accumulation buffer's blue component.void
setAccumGreenBits
(int accumGreenBits) Sets the number of bits requested for the accumulation buffer's green component.void
setAccumRedBits
(int accumRedBits) Sets the number of bits requested for the accumulation buffer's red component.void
setDepthBits
(int depthBits) Sets the number of bits requested for the depth buffer.void
setDoubleBuffered
(boolean enable) Enables or disables double buffering.void
setFBO
(boolean enable) Requesting offscreen FBO mode.void
setGLProfile
(GLProfile profile) Sets the GL profile you desirevoid
setHardwareAccelerated
(boolean enable) Enables or disables hardware acceleration.void
setNumSamples
(int numSamples) If sample buffers are enabled, indicates the number of buffers to be allocated.void
setPBuffer
(boolean enable) Requesting offscreen pbuffer mode.void
setSampleBuffers
(boolean enable) Defaults to false.
Indicates whether sample buffers for full-scene antialiasing (FSAA) should be allocated for this drawable.
Mind that this requires the alpha component.
If enabled this method also invokessetAlphaBits(1)
ifCapabilities.getAlphaBits()
== 0.void
Sets the desired extension for full-scene antialiasing (FSAA), default isGLCapabilitiesImmutable.DEFAULT_SAMPLE_EXTENSION
.void
setStencilBits
(int stencilBits) Sets the number of bits requested for the stencil buffer.void
setStereo
(boolean enable) Enables or disables stereo viewing.toString()
Returns a textual representation of this GLCapabilities object.toString
(StringBuilder sink) Return a textual representation of this object.Methods inherited from class com.jogamp.nativewindow.Capabilities
copyFrom, getAlphaBits, getBlueBits, getGreenBits, getRedBits, getTransparentAlphaValue, getTransparentBlueValue, getTransparentGreenValue, getTransparentRedValue, getVisualID, isBackgroundOpaque, isBitmap, isOnscreen, setAlphaBits, setBackgroundOpaque, setBitmap, setBlueBits, setGreenBits, setOnscreen, setRedBits, setTransparentAlphaValue, setTransparentBlueValue, setTransparentGreenValue, setTransparentRedValue
Methods inherited from interface com.jogamp.nativewindow.CapabilitiesImmutable
getAlphaBits, getBlueBits, getGreenBits, getRedBits, getTransparentAlphaValue, getTransparentBlueValue, getTransparentGreenValue, getTransparentRedValue, isBackgroundOpaque, isBitmap, isOnscreen
Methods inherited from interface com.jogamp.nativewindow.VisualIDHolder
getVisualID
-
Constructor Details
-
GLCapabilities
Creates a GLCapabilities object. All attributes are in a default state.- Parameters:
glp
- GLProfile, or null for the default GLProfile- Throws:
GLException
- if no profile is given and no default profile is available for the default device.
-
-
Method Details
-
cloneMutable
- Specified by:
cloneMutable
in interfacecom.jogamp.common.type.WriteCloneable
- Overrides:
cloneMutable
in classCapabilities
-
clone
- Overrides:
clone
in classCapabilities
-
copyFrom
Copies allGLCapabilitiesImmutable
values fromsource
into this instance.- Returns:
- this instance
-
hashCode
public int hashCode()Description copied from interface:CapabilitiesImmutable
hash code over the immutable attributes of both objects- Specified by:
hashCode
in interfaceCapabilitiesImmutable
- Specified by:
hashCode
in interfaceGLCapabilitiesImmutable
- Overrides:
hashCode
in classCapabilities
-
equals
Description copied from interface:CapabilitiesImmutable
Equality over the immutable attributes of both objects- Specified by:
equals
in interfaceCapabilitiesImmutable
- Specified by:
equals
in interfaceGLCapabilitiesImmutable
- Overrides:
equals
in classCapabilities
-
compareTo
comparing hw/sw, stereo, multisample, stencil, RGBA and depth only- Specified by:
compareTo
in interfaceComparable<CapabilitiesImmutable>
- Overrides:
compareTo
in classCapabilities
-
getGLProfile
Description copied from interface:GLCapabilitiesImmutable
Returns the GL profile you desire or used by the drawable.- Specified by:
getGLProfile
in interfaceGLCapabilitiesImmutable
-
setGLProfile
Sets the GL profile you desire -
isPBuffer
public final boolean isPBuffer()Description copied from interface:GLCapabilitiesImmutable
Returns whether pbuffer offscreen mode is requested, available or chosen.Default is false.
For chosen capabilities, only the selected offscreen surface is set to
true
.- Specified by:
isPBuffer
in interfaceGLCapabilitiesImmutable
-
setPBuffer
public void setPBuffer(boolean enable) Requesting offscreen pbuffer mode.If enabled this method also invokes
setOnscreen(false)
.Defaults to false.
Requesting offscreen pbuffer mode disables the offscreen auto selection.
-
isFBO
public final boolean isFBO()Description copied from interface:GLCapabilitiesImmutable
Returns whether FBO offscreen mode is requested, available or chosen.Default is false.
For chosen capabilities, only the selected offscreen surface is set to
true
.- Specified by:
isFBO
in interfaceGLCapabilitiesImmutable
-
setFBO
public void setFBO(boolean enable) Requesting offscreen FBO mode.If enabled this method also invokes
setOnscreen(false)
.Defaults to false.
Requesting offscreen FBO mode disables the offscreen auto selection.
-
getDoubleBuffered
public final boolean getDoubleBuffered()Description copied from interface:GLCapabilitiesImmutable
Returns whether double-buffering is requested, available or chosen.Default is true.
- Specified by:
getDoubleBuffered
in interfaceGLCapabilitiesImmutable
-
setDoubleBuffered
public void setDoubleBuffered(boolean enable) Enables or disables double buffering. -
getStereo
public final boolean getStereo()Description copied from interface:GLCapabilitiesImmutable
Returns whether stereo is requested, available or chosen.Default is false.
- Specified by:
getStereo
in interfaceGLCapabilitiesImmutable
-
setStereo
public void setStereo(boolean enable) Enables or disables stereo viewing. -
getHardwareAccelerated
public final boolean getHardwareAccelerated()Description copied from interface:GLCapabilitiesImmutable
Returns whether hardware acceleration is requested, available or chosen.Default is true.
- Specified by:
getHardwareAccelerated
in interfaceGLCapabilitiesImmutable
-
setHardwareAccelerated
public void setHardwareAccelerated(boolean enable) Enables or disables hardware acceleration. -
getDepthBits
public final int getDepthBits()Description copied from interface:GLCapabilitiesImmutable
Returns the number of depth buffer bits.- Specified by:
getDepthBits
in interfaceGLCapabilitiesImmutable
-
setDepthBits
public void setDepthBits(int depthBits) Sets the number of bits requested for the depth buffer. -
getStencilBits
public final int getStencilBits()Description copied from interface:GLCapabilitiesImmutable
Returns the number of stencil buffer bits.Default is 0.
- Specified by:
getStencilBits
in interfaceGLCapabilitiesImmutable
-
setStencilBits
public void setStencilBits(int stencilBits) Sets the number of bits requested for the stencil buffer. -
getAccumRedBits
public final int getAccumRedBits()Description copied from interface:GLCapabilitiesImmutable
Returns the number of bits for the accumulation buffer's red component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered.- Specified by:
getAccumRedBits
in interfaceGLCapabilitiesImmutable
-
setAccumRedBits
public void setAccumRedBits(int accumRedBits) Sets the number of bits requested for the accumulation buffer's red component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered. -
getAccumGreenBits
public final int getAccumGreenBits()Description copied from interface:GLCapabilitiesImmutable
Returns the number of bits for the accumulation buffer's green component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered.- Specified by:
getAccumGreenBits
in interfaceGLCapabilitiesImmutable
-
setAccumGreenBits
public void setAccumGreenBits(int accumGreenBits) Sets the number of bits requested for the accumulation buffer's green component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered. -
getAccumBlueBits
public final int getAccumBlueBits()Description copied from interface:GLCapabilitiesImmutable
Returns the number of bits for the accumulation buffer's blue component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered.- Specified by:
getAccumBlueBits
in interfaceGLCapabilitiesImmutable
-
setAccumBlueBits
public void setAccumBlueBits(int accumBlueBits) Sets the number of bits requested for the accumulation buffer's blue component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered. -
getAccumAlphaBits
public final int getAccumAlphaBits()Description copied from interface:GLCapabilitiesImmutable
Returns the number of bits for the accumulation buffer's alpha component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered.- Specified by:
getAccumAlphaBits
in interfaceGLCapabilitiesImmutable
-
setAccumAlphaBits
public void setAccumAlphaBits(int accumAlphaBits) Sets number of bits requested for accumulation buffer's alpha component. On some systems only the accumulation buffer depth, which is the sum of the red, green, and blue bits, is considered. -
setSampleExtension
Sets the desired extension for full-scene antialiasing (FSAA), default isGLCapabilitiesImmutable.DEFAULT_SAMPLE_EXTENSION
. -
getSampleExtension
Description copied from interface:GLCapabilitiesImmutable
Returns the extension for full-scene antialiasing (FSAA).Default is
GLCapabilitiesImmutable.DEFAULT_SAMPLE_EXTENSION
.- Specified by:
getSampleExtension
in interfaceGLCapabilitiesImmutable
-
setSampleBuffers
public void setSampleBuffers(boolean enable) Defaults to false.
Indicates whether sample buffers for full-scene antialiasing (FSAA) should be allocated for this drawable.
Mind that this requires the alpha component.
If enabled this method also invokessetAlphaBits(1)
ifCapabilities.getAlphaBits()
== 0. -
getSampleBuffers
public final boolean getSampleBuffers()Description copied from interface:GLCapabilitiesImmutable
Returns whether sample buffers for full-scene antialiasing (FSAA) should be allocated for this drawable.Default is false.
- Specified by:
getSampleBuffers
in interfaceGLCapabilitiesImmutable
-
setNumSamples
public void setNumSamples(int numSamples) If sample buffers are enabled, indicates the number of buffers to be allocated. Defaults to 2.- See Also:
-
getNumSamples
public final int getNumSamples()Description copied from interface:GLCapabilitiesImmutable
Returns the number of sample buffers to be allocated if sample buffers are enabled, otherwise returns 0.Default is 0 due to disable sample buffers per default.
- Specified by:
getNumSamples
in interfaceGLCapabilitiesImmutable
-
toString
Description copied from interface:CapabilitiesImmutable
Return a textual representation of this object. Use the given StringBuilder [optional].- Specified by:
toString
in interfaceCapabilitiesImmutable
- Overrides:
toString
in classCapabilities
-
toString
Returns a textual representation of this GLCapabilities object.- Specified by:
toString
in interfaceCapabilitiesImmutable
- Specified by:
toString
in interfaceGLCapabilitiesImmutable
- Overrides:
toString
in classCapabilities
-