|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.media.opengl.GLContext
public abstract class GLContext
Abstraction for an OpenGL rendering context. In order to perform OpenGL rendering, a context must be "made current" on the current thread. OpenGL rendering semantics specify that only one context may be current on the current thread at any given time, and also that a given context may be current on only one thread at any given time. Because components can be added to and removed from the component hierarchy at any time, it is possible that the underlying OpenGL context may need to be destroyed and recreated multiple times over the lifetime of a given component. This process is handled by the implementation, and the GLContext abstraction provides a stable object which clients can use to refer to a given context.
Field Summary | |
---|---|
static int |
CONTEXT_CURRENT
Indicates that the context was made current during the last call to makeCurrent . |
static int |
CONTEXT_CURRENT_NEW
Indicates that a newly-created context was made current during the last call to makeCurrent . |
static int |
CONTEXT_NOT_CURRENT
Indicates that the context was not made current during the last call to makeCurrent . |
static int |
CTX_OPTION_DEBUG
ARB_create_context related: flag debug. |
static boolean |
DEBUG
|
static boolean |
DEBUG_GL
Reflects property jogl.debug.DebugGL. |
static boolean |
DEBUG_TRACE_SWITCH
|
static int[][] |
GL_VERSIONS
|
static boolean |
PROFILE_ALIASING
If true (default), bootstrapping the available GL profiles
will use the highest compatible GL context for each profile,
hence skipping querying lower profiles if a compatible higher one is found:
4.2-core -> 4.2-core, 3.3-core
4.2-comp -> 4.2-comp, 3.3-comp, 2
Otherwise the dedicated GL context would be queried and used:
4.2-core -> 4.2-core
3.3-core -> 3.3-core
4.2-comp -> 4.2-comp
3.3-comp -> 3.3-comp
3.0-comp -> 2
Using aliasing speeds up initialization about:
Linux x86_64 - Nvidia: 28%, 700ms down to 500ms
Linux x86_64 - AMD : 40%, 1500ms down to 900ms |
static boolean |
TRACE_GL
Reflects property jogl.debug.TraceGL. |
static boolean |
TRACE_SWITCH
|
static com.jogamp.common.util.VersionNumber |
Version100
|
static com.jogamp.common.util.VersionNumber |
Version110
|
static com.jogamp.common.util.VersionNumber |
Version120
|
static com.jogamp.common.util.VersionNumber |
Version130
|
static com.jogamp.common.util.VersionNumber |
Version140
|
static com.jogamp.common.util.VersionNumber |
Version150
|
static com.jogamp.common.util.VersionNumber |
Version30
Version 3.0. |
static com.jogamp.common.util.VersionNumber |
Version31
Version 3.1. |
static com.jogamp.common.util.VersionNumber |
Version32
Version 3.2. |
Method Summary | |
---|---|
abstract void |
addGLDebugListener(GLDebugListener listener)
Add GLDebugListener . |
StringBuilder |
append(StringBuilder sb)
|
Object |
attachObject(String name,
Object obj)
Sets the attached user object for the given name to this GLContext. |
boolean |
bindSwapBarrier(int group,
int barrier)
|
abstract void |
copy(GLContext source,
int mask)
Copies selected groups of OpenGL state variables from the supplied source context into this one. |
static boolean |
decrementGLVersion(int[] major,
int[] minor)
|
abstract void |
destroy()
Destroys this OpenGL context and frees its associated resources. |
Object |
detachObject(String name)
|
abstract void |
enableGLDebugMessage(boolean enable)
Enables or disables the GLDebugOutput feature of extension GL_ARB_debug_output or GL_AMD_debug_output, if available. |
Object |
getAttachedObject(String name)
Returns the attached user object for the given name to this GLContext. |
abstract int |
getBoundFramebuffer(int target)
Return the framebuffer name bound to this context, see GL.glBindFramebuffer(int, int) . |
abstract int |
getContextCreationFlags()
|
static GLContext |
getCurrent()
Returns this thread current context. |
static GL |
getCurrentGL()
Returns the GL object bound to this thread current context. |
abstract int |
getDefaultDrawFramebuffer()
Return the default draw framebuffer name. |
abstract int |
getDefaultPixelDataFormat()
Get the default pixel data format, as required by e.g. |
abstract int |
getDefaultPixelDataType()
Get the default pixel data type, as required by e.g. |
abstract int |
getDefaultReadBuffer()
Returns the default color buffer within the current bound getDefaultReadFramebuffer() , i.e. |
abstract int |
getDefaultReadFramebuffer()
Return the default read framebuffer name. |
abstract GL |
getGL()
Returns the GL pipeline object for this GLContext. |
abstract String |
getGLDebugMessageExtension()
|
abstract GLDrawable |
getGLDrawable()
Returns the write-drawable this context uses for framebuffer operations. |
abstract int |
getGLExtensionCount()
Returns the number of OpenGL extensions |
abstract String |
getGLExtensionsString()
Returns a non-null (but possibly empty) string containing the space-separated list of available extensions. |
abstract GLDrawable |
getGLReadDrawable()
Returns the read-Drawable this context uses for read framebuffer operations. |
com.jogamp.common.util.VersionNumber |
getGLSLVersionNumber()
Returns the matching GLSL version number, queried by this context GL via GL2ES2.GL_SHADING_LANGUAGE_VERSION if ≥ ES2.0 or GL2.0,
otherwise a static match is being utilized. |
String |
getGLSLVersionString()
Returns the GLSL version string as to be used in a shader program, including a terminating newline '\n', i.e. |
com.jogamp.common.util.VersionNumberString |
getGLVendorVersionNumber()
Returns the vendor's version, i.e. |
String |
getGLVersion()
Returns a valid OpenGL version string, ie |
int |
getGLVersionMajor()
Deprecated. Use getGLVersionNumber() |
int |
getGLVersionMinor()
Deprecated. Use getGLVersionNumber() |
com.jogamp.common.util.VersionNumber |
getGLVersionNumber()
Returns this context OpenGL version. |
long |
getHandle()
Returns the underlying native OpenGL context handle |
static int |
getMaxMajor()
|
static int |
getMaxMinor(int major)
|
int |
getMaxRenderbufferSamples()
Returns the maximum number of FBO RENDERBUFFER samples if full FBO is supported , otherwise false. |
abstract int |
getPlatformExtensionCount()
Returns the number of platform extensions |
abstract String |
getPlatformExtensionsString()
Returns a non-null (but possibly empty) string containing the space-separated list of available platform-dependent (e.g., WGL, GLX) extensions. |
com.jogamp.opengl.GLRendererQuirks |
getRendererQuirks()
Returns the instance of GLRendererQuirks , allowing one to determine workarounds. |
int |
getSwapGroup()
|
int |
getSwapInterval()
Return the current swap interval. |
abstract void |
glDebugMessageControl(int source,
int type,
int severity,
int count,
int[] ids,
int ids_offset,
boolean enabled)
Generic entry for GL2GL3.glDebugMessageControlARB(int, int, int, int, int[], int, boolean)
and GL2GL3.glDebugMessageEnableAMD(int, int, int, int[], int, boolean) of the GLDebugOutput feature. |
abstract void |
glDebugMessageControl(int source,
int type,
int severity,
int count,
IntBuffer ids,
boolean enabled)
Generic entry for GL2GL3.glDebugMessageControlARB(int, int, int, int, IntBuffer, boolean)
and GL2GL3.glDebugMessageEnableAMD(int, int, int, IntBuffer, boolean) of the GLDebugOutput feature. |
abstract void |
glDebugMessageInsert(int source,
int type,
int id,
int severity,
String buf)
Generic entry for GL2GL3.glDebugMessageInsertARB(int, int, int, int, int, String)
and GL2GL3.glDebugMessageInsertAMD(int, int, int, int, String) of the GLDebugOutput feature. |
boolean |
hasBasicFBOSupport()
Returns true if basic FBO support is available, otherwise false . |
boolean |
hasFullFBOSupport()
Returns true if full FBO support is available, otherwise false . |
boolean |
hasGLSL()
|
boolean |
hasRendererQuirk(int quirk)
Returns true if the quirk exist in getRendererQuirks() , otherwise false. |
boolean |
isCreated()
Indicates whether the underlying native OpenGL context has been created. |
boolean |
isCreatedWithARBMethod()
|
boolean |
isCurrent()
|
abstract boolean |
isExtensionAvailable(String glExtensionName)
Returns true if the specified OpenGL extension can be successfully called using this GL context given the current host (OpenGL client) and display (OpenGL server) configuration. |
static boolean |
isFBOAvailable(AbstractGraphicsDevice device,
GLProfile glp)
Returns true if it is possible to create an framebuffer object (FBO). |
abstract boolean |
isFunctionAvailable(String glFunctionName)
Returns true if the specified OpenGL core- or extension-function can be successfully called using this GL context given the current host (OpenGL client) and display (OpenGL server) configuration. |
boolean |
isGL2()
|
static boolean |
isGL2Available(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGL2ES1()
|
boolean |
isGL2ES2()
|
boolean |
isGL2GL3()
|
boolean |
isGL3()
|
static boolean |
isGL3Available(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGL3bc()
|
static boolean |
isGL3bcAvailable(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGL3core()
Indicates whether this profile is capable of GL3 (core only). |
boolean |
isGL4()
|
static boolean |
isGL4Available(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGL4bc()
|
static boolean |
isGL4bcAvailable(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGL4core()
Indicates whether this profile is capable of GL4 (core only). |
boolean |
isGLCompatibilityProfile()
|
boolean |
isGLCoreProfile()
|
boolean |
isGLDebugEnabled()
|
abstract boolean |
isGLDebugMessageEnabled()
|
abstract boolean |
isGLDebugSynchronous()
|
boolean |
isGLES()
|
boolean |
isGLES1()
|
static boolean |
isGLES1Available(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGLES2()
|
static boolean |
isGLES2Available(AbstractGraphicsDevice device,
boolean[] isHardware)
|
boolean |
isGLES2Compatible()
|
boolean |
isGLForwardCompatible()
|
abstract boolean |
isGLReadDrawableAvailable()
Query whether using a distinguished read-drawable is supported. |
boolean |
isHardwareRasterizer()
|
static int |
isHardwareRasterizer(AbstractGraphicsDevice device,
GLProfile glp)
|
boolean |
isNPOTTextureAvailable()
Note: The GL impl. |
boolean |
isTextureFormatBGRA8888Available()
|
static boolean |
isValidGLVersion(int major,
int minor)
|
boolean |
joinSwapGroup(int group)
|
abstract int |
makeCurrent()
Makes this GLContext current on the calling thread. |
static String |
makeCurrentResultToString(int res)
Returns a String representation of the makeCurrent() result. |
boolean |
queryMaxSwapGroups(int[] maxGroups,
int maxGroups_offset,
int[] maxBarriers,
int maxBarriers_offset)
|
abstract void |
release()
Releases control of this GLContext from the current thread. |
abstract void |
removeGLDebugListener(GLDebugListener listener)
Remove GLDebugListener . |
abstract void |
setContextCreationFlags(int flags)
|
abstract GL |
setGL(GL gl)
Sets the GL pipeline object for this GLContext. |
abstract void |
setGLDebugSynchronous(boolean synchronous)
Enables or disables the synchronous debug behavior via glEnable/glDisable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB) ,
if extension is #GL_ARB_debug_output . |
abstract GLDrawable |
setGLDrawable(GLDrawable readWrite,
boolean setWriteOnly)
Sets the read/write drawable for framebuffer operations. |
abstract GLDrawable |
setGLReadDrawable(GLDrawable read)
Set the read-Drawable for read framebuffer operations. The caller should query if this feature is supported via isGLReadDrawableAvailable() . |
boolean |
setSwapInterval(int interval)
Set the swap interval of the current context and attached drawable. |
String |
toString()
Classname, GL, GLDrawable |
void |
validateCurrent()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final boolean PROFILE_ALIASING
true
(default), bootstrapping the available GL profiles
will use the highest compatible GL context for each profile,
hence skipping querying lower profiles if a compatible higher one is found:
Can be turned off with property jogl.debug.GLContext.NoProfileAliasing
.
public static final boolean DEBUG
public static final boolean TRACE_SWITCH
public static final boolean DEBUG_TRACE_SWITCH
public static final boolean DEBUG_GL
public static final boolean TRACE_GL
public static final int CONTEXT_NOT_CURRENT
makeCurrent
.
public static final int CONTEXT_CURRENT
makeCurrent
.
public static final int CONTEXT_CURRENT_NEW
makeCurrent
.
public static final com.jogamp.common.util.VersionNumber Version100
public static final com.jogamp.common.util.VersionNumber Version110
public static final com.jogamp.common.util.VersionNumber Version120
public static final com.jogamp.common.util.VersionNumber Version130
public static final com.jogamp.common.util.VersionNumber Version140
public static final com.jogamp.common.util.VersionNumber Version150
public static final com.jogamp.common.util.VersionNumber Version32
public static final com.jogamp.common.util.VersionNumber Version31
isGL3core()
, isGL3bc()
and isGL3()
public static final com.jogamp.common.util.VersionNumber Version30
isGL2()
only
public static final int CTX_OPTION_DEBUG
ARB_create_context
related: flag debug. Cache key value. See setContextCreationFlags(int)
, GLAutoDrawable.setContextCreationFlags(int)
, getAvailableContextProperties(AbstractGraphicsDevice, GLProfile)
.
public static final int[][] GL_VERSIONS
Method Detail |
---|
public final com.jogamp.opengl.GLRendererQuirks getRendererQuirks()
GLRendererQuirks
, allowing one to determine workarounds.
GLRendererQuirks
if context was made current once, otherwise null
.public final boolean hasRendererQuirk(int quirk) throws IllegalArgumentException
quirk
exist in getRendererQuirks()
, otherwise false.
Convenience method for:
final GLRendererQuirks glrq = ctx.getRendererQuirks(); boolean hasQuirk = null != glrq ? glrq.exist(quirk) : false ;
quirk
- the quirk to be tested, e.g. GLRendererQuirks.NoDoubleBufferedPBuffer
.
IllegalArgumentException
- if the quirk is out of rangepublic abstract GLDrawable setGLDrawable(GLDrawable readWrite, boolean setWriteOnly)
If the arguments reflect the current state of this context
this method is a no-operation and returns the old and current GLDrawable
.
If the context was current on this thread, it is being released before switching the drawable and made current afterwards. However the user shall take extra care that not other thread attempts to make this context current. Otherwise a race condition may happen.
readWrite
- The read/write drawable for framebuffer operations, maybe null
to remove association.setWriteOnly
- Only change the write-drawable, if setWriteOnly
is true
and
if the read-drawable
differs
from the write-drawable
.
Otherwise set both drawables, read and write.
GLException
- in case null
is being passed or
this context is made current on another thread.isGLReadDrawableAvailable()
,
getGLReadDrawable()
,
#setGLReadDrawable()
,
getGLDrawable()
public abstract GLDrawable getGLDrawable()
If the read-drawable has not been changed manually via setGLReadDrawable(GLDrawable)
,
it equals to the write-drawable (default).
setGLDrawable(GLDrawable, boolean)
,
setGLReadDrawable(GLDrawable)
public abstract boolean isGLReadDrawableAvailable()
public abstract GLDrawable setGLReadDrawable(GLDrawable read)
isGLReadDrawableAvailable()
.
If the context was current on this thread, it is being released before switching the drawable and made current afterwards. However the user shall take extra care that not other thread attempts to make this context current. Otherwise a race condition may happen.
read
- the read-drawable for read framebuffer operations.
If null is passed, the default write drawable will be set.
GLException
- in case a read drawable is not supported or
this context is made current on another thread.isGLReadDrawableAvailable()
,
getGLReadDrawable()
public abstract GLDrawable getGLReadDrawable()
If the read-drawable has not been changed manually via setGLReadDrawable(GLDrawable)
,
it equals to the write-drawable (default).
isGLReadDrawableAvailable()
,
setGLReadDrawable(javax.media.opengl.GLDrawable)
,
getGLDrawable()
public abstract int makeCurrent() throws GLException
Recursive call to makeCurrent()
and hence release()
are supported.
There are two return values that indicate success and one that indicates failure.
A return value of CONTEXT_CURRENT_NEW
indicates that that context has been made current for the 1st time,
or that the state of the underlying context or drawable has
changed since the last time this context was current.
In this case, the application may wish to initialize the render state.
A return value of CONTEXT_CURRENT
indicates that the context has
been made current, with its previous state restored.
If the context could not be made current (for example, because
the underlying drawable has not ben realized on the display) ,
a value of CONTEXT_NOT_CURRENT
is returned.
This method is blocking, i.e. waits until another thread has released the context.
The drawable's surface is being locked at entry
and unlocked at release()
CONTEXT_CURRENT_NEW
if the context was successfully made current the 1st time,CONTEXT_CURRENT
if the context was successfully made current,CONTEXT_NOT_CURRENT
if the context could not be made current.GLException
- if synchronization is disabled and the
context is current on another thread, or because the context
could not be created or made current due to non-recoverable,
window system-specific errors.public abstract void release() throws GLException
Recursive call to release()
and hence makeCurrent()
are supported.
The drawable's surface is being unlocked at exit,
assumed to be locked by makeCurrent()
.
GLException
- if the context had not previously been made
current on the current threadpublic abstract void copy(GLContext source, int mask) throws GLException
mask
parameter indicates which groups of state variables are to be
copied. mask
contains the bitwise OR of the same
symbolic names that are passed to the GL command glPushAttrib
. The single symbolic constant
GL_ALL_ATTRIB_BITS
can be used to
copy the maximum possible portion of rendering state.
Not all values for GL state can be copied. For example, pixel
pack and unpack state, render mode state, and select and feedback
state are not copied. The state that can be copied is exactly the
state that is manipulated by the GL command glPushAttrib
.
On most platforms, this context may not be current to any thread, including the calling thread, when this method is called. Some platforms have additional requirements such as whether this context or the source context must occasionally be made current in order for the results of the copy to be seen; these requirements are beyond the scope of this specification.
source
- the source OpenGL context from which to copy statemask
- a mask of symbolic names indicating which groups of state to copy
GLException
- if an OpenGL-related error occurredpublic static GL getCurrentGL() throws GLException
GLException
- if no context is currentpublic static GLContext getCurrent()
public final boolean isCurrent()
public final void validateCurrent() throws GLException
GLException
- if this GLContext is not current on this threadpublic static final String makeCurrentResultToString(int res)
makeCurrent()
result.
public abstract void destroy()
The context may be current w/o recursion when calling destroy()
,
in which case this method destroys the context and releases the lock.
public abstract GL getGL()
public abstract GL setGL(GL gl)
public final long getHandle()
public final boolean isCreated()
public final Object getAttachedObject(String name)
public final Object attachObject(String name, Object obj)
public final Object detachObject(String name)
public String toString()
toString
in class Object
public final StringBuilder append(StringBuilder sb)
public abstract boolean isFunctionAvailable(String glFunctionName)
GLBase.isFunctionAvailable(String)
for more details.
glFunctionName
- the name of the OpenGL function (e.g., use
"glPolygonOffsetEXT" or "glPolygonOffset" to check if the GL.glPolygonOffset(float,float)
is available).public abstract boolean isExtensionAvailable(String glExtensionName)
GLBase.isExtensionAvailable(String)
for more details.
glExtensionName
- the name of the OpenGL extension (e.g.,
"GL_VERTEX_PROGRAM_ARB").public abstract int getPlatformExtensionCount()
public abstract String getPlatformExtensionsString()
public abstract int getGLExtensionCount()
public abstract String getGLExtensionsString()
glGetString
(GL_EXTENSIONS
)
public abstract int getContextCreationFlags()
CTX_OPTION_DEBUG
.public abstract void setContextCreationFlags(int flags)
flags
- Additional context creation flags, supported: CTX_OPTION_DEBUG
.
Unsupported flags are masked out.
Only affects this context state if not created yet via makeCurrent()
.enableGLDebugMessage(boolean)
,
GLAutoDrawable.setContextCreationFlags(int)
public final String getGLVersion()
major.minor ([option]?[options,]*) - gl-version
ES profile
ES profileCompatibility profile
Compatibility profile including fixed function pipeline and deprecated functionalityCore profile
Core profileforward
Forward profile excluding deprecated functionalityarb
refers to an ARB_create_context created contextdebug
refers to a debug contextES2 compatible
refers to an ES2 compatible implementationsoftware
refers to a software implementation of the rasterizerhardware
refers to a hardware implementation of the rasterizerrow 2, cell 1 | row 2, cell 2 |
ES2 | 2.0 (ES profile, ES2 compatible, hardware) - 2.0 ES Profile | |
ATI | GL2 | 3.0 (Compatibility profile, arb, hardware) - 3.2.9704 Compatibility Profile Context |
ATI | GL3 | 3.3 (Core profile, any, new, hardware) - 1.4 (3.2.9704 Compatibility Profile Context) |
ATI | GL3bc | 3.3 (Compatibility profile, arb, hardware) - 1.4 (3.2.9704 Compatibility Profile Context) |
NV | GL2 | 3.0 (Compatibility profile, arb, hardware) - 3.0.0 NVIDIA 195.36.07.03 |
NV | GL3 | 3.3 (Core profile, arb, hardware) - 3.3.0 NVIDIA 195.36.07.03 |
NV | GL3bc | 3.3 (Compatibility profile, arb, hardware) - 3.3.0 NVIDIA 195.36.07.03 |
NV | GL2 | 3.0 (Compatibility profile, arb, ES2 compatible, hardware) - 3.0.0 NVIDIA 290.10 |
public final int getGLVersionMajor()
getGLVersionNumber()
public final int getGLVersionMinor()
getGLVersionNumber()
public final com.jogamp.common.util.VersionNumber getGLVersionNumber()
getGLSLVersionNumber()
public final com.jogamp.common.util.VersionNumberString getGLVendorVersionNumber()
GL_VERSION
not being the GL version.
In case no such version exists within GL_VERSION
,
the zero version
instance is returned.
The vendor's version is usually the vendor's OpenGL driver version.
public final boolean isGLCompatibilityProfile()
public final boolean isGLCoreProfile()
public final boolean isGLForwardCompatible()
public final boolean isGLDebugEnabled()
public final boolean isCreatedWithARBMethod()
public final com.jogamp.common.util.VersionNumber getGLSLVersionNumber()
GL2ES2.GL_SHADING_LANGUAGE_VERSION
if ≥ ES2.0 or GL2.0,
otherwise a static match is being utilized.
The context must have been current once,
otherwise the zero version
instance is returned.
Examples w/ major.minor
:
1.00 (ES 2.0), 1.10 (GL 2.0), 1.20 (GL 2.1), 1.50 (GL 3.2), 3.30 (GL 3.3), 4.00 (GL 4.0), 4.10 (GL 4.1), 4.20 (GL 4.2)
Matching could also refer to the maximum GLSL version usable by this context since normal GL implementations are capable of using a lower GLSL version as well. The latter is not true on OSX w/ a GL3 context.
zero version
instance is returned.getGLVersionNumber()
public final String getGLSLVersionString()
#version 110 .. #version 150 #version 330 ...And for ES:
#version 100 #version 300 es ..
If context has not been made current yet, a string of zero length is returned.
getGLSLVersionNumber()
public final boolean isGLES2Compatible()
GL_ARB_ES2_compatibility
, otherwise falsepublic final boolean isHardwareRasterizer()
isHardwareRasterizer(AbstractGraphicsDevice, GLProfile)
,
GLProfile.isHardwareRasterizer()
public final boolean hasGLSL()
isGLES2()
, isGL3()
or isGL2()
and major-version > 1.GLProfile.hasGLSL()
public final boolean hasBasicFBOSupport()
true
if basic FBO support is available, otherwise false
.
Basic FBO is supported if the context is either GL-ES >= 2.0, GL >= core 3.0 or implements the extensions
GL_ARB_ES2_compatibility
, GL_ARB_framebuffer_object
, GL_EXT_framebuffer_object
or GL_OES_framebuffer_object
.
Basic FBO support may only include one color attachment and no multisampling, as well as limited internal formats for renderbuffer.
CTX_IMPL_FBO
public final boolean hasFullFBOSupport()
true
if full FBO support is available, otherwise false
.
Full FBO is supported if the context is either GL >= core 3.0 or implements the extensions
ARB_framebuffer_object
, or all of
EXT_framebuffer_object
, EXT_framebuffer_multisample
,
EXT_framebuffer_blit
, GL_EXT_packed_depth_stencil
.
Full FBO support includes multiple color attachments and multisampling.
public final int getMaxRenderbufferSamples()
full FBO is supported
, otherwise false.
public boolean isNPOTTextureAvailable()
GLBase.isNPOTTextureAvailable()
always returns true
.
public boolean isTextureFormatBGRA8888Available()
public final boolean isGL4bc()
GLProfile.isGL4bc()
public final boolean isGL4()
GLProfile.isGL4()
public final boolean isGL4core()
Includes [ GL4 ].
public final boolean isGL3bc()
GLProfile.isGL3bc()
public final boolean isGL3()
GLProfile.isGL3()
public final boolean isGL3core()
Includes [ GL4, GL3 ].
public final boolean isGL2()
GLProfile.isGL2()
public final boolean isGL2GL3()
GLProfile.isGL2GL3()
public final boolean isGLES1()
GLProfile.isGLES1()
public final boolean isGLES2()
GLProfile.isGLES2()
public final boolean isGLES()
GLProfile.isGLES()
public final boolean isGL2ES1()
GLProfile.isGL2ES1()
public final boolean isGL2ES2()
GLProfile.isGL2ES2()
public final boolean setSwapInterval(int interval) throws GLException
interval
- Should be ≥ 0. 0 disables the vertical synchronization,
where ≥ 1 is the number of vertical refreshes before a swap buffer occurs.
A value < 0 is ignored.
GLException
- if the context is not current.public final int getSwapInterval()
If the context has not been made current at all,
the default value -1
is returned.
For a valid context the default value is 1
in case of an EGL based profile (ES1 or ES2) and -1
(undefined) for desktop.
public final boolean queryMaxSwapGroups(int[] maxGroups, int maxGroups_offset, int[] maxBarriers, int maxBarriers_offset)
public final boolean joinSwapGroup(int group)
public int getSwapGroup()
public final boolean bindSwapBarrier(int group, int barrier)
public abstract int getBoundFramebuffer(int target)
GL.glBindFramebuffer(int, int)
.
public abstract int getDefaultDrawFramebuffer()
May differ from it's default zero
in case an framebuffer object (FBObject
) based drawable
is being used.
public abstract int getDefaultReadFramebuffer()
May differ from it's default zero
in case an framebuffer object (FBObject
) based drawable
is being used.
public abstract int getDefaultReadBuffer()
getDefaultReadFramebuffer()
, i.e. GL_READ_FRAMEBUFFER​,
which will be used as the source for pixel reading commands,
like GL.glReadPixels(int, int, int, int, int, int, java.nio.Buffer)
etc.
For offscreen framebuffer objects this is GL.GL_COLOR_ATTACHMENT0
,
otherwise this is GL.GL_FRONT
for single buffer configurations
and GL.GL_BACK
for double buffer configurations.
public abstract int getDefaultPixelDataType()
GL.glReadPixels(int, int, int, int, int, int, java.nio.Buffer)
.
public abstract int getDefaultPixelDataFormat()
GL.glReadPixels(int, int, int, int, int, int, java.nio.Buffer)
.
public abstract String getGLDebugMessageExtension()
makeCurrent()
, null is returned.public abstract boolean isGLDebugSynchronous()
#setSynchronous(boolean)
public abstract void setGLDebugSynchronous(boolean synchronous)
glEnable/glDisable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB)
,
if extension is #GL_ARB_debug_output
.
There is no equivalent for #GL_AMD_debug_output
.
The default is true
, ie GL2GL3.GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB
.
public abstract boolean isGLDebugMessageEnabled()
public abstract void enableGLDebugMessage(boolean enable) throws GLException
To enable the GLDebugOutput feature enableGLDebugMessage(true)
or setContextCreationFlags
(CTX_OPTION_DEBUG
)
shall be called before context creation via makeCurrent()
!
In case GLAutoDrawable
are being used,
glAutoDrawable.setContextCreationFlags
(CTX_OPTION_DEBUG
)
shall be issued before context creation via makeCurrent()
!
After context creation, the GLDebugOutput feature may be enabled or disabled at any time using this method.
enable
- If true enables, otherwise disables the GLDebugOutput feature.
GLException
- if this context is not current or GLDebugOutput registration failed (enable)setContextCreationFlags(int)
,
addGLDebugListener(GLDebugListener)
,
GLAutoDrawable.setContextCreationFlags(int)
public abstract void addGLDebugListener(GLDebugListener listener)
GLDebugListener
.
listener
- GLDebugListener
handling senableGLDebugMessage(boolean)
,
removeGLDebugListener(GLDebugListener)
public abstract void removeGLDebugListener(GLDebugListener listener)
GLDebugListener
.
listener
- GLDebugListener
handling senableGLDebugMessage(boolean)
,
addGLDebugListener(GLDebugListener)
public abstract void glDebugMessageControl(int source, int type, int severity, int count, IntBuffer ids, boolean enabled)
GL2GL3.glDebugMessageControlARB(int, int, int, int, IntBuffer, boolean)
and GL2GL3.glDebugMessageEnableAMD(int, int, int, IntBuffer, boolean)
of the GLDebugOutput feature.
enableGLDebugMessage(boolean)
public abstract void glDebugMessageControl(int source, int type, int severity, int count, int[] ids, int ids_offset, boolean enabled)
GL2GL3.glDebugMessageControlARB(int, int, int, int, int[], int, boolean)
and GL2GL3.glDebugMessageEnableAMD(int, int, int, int[], int, boolean)
of the GLDebugOutput feature.
enableGLDebugMessage(boolean)
public abstract void glDebugMessageInsert(int source, int type, int id, int severity, String buf)
GL2GL3.glDebugMessageInsertARB(int, int, int, int, int, String)
and GL2GL3.glDebugMessageInsertAMD(int, int, int, int, String)
of the GLDebugOutput feature.
enableGLDebugMessage(boolean)
public static final int getMaxMajor()
public static final int getMaxMinor(int major)
public static final boolean isValidGLVersion(int major, int minor)
public static final boolean decrementGLVersion(int[] major, int[] minor)
public static final boolean isFBOAvailable(AbstractGraphicsDevice device, GLProfile glp)
FBO feature is implemented in OpenGL, hence it is GLProfile
dependent.
FBO support is queried as described in hasBasicFBOSupport()
.
device
- the device to request whether FBO is available forglp
- GLProfile
to check for FBO capabilitieshasBasicFBOSupport()
public static final int isHardwareRasterizer(AbstractGraphicsDevice device, GLProfile glp)
1
if using a hardware rasterizer, 0
if using a software rasterizer and -1
if not determined yet.isHardwareRasterizer()
,
GLProfile.isHardwareRasterizer()
public static boolean isGLES1Available(AbstractGraphicsDevice device, boolean[] isHardware)
public static boolean isGLES2Available(AbstractGraphicsDevice device, boolean[] isHardware)
public static boolean isGL4bcAvailable(AbstractGraphicsDevice device, boolean[] isHardware)
public static boolean isGL4Available(AbstractGraphicsDevice device, boolean[] isHardware)
public static boolean isGL3bcAvailable(AbstractGraphicsDevice device, boolean[] isHardware)
public static boolean isGL3Available(AbstractGraphicsDevice device, boolean[] isHardware)
public static boolean isGL2Available(AbstractGraphicsDevice device, boolean[] isHardware)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |