Package com.jogamp.opengl
Class GLCapabilities
- java.lang.Object
-
- com.jogamp.nativewindow.Capabilities
-
- com.jogamp.opengl.GLCapabilities
-
- All Implemented Interfaces:
WriteCloneable
,CapabilitiesImmutable
,VisualIDHolder
,GLCapabilitiesImmutable
,Cloneable
,Comparable<CapabilitiesImmutable>
public class GLCapabilities extends Capabilities implements Cloneable, GLCapabilitiesImmutable
Specifies a set of OpenGL capabilities.
At creation time of aGLDrawable
usingGLDrawableFactory
, 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 createdGLDrawable
s are then reflected by their own GLCapabilites instance, which can be queried withGLDrawable.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 Constructor Description GLCapabilities(GLProfile glp)
Creates a GLCapabilities object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
clone()
Object
cloneMutable()
int
compareTo(CapabilitiesImmutable o)
comparing hw/sw, stereo, multisample, stencil, RGBA and depth onlyGLCapabilities
copyFrom(CapabilitiesImmutable source)
Copies allCapabilitiesImmutable
values fromsource
into this instance.GLCapabilities
copyFrom(GLCapabilitiesImmutable source)
Copies allGLCapabilitiesImmutable
values fromsource
into this instance.boolean
equals(Object obj)
Equality over the immutable attributes of both objectsint
getAccumAlphaBits()
Returns the number of bits for the accumulation buffer's alpha component.int
getAccumBlueBits()
Returns the number of bits for the accumulation buffer's blue component.int
getAccumGreenBits()
Returns the number of bits for the accumulation buffer's green component.int
getAccumRedBits()
Returns the number of bits for the accumulation buffer's red component.int
getDepthBits()
Returns the number of depth buffer bits.boolean
getDoubleBuffered()
Returns whether double-buffering is requested, available or chosen.GLProfile
getGLProfile()
Returns the GL profile you desire or used by the drawable.boolean
getHardwareAccelerated()
Returns whether hardware acceleration is requested, available or chosen.int
getNumSamples()
Returns the number of sample buffers to be allocated if sample buffers are enabled, otherwise returns 0.boolean
getSampleBuffers()
Returns whether sample buffers for full-scene antialiasing (FSAA) should be allocated for this drawable.String
getSampleExtension()
Returns the extension for full-scene antialiasing (FSAA).int
getStencilBits()
Returns the number of stencil buffer bits.boolean
getStereo()
Returns whether stereo is requested, available or chosen.int
hashCode()
hash code over the immutable attributes of both objectsboolean
isFBO()
Returns whether FBO offscreen mode is requested, available or chosen.boolean
isPBuffer()
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
setSampleExtension(String se)
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.String
toString()
Returns a textual representation of this GLCapabilities object.StringBuilder
toString(StringBuilder sink)
Return a textual representation of this object.-
Methods inherited from class com.jogamp.nativewindow.Capabilities
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 Detail
-
GLCapabilities
public GLCapabilities(GLProfile glp) throws GLException
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 Detail
-
cloneMutable
public Object cloneMutable()
- Specified by:
cloneMutable
in interfaceWriteCloneable
- Overrides:
cloneMutable
in classCapabilities
-
clone
public Object clone()
- Overrides:
clone
in classCapabilities
-
copyFrom
public GLCapabilities copyFrom(CapabilitiesImmutable source)
Copies allCapabilitiesImmutable
values fromsource
into this instance.- Overrides:
copyFrom
in classCapabilities
- Returns:
- this instance
-
copyFrom
public GLCapabilities copyFrom(GLCapabilitiesImmutable source)
Copies allGLCapabilitiesImmutable
values fromsource
into this instance.- Returns:
- this instance
-
hashCode
public int hashCode()
Description copied from interface:com.jogamp.nativewindow.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
public boolean equals(Object obj)
Description copied from interface:com.jogamp.nativewindow.CapabilitiesImmutable
Equality over the immutable attributes of both objects- Specified by:
equals
in interfaceCapabilitiesImmutable
- Specified by:
equals
in interfaceGLCapabilitiesImmutable
- Overrides:
equals
in classCapabilities
-
compareTo
public int compareTo(CapabilitiesImmutable o)
comparing hw/sw, stereo, multisample, stencil, RGBA and depth only- Specified by:
compareTo
in interfaceComparable<CapabilitiesImmutable>
- Overrides:
compareTo
in classCapabilities
-
getGLProfile
public final GLProfile getGLProfile()
Description copied from interface:GLCapabilitiesImmutable
Returns the GL profile you desire or used by the drawable.- Specified by:
getGLProfile
in interfaceGLCapabilitiesImmutable
-
setGLProfile
public void setGLProfile(GLProfile profile)
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
public void setSampleExtension(String se)
Sets the desired extension for full-scene antialiasing (FSAA), default isGLCapabilitiesImmutable.DEFAULT_SAMPLE_EXTENSION
.
-
getSampleExtension
public final String 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()
-
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
public StringBuilder toString(StringBuilder sink)
Description copied from interface:com.jogamp.nativewindow.CapabilitiesImmutable
Return a textual representation of this object. Use the given StringBuilder [optional].- Specified by:
toString
in interfaceCapabilitiesImmutable
- Overrides:
toString
in classCapabilities
-
toString
public String toString()
Returns a textual representation of this GLCapabilities object.- Specified by:
toString
in interfaceCapabilitiesImmutable
- Specified by:
toString
in interfaceGLCapabilitiesImmutable
- Overrides:
toString
in classCapabilities
-
-