diff options
Diffstat (limited to 'src/classes/javax/media/opengl/GLContext.java')
-rw-r--r-- | src/classes/javax/media/opengl/GLContext.java | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/src/classes/javax/media/opengl/GLContext.java b/src/classes/javax/media/opengl/GLContext.java deleted file mode 100644 index a70e131c8..000000000 --- a/src/classes/javax/media/opengl/GLContext.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use - * in the design, construction, operation or maintenance of any nuclear - * facility. - * - * Sun gratefully acknowledges that this software was originally authored - * and developed by Kenneth Bradley Russell and Christopher John Kline. - */ - -package javax.media.opengl; - -/** 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. */ - -public abstract class GLContext { - /** Indicates that the context was not made current during the last call to {@link #makeCurrent makeCurrent}. */ - public static final int CONTEXT_NOT_CURRENT = 0; - /** Indicates that the context was made current during the last call to {@link #makeCurrent makeCurrent}. */ - public static final int CONTEXT_CURRENT = 1; - /** Indicates that a newly-created context was made current during the last call to {@link #makeCurrent makeCurrent}. */ - public static final int CONTEXT_CURRENT_NEW = 2; - - private static ThreadLocal currentContext = new ThreadLocal(); - - /** - * Returns the GLDrawable to which this context may be used to - * draw. - */ - public abstract GLDrawable getGLDrawable(); - - /** - * Makes this GLContext current on the calling thread. - * - * 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, and that - * this is the first time this context has been made current, or - * that the state of the underlying context or drawable may have - * changed since the last time this context was made current. In - * this case, the application may wish to initialize the state. A - * return value of CONTEXT_CURRENT indicates that the context has - * been made currrent, 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. - * - * If the context is in use by another thread at the time of the - * call, then if isSynchronized() is true the call will - * block. If isSynchronized() is false, an exception will be - * thrown and the context will remain current on the other thread. - * - * @return CONTEXT_CURRENT if the context was successfully made current - * @return CONTEXT_CURRENT_NEW if the context was successfully made - * current, but need to be initialized. - * - * @return CONTEXT_NOT_CURRENT if the context could not be made current. - * - * @throws 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 int makeCurrent() throws GLException; - - /** - * Releases control of this GLContext from the current thread. - * - * @throws GLException if the context had not previously been made - * current on the current thread - */ - public abstract void release() throws GLException; - - /** - * Copies selected groups of OpenGL state variables from the - * supplied source context into this one. The <code>mask</code> - * parameter indicates which groups of state variables are to be - * copied. <code>mask</code> contains the bitwise OR of the same - * symbolic names that are passed to the GL command {@link - * GL#glPushAttrib glPushAttrib}. The single symbolic constant - * {@link GL#GL_ALL_ATTRIB_BITS GL_ALL_ATTRIB_BITS} can be used to - * copy the maximum possible portion of rendering state. <P> - * - * 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 {@link - * GL#glPushAttrib glPushAttrib}. <P> - * - * 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. - * - * @param source the source OpenGL context from which to copy state - * @param mask a mask of symbolic names indicating which groups of state to copy - - * @throws GLException if an OpenGL-related error occurred - */ - public abstract void copy(GLContext source, int mask) throws GLException; - - /** - * Returns the context which is current on the current thread. If no - * context is current, returns null. - * - * @return the context current on this thread, or null if no context - * is current. - */ - public static GLContext getCurrent() { - return (GLContext) currentContext.get(); - } - - /** - * Sets the thread-local variable returned by {@link #getCurrent} - * and has no other side-effects. For use by third parties adding - * new GLContext implementations; not for use by end users. - */ - protected static void setCurrent(GLContext cur) { - currentContext.set(cur); - } - - /** - * Destroys this OpenGL context and frees its associated - * resources. The context should have been released before this - * method is called. - */ - public abstract void destroy(); - - /** - * Returns true if 'makeCurrent' will exhibit synchronized behavior. - */ - public abstract boolean isSynchronized(); - - /** - * Determines whether 'makeCurrent' will exhibit synchronized behavior. - */ - public abstract void setSynchronized(boolean isSynchronized); - - /** - * Returns the GL pipeline object for this GLContext. - */ - public abstract GL getGL(); - - /** - * Sets the GL pipeline object for this GLContext. - */ - public abstract void setGL(GL gl); -} |