|
|||||||||
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 . |
protected long |
contextHandle
The underlying native OpenGL context |
protected static int |
CTX_IS_ARB_CREATED
ARB_create_context related: created via ARB_create_context |
protected static int |
CTX_OPTION_ANY
ARB_create_context related: not flag forward compatible |
protected static int |
CTX_OPTION_DEBUG
ARB_create_context related: flag debug |
protected static int |
CTX_OPTION_FORWARD
ARB_create_context related: flag forward compatible |
protected static int |
CTX_PROFILE_COMPAT
ARB_create_context related: compatibility profile |
protected static int |
CTX_PROFILE_CORE
ARB_create_context related: core profile |
protected static int |
CTX_PROFILE_ES
ARB_create_context related: ES profile |
protected int |
ctxMajorVersion
|
protected int |
ctxMinorVersion
|
protected int |
ctxOptions
|
protected String |
ctxVersionString
|
protected static boolean |
DEBUG0
|
protected static HashMap |
deviceVersionAvailable
|
static int[][] |
GL_VERSIONS
|
Constructor Summary | |
---|---|
protected |
GLContext()
|
Method Summary | |
---|---|
StringBuffer |
append(StringBuffer sb)
|
protected static int |
compose8bit(int one,
int two,
int three,
int four)
|
protected static String |
composed8BitToString(int bits32,
boolean hex1,
boolean hex2,
boolean hex3,
boolean hex4)
|
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 |
getAttachedObject(int name)
Returns the attached user object for the given name to this GLContext. |
Object |
getAttachedObject(String name)
Returns the attached user object for the given name to this GLContext. |
protected static Integer |
getAvailableGLVersion(AbstractGraphicsDevice device,
int reqMajor,
int profile)
|
protected static boolean |
getAvailableGLVersion(AbstractGraphicsDevice device,
int reqMajor,
int reqProfile,
int[] major,
int[] minor,
int[] ctp)
|
static String |
getAvailableGLVersionAsString(AbstractGraphicsDevice device,
int major,
int profile)
|
protected static boolean |
getAvailableGLVersionsSet(AbstractGraphicsDevice device)
|
protected static int |
getComposed8bit(int bits32,
int which)
|
protected static String |
getContextFQN(AbstractGraphicsDevice device,
int major,
int minor,
int ctp)
|
static GLContext |
getCurrent()
Returns this thread current context. |
static GL |
getCurrentGL()
Returns the GL object bound to this thread current context. |
protected static String |
getDeviceVersionAvailableKey(AbstractGraphicsDevice device,
int major,
int profile)
|
abstract GL |
getGL()
Returns the GL pipeline object for this GLContext. |
abstract GLDrawable |
getGLDrawable()
Returns the GLDrawable to which this context may be used to draw. |
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 GLDrawable this context uses for read framebuffer operations. |
String |
getGLVersion()
Returns a valid OpenGL version string, ie |
static String |
getGLVersion(int major,
int minor,
int ctp,
String gl_version)
|
int |
getGLVersionMajor()
|
int |
getGLVersionMinor()
|
long |
getHandle()
Returns the native GL context handle |
static int |
getMaxMajor()
|
static int |
getMaxMinor(int major)
|
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. |
protected static String |
getThreadName()
|
boolean |
hasGLSL()
|
boolean |
isCreated()
Indicates whether the underlying OpenGL context has been created. |
boolean |
isCreatedWithARBMethod()
|
boolean |
isCurrent()
|
boolean |
isGL2()
|
static boolean |
isGL2Available(AbstractGraphicsDevice device)
|
boolean |
isGL2ES1()
|
boolean |
isGL2ES2()
|
boolean |
isGL2GL3()
|
boolean |
isGL3()
|
static boolean |
isGL3Available(AbstractGraphicsDevice device)
|
boolean |
isGL3bc()
|
static boolean |
isGL3bcAvailable(AbstractGraphicsDevice device)
|
boolean |
isGL4()
|
static boolean |
isGL4Available(AbstractGraphicsDevice device)
|
boolean |
isGL4bc()
|
static boolean |
isGL4bcAvailable(AbstractGraphicsDevice device)
|
boolean |
isGLCompatibilityProfile()
|
boolean |
isGLCoreProfile()
|
boolean |
isGLEmbeddedProfile()
|
boolean |
isGLES()
|
boolean |
isGLES1()
|
static boolean |
isGLES1Available(AbstractGraphicsDevice device)
|
boolean |
isGLES2()
|
static boolean |
isGLES2Available(AbstractGraphicsDevice device)
|
boolean |
isGLForwardCompatible()
|
abstract boolean |
isGLReadDrawableAvailable()
Return availability of GL read drawable. |
static boolean |
isGLVersionAvailable(AbstractGraphicsDevice device,
int major,
int profile)
|
abstract boolean |
isSynchronized()
Returns true if 'makeCurrent' will exhibit synchronized behavior. |
static boolean |
isValidGLVersion(int major,
int minor)
|
abstract int |
makeCurrent()
Makes this GLContext current on the calling thread. |
protected static Integer |
mapAvailableGLVersion(AbstractGraphicsDevice device,
int reqMajor,
int profile,
int resMajor,
int resMinor,
int resCtp)
Called by GLContextImpl.createContextARBMapVersionsAvailable(int, boolean) not intended to be used by
implementations. |
Object |
putAttachedObject(int name,
Object obj)
Sets the attached user object for the given name to this GLContext. |
Object |
putAttachedObject(String name,
Object obj)
Sets the attached user object for the given name to this GLContext. |
abstract void |
release()
Releases control of this GLContext from the current thread. |
protected void |
resetStates()
|
protected static void |
setAvailableGLVersionsSet(AbstractGraphicsDevice device)
|
protected static void |
setCurrent(GLContext cur)
Sets the thread-local variable returned by getCurrent()
and has no other side-effects. |
abstract GL |
setGL(GL gl)
Sets the GL pipeline object for this GLContext. |
abstract void |
setGLReadDrawable(GLDrawable read)
Set the read GLDrawable for read framebuffer operations. The caller should query if this feature is supported via isGLReadDrawableAvailable() . |
abstract void |
setSynchronized(boolean isSynchronized)
Determines whether 'makeCurrent' will exhibit synchronized behavior. |
protected static String |
toHexString(int hex)
|
protected static String |
toHexString(long hex)
|
String |
toString()
Classname, GL, GLDrawable |
protected static String |
toString(int val,
boolean hex)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected static final boolean DEBUG0
public static final int CONTEXT_NOT_CURRENT
makeCurrent
.
public static final int CONTEXT_CURRENT
makeCurrent
.
public static final int CONTEXT_CURRENT_NEW
makeCurrent
.
protected static final int CTX_IS_ARB_CREATED
ARB_create_context
related: created via ARB_create_context
protected static final int CTX_PROFILE_COMPAT
ARB_create_context
related: compatibility profile
protected static final int CTX_PROFILE_CORE
ARB_create_context
related: core profile
protected static final int CTX_PROFILE_ES
ARB_create_context
related: ES profile
protected static final int CTX_OPTION_FORWARD
ARB_create_context
related: flag forward compatible
protected static final int CTX_OPTION_ANY
ARB_create_context
related: not flag forward compatible
protected static final int CTX_OPTION_DEBUG
ARB_create_context
related: flag debug
protected long contextHandle
protected int ctxMajorVersion
protected int ctxMinorVersion
protected int ctxOptions
protected String ctxVersionString
public static final int[][] GL_VERSIONS
protected static HashMap deviceVersionAvailable
getDeviceVersionAvailableKey(javax.media.nativewindow.AbstractGraphicsDevice, int, int)
Constructor Detail |
---|
protected GLContext()
Method Detail |
---|
protected void resetStates()
public abstract GLDrawable getGLDrawable()
public abstract boolean isGLReadDrawableAvailable()
public abstract void setGLReadDrawable(GLDrawable read)
isGLReadDrawableAvailable()
.
read
- the read GLDrawable for read framebuffer operations.
If null is passed, the default write drawable will be set.
GLException
- in case a read drawable is not supported
and the given drawable is not null and not equal to the internal write drawable.isGLReadDrawableAvailable()
,
getGLReadDrawable()
public abstract GLDrawable getGLReadDrawable()
isGLReadDrawableAvailable()
,
setGLReadDrawable(javax.media.opengl.GLDrawable)
public abstract int makeCurrent() throws GLException
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
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()
protected static void setCurrent(GLContext cur)
getCurrent()
and has no other side-effects. For use by third parties adding
new GLContext implementations; not for use by end users.
public abstract void destroy()
public abstract boolean isSynchronized()
public abstract void setSynchronized(boolean isSynchronized)
public abstract GL getGL()
public abstract GL setGL(GL gl)
public final long getHandle()
public final boolean isCreated()
public final Object getAttachedObject(int name)
public final Object getAttachedObject(String name)
public final Object putAttachedObject(int name, Object obj)
public final Object putAttachedObject(String name, Object obj)
public String toString()
toString
in class Object
public final StringBuffer append(StringBuffer sb)
public abstract String getPlatformExtensionsString()
public abstract String getGLExtensionsString()
glGetString
(GL_EXTENSIONS
)
public final int getGLVersionMajor()
public final int getGLVersionMinor()
public final boolean isGLCompatibilityProfile()
public final boolean isGLCoreProfile()
public final boolean isGLEmbeddedProfile()
public final boolean isGLForwardCompatible()
public final boolean isCreatedWithARBMethod()
public final String getGLVersion()
major.minor ([option]?[options,]*) - gl-version
old
refers to the non ARB_create_context created contextnew
refers to the ARB_create_context created contextcompatible profile
core profile
forward compatible
any
refers to the non forward compatible contextES
refers to the GLES context variantrow 2, cell 1 | row 2, cell 2 |
ES2 | 2.0 (ES, any, new) - 2.0 ES Profile | |
ATI | GL2 | 3.0 (compatibility profile, any, new) - 3.2.9704 Compatibility Profile Context |
ATI | GL3 | 3.3 (core profile, any, new) - 1.4 (3.2.9704 Compatibility Profile Context) |
ATI | GL3bc | 3.3 (compatibility profile, any, new) - 1.4 (3.2.9704 Compatibility Profile Context) |
NV | GL2 | 3.0 (compatibility profile, any, new) - 3.0.0 NVIDIA 195.36.07.03 |
NV | GL3 | 3.3 (core profile, any, new) - 3.3.0 NVIDIA 195.36.07.03 |
NV | GL3bc | 3.3 (compatibility profile, any, new) - 3.3.0 NVIDIA 195.36.07.03 |
public final boolean isGL4bc()
public final boolean isGL4()
public final boolean isGL3bc()
public final boolean isGL3()
public final boolean isGL2()
public final boolean isGL2GL3()
public final boolean isGLES1()
public final boolean isGLES2()
public final boolean isGLES()
public final boolean isGL2ES1()
public final boolean isGL2ES2()
public final boolean hasGLSL()
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)
protected static int compose8bit(int one, int two, int three, int four)
protected static int getComposed8bit(int bits32, int which)
protected static String composed8BitToString(int bits32, boolean hex1, boolean hex2, boolean hex3, boolean hex4)
protected static String getContextFQN(AbstractGraphicsDevice device, int major, int minor, int ctp)
protected static String getDeviceVersionAvailableKey(AbstractGraphicsDevice device, int major, int profile)
protected static boolean getAvailableGLVersionsSet(AbstractGraphicsDevice device)
protected static void setAvailableGLVersionsSet(AbstractGraphicsDevice device)
protected static Integer mapAvailableGLVersion(AbstractGraphicsDevice device, int reqMajor, int profile, int resMajor, int resMinor, int resCtp)
GLContextImpl.createContextARBMapVersionsAvailable(int, boolean)
not intended to be used by
implementations. However, if #createContextARB
is not being used within
GLDrawableFactory.getOrCreateSharedContext(javax.media.nativewindow.AbstractGraphicsDevice)
,
GLProfile has to map the available versions.
reqMajor
- Key Value either 1, 2, 3 or 4profile
- Key Value either CTX_PROFILE_COMPAT
, CTX_PROFILE_CORE
or CTX_PROFILE_ES
#createContextARBMapVersionsAvailable
protected static Integer getAvailableGLVersion(AbstractGraphicsDevice device, int reqMajor, int profile)
protected static boolean getAvailableGLVersion(AbstractGraphicsDevice device, int reqMajor, int reqProfile, int[] major, int[] minor, int[] ctp)
reqMajor
- Key Value either 1, 2, 3 or 4reqProfile
- Key Value either CTX_PROFILE_COMPAT
, CTX_PROFILE_CORE
or CTX_PROFILE_ES
major
- if not null, returns the used major versionminor
- if not null, returns the used minor versionctp
- if not null, returns the used context profilepublic static boolean isGLVersionAvailable(AbstractGraphicsDevice device, int major, int profile)
major
- Key Value either 1, 2, 3 or 4profile
- Key Value either CTX_PROFILE_COMPAT
, CTX_PROFILE_CORE
or CTX_PROFILE_ES
public static boolean isGLES1Available(AbstractGraphicsDevice device)
public static boolean isGLES2Available(AbstractGraphicsDevice device)
public static boolean isGL4bcAvailable(AbstractGraphicsDevice device)
public static boolean isGL4Available(AbstractGraphicsDevice device)
public static boolean isGL3bcAvailable(AbstractGraphicsDevice device)
public static boolean isGL3Available(AbstractGraphicsDevice device)
public static boolean isGL2Available(AbstractGraphicsDevice device)
public static String getAvailableGLVersionAsString(AbstractGraphicsDevice device, int major, int profile)
major
- Key Value either 1, 2, 3 or 4profile
- Key Value either CTX_PROFILE_COMPAT
, CTX_PROFILE_CORE
or CTX_PROFILE_ES
public static String getGLVersion(int major, int minor, int ctp, String gl_version)
protected static String toString(int val, boolean hex)
protected static String toHexString(int hex)
protected static String toHexString(long hex)
protected static String getThreadName()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |