com.sun.opengl.impl
Class GLPbufferImpl

java.lang.Object
  extended by com.sun.opengl.impl.GLPbufferImpl
All Implemented Interfaces:
ComponentEvents, GLAutoDrawable, GLDrawable, GLPbuffer

public class GLPbufferImpl
extends java.lang.Object
implements GLPbuffer

Platform-independent class exposing pbuffer functionality to applications. This class is not exposed in the public API as it would probably add no value; however it implements the GLDrawable interface so can be interacted with via its display() method.


Field Summary
 
Fields inherited from interface javax.media.opengl.GLPbuffer
APPLE_FLOAT, ATI_FLOAT, NV_FLOAT
 
Constructor Summary
GLPbufferImpl(GLDrawableImpl pbufferDrawable, GLContext parentContext)
           
 
Method Summary
 void addComponentListener(java.awt.event.ComponentListener l)
           
 void addFocusListener(java.awt.event.FocusListener l)
           
 void addGLEventListener(GLEventListener listener)
          Adds a GLEventListener to this drawable.
 void addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener l)
           
 void addHierarchyListener(java.awt.event.HierarchyListener l)
           
 void addInputMethodListener(java.awt.event.InputMethodListener l)
           
 void addKeyListener(java.awt.event.KeyListener l)
           
 void addMouseListener(java.awt.event.MouseListener l)
           
 void addMouseMotionListener(java.awt.event.MouseMotionListener l)
           
 void addMouseWheelListener(java.awt.event.MouseWheelListener l)
           
 void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
           
 void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
           
 void bindTexture()
          Binds this pbuffer to its internal texture target.
 GLContext createContext(GLContext shareWith)
          Creates a new context for drawing to this drawable that will optionally share display lists and other server-side OpenGL objects with the specified GLContext.
 void destroy()
          Destroys the native resources associated with this pbuffer.
 void display()
          Causes OpenGL rendering to be performed for this GLAutoDrawable by calling display for all registered GLEventListeners.
 boolean getAutoSwapBufferMode()
          Indicates whether automatic buffer swapping is enabled for this drawable.
 GLCapabilities getChosenGLCapabilities()
          Fetches the GLCapabilities corresponding to the chosen OpenGL capabilities (pixel format / visual) for this drawable.
 GLContext getContext()
          Returns the context associated with this drawable.
 GLDrawable getDrawable()
           
 int getFloatingPointMode()
          Indicates which vendor's extension is being used to support floating point channels in this pbuffer if that capability was requested in the GLCapabilities during pbuffer creation.
 GL getGL()
          Returns the GL pipeline object this GLAutoDrawable uses.
 int getHeight()
          Returns the current height of this GLDrawable.
 int getWidth()
          Returns the current width of this GLDrawable.
 void releaseTexture()
          Unbinds the pbuffer from its internal texture target.
 void removeComponentListener(java.awt.event.ComponentListener l)
           
 void removeFocusListener(java.awt.event.FocusListener l)
           
 void removeGLEventListener(GLEventListener listener)
          Removes a GLEventListener from this drawable.
 void removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener l)
           
 void removeHierarchyListener(java.awt.event.HierarchyListener l)
           
 void removeInputMethodListener(java.awt.event.InputMethodListener l)
           
 void removeKeyListener(java.awt.event.KeyListener l)
           
 void removeMouseListener(java.awt.event.MouseListener l)
           
 void removeMouseMotionListener(java.awt.event.MouseMotionListener l)
           
 void removeMouseWheelListener(java.awt.event.MouseWheelListener l)
           
 void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
           
 void removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
           
 void repaint()
          Schedules a repaint of the component at some point in the future.
 void setAutoSwapBufferMode(boolean onOrOff)
          Enables or disables automatic buffer swapping for this drawable.
 void setGL(GL gl)
          Sets the GL pipeline object this GLAutoDrawable uses.
 void setRealized(boolean realized)
          Indicates to on-screen GLDrawable implementations whether the underlying window has been created and can be drawn into.
 void setSize(int width, int height)
          Requests a new width and height for this GLDrawable.
 void swapBuffers()
          Swaps the front and back buffers of this drawable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GLPbufferImpl

public GLPbufferImpl(GLDrawableImpl pbufferDrawable,
                     GLContext parentContext)
Method Detail

createContext

public GLContext createContext(GLContext shareWith)
Description copied from interface: GLDrawable
Creates a new context for drawing to this drawable that will optionally share display lists and other server-side OpenGL objects with the specified GLContext.

The GLContext share need not be associated with this GLDrawable and may be null if sharing of display lists and other objects is not desired. See the note in the overview documentation on context sharing.

Specified by:
createContext in interface GLDrawable

setRealized

public void setRealized(boolean realized)
Description copied from interface: GLDrawable
Indicates to on-screen GLDrawable implementations whether the underlying window has been created and can be drawn into. This method must be called from GLDrawables obtained from the GLDrawableFactory via the GLDrawableFactory.getGLDrawable() method. It must typically be called with an argument of true in the addNotify method of components performing OpenGL rendering and with an argument of false in the removeNotify method. Calling this method has no other effects. For example, if removeNotify is called on a Canvas implementation for which a GLDrawable has been created, it is also necessary to destroy all OpenGL contexts associated with that GLDrawable. This is not done automatically by the implementation. It is not necessary to call setRealized on a GLCanvas, a GLJPanel, or a GLPbuffer, as these perform the appropriate calls on their underlying GLDrawables internally..

Specified by:
setRealized in interface GLDrawable

setSize

public void setSize(int width,
                    int height)
Description copied from interface: GLDrawable
Requests a new width and height for this GLDrawable. Not all drawables are able to respond to this request and may silently ignore it.

Specified by:
setSize in interface GLDrawable

getWidth

public int getWidth()
Description copied from interface: GLDrawable
Returns the current width of this GLDrawable.

Specified by:
getWidth in interface GLDrawable

getHeight

public int getHeight()
Description copied from interface: GLDrawable
Returns the current height of this GLDrawable.

Specified by:
getHeight in interface GLDrawable

display

public void display()
Description copied from interface: GLAutoDrawable
Causes OpenGL rendering to be performed for this GLAutoDrawable by calling display for all registered GLEventListeners. Called automatically by the window system toolkit upon receiving a repaint() request. this routine may be called manually for better control over the rendering process. It is legal to call another GLAutoDrawable's display method from within the display callback.

Specified by:
display in interface GLAutoDrawable

repaint

public void repaint()
Description copied from interface: GLAutoDrawable
Schedules a repaint of the component at some point in the future.

Specified by:
repaint in interface GLAutoDrawable

addGLEventListener

public void addGLEventListener(GLEventListener listener)
Description copied from interface: GLAutoDrawable
Adds a GLEventListener to this drawable. If multiple listeners are added to a given drawable, they are notified of events in an arbitrary order.

Specified by:
addGLEventListener in interface GLAutoDrawable

removeGLEventListener

public void removeGLEventListener(GLEventListener listener)
Description copied from interface: GLAutoDrawable
Removes a GLEventListener from this drawable. Note that if this is done from within a particular drawable's GLEventListener handler (reshape, display, etc.) that it is not guaranteed that all other listeners will be evaluated properly during this update cycle.

Specified by:
removeGLEventListener in interface GLAutoDrawable

getContext

public GLContext getContext()
Description copied from interface: GLAutoDrawable
Returns the context associated with this drawable. The returned context will be synchronized.

Specified by:
getContext in interface GLAutoDrawable

getDrawable

public GLDrawable getDrawable()

getGL

public GL getGL()
Description copied from interface: GLAutoDrawable
Returns the GL pipeline object this GLAutoDrawable uses. If this method is called outside of the GLEventListener's callback methods (init, display, etc.) it may return null. Users should not rely on the identity of the returned GL object; for example, users should not maintain a hash table with the GL object as the key. Additionally, the GL object should not be cached in client code, but should be re-fetched from the GLAutoDrawable at the beginning of each call to init, display, etc.

Specified by:
getGL in interface GLAutoDrawable

setGL

public void setGL(GL gl)
Description copied from interface: GLAutoDrawable
Sets the GL pipeline object this GLAutoDrawable uses. This should only be called from within the GLEventListener's callback methods, and usually only from within the init() method, in order to install a composable pipeline. See the JOGL demos for examples.

Specified by:
setGL in interface GLAutoDrawable

setAutoSwapBufferMode

public void setAutoSwapBufferMode(boolean onOrOff)
Description copied from interface: GLAutoDrawable
Enables or disables automatic buffer swapping for this drawable. By default this property is set to true; when true, after all GLEventListeners have been called for a display() event, the front and back buffers are swapped, displaying the results of the render. When disabled, the user is responsible for calling GLDrawable.swapBuffers() manually.

Specified by:
setAutoSwapBufferMode in interface GLAutoDrawable

getAutoSwapBufferMode

public boolean getAutoSwapBufferMode()
Description copied from interface: GLAutoDrawable
Indicates whether automatic buffer swapping is enabled for this drawable. See GLAutoDrawable.setAutoSwapBufferMode(boolean).

Specified by:
getAutoSwapBufferMode in interface GLAutoDrawable

swapBuffers

public void swapBuffers()
Description copied from interface: GLDrawable
Swaps the front and back buffers of this drawable. For GLAutoDrawable implementations, when automatic buffer swapping is enabled (as is the default), this method is called automatically and should not be called by the end user.

Specified by:
swapBuffers in interface GLDrawable

bindTexture

public void bindTexture()
Description copied from interface: GLPbuffer
Binds this pbuffer to its internal texture target. Only valid to call if offscreen render-to-texture has been specified in the GLCapabilities for this GLPbuffer. If the render-to-texture-rectangle capability has also been specified, this will use e.g. wglBindTexImageARB as its implementation and cause the texture to be bound to e.g. the GL_TEXTURE_RECTANGLE_NV state; otherwise, during the display() phase the pixels will have been copied into an internal texture target and this will cause that to be bound to the GL_TEXTURE_2D state.

Specified by:
bindTexture in interface GLPbuffer

releaseTexture

public void releaseTexture()
Description copied from interface: GLPbuffer
Unbinds the pbuffer from its internal texture target.

Specified by:
releaseTexture in interface GLPbuffer

getChosenGLCapabilities

public GLCapabilities getChosenGLCapabilities()
Description copied from interface: GLDrawable
Fetches the GLCapabilities corresponding to the chosen OpenGL capabilities (pixel format / visual) for this drawable. Some drawables, in particular on-screen drawables, may be created lazily; null is returned if the drawable is not currently created or if its pixel format has not been set yet. On some platforms, the pixel format is not directly associated with the drawable; a best attempt is made to return a reasonable value in this case.

Specified by:
getChosenGLCapabilities in interface GLDrawable

addComponentListener

public void addComponentListener(java.awt.event.ComponentListener l)
Specified by:
addComponentListener in interface ComponentEvents

removeComponentListener

public void removeComponentListener(java.awt.event.ComponentListener l)
Specified by:
removeComponentListener in interface ComponentEvents

addFocusListener

public void addFocusListener(java.awt.event.FocusListener l)
Specified by:
addFocusListener in interface ComponentEvents

removeFocusListener

public void removeFocusListener(java.awt.event.FocusListener l)
Specified by:
removeFocusListener in interface ComponentEvents

addHierarchyBoundsListener

public void addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener l)
Specified by:
addHierarchyBoundsListener in interface ComponentEvents

removeHierarchyBoundsListener

public void removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener l)
Specified by:
removeHierarchyBoundsListener in interface ComponentEvents

addHierarchyListener

public void addHierarchyListener(java.awt.event.HierarchyListener l)
Specified by:
addHierarchyListener in interface ComponentEvents

removeHierarchyListener

public void removeHierarchyListener(java.awt.event.HierarchyListener l)
Specified by:
removeHierarchyListener in interface ComponentEvents

addInputMethodListener

public void addInputMethodListener(java.awt.event.InputMethodListener l)
Specified by:
addInputMethodListener in interface ComponentEvents

removeInputMethodListener

public void removeInputMethodListener(java.awt.event.InputMethodListener l)
Specified by:
removeInputMethodListener in interface ComponentEvents

addKeyListener

public void addKeyListener(java.awt.event.KeyListener l)
Specified by:
addKeyListener in interface ComponentEvents

removeKeyListener

public void removeKeyListener(java.awt.event.KeyListener l)
Specified by:
removeKeyListener in interface ComponentEvents

addMouseListener

public void addMouseListener(java.awt.event.MouseListener l)
Specified by:
addMouseListener in interface ComponentEvents

removeMouseListener

public void removeMouseListener(java.awt.event.MouseListener l)
Specified by:
removeMouseListener in interface ComponentEvents

addMouseMotionListener

public void addMouseMotionListener(java.awt.event.MouseMotionListener l)
Specified by:
addMouseMotionListener in interface ComponentEvents

removeMouseMotionListener

public void removeMouseMotionListener(java.awt.event.MouseMotionListener l)
Specified by:
removeMouseMotionListener in interface ComponentEvents

addMouseWheelListener

public void addMouseWheelListener(java.awt.event.MouseWheelListener l)
Specified by:
addMouseWheelListener in interface ComponentEvents

removeMouseWheelListener

public void removeMouseWheelListener(java.awt.event.MouseWheelListener l)
Specified by:
removeMouseWheelListener in interface ComponentEvents

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Specified by:
addPropertyChangeListener in interface ComponentEvents

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Specified by:
removePropertyChangeListener in interface ComponentEvents

addPropertyChangeListener

public void addPropertyChangeListener(java.lang.String propertyName,
                                      java.beans.PropertyChangeListener listener)
Specified by:
addPropertyChangeListener in interface ComponentEvents

removePropertyChangeListener

public void removePropertyChangeListener(java.lang.String propertyName,
                                         java.beans.PropertyChangeListener listener)
Specified by:
removePropertyChangeListener in interface ComponentEvents

destroy

public void destroy()
Description copied from interface: GLPbuffer
Destroys the native resources associated with this pbuffer. It is not valid to call display() or any other routines on this pbuffer after it has been destroyed. Before destroying the pbuffer, the application must destroy any additional OpenGL contexts which have been created for the pbuffer via GLDrawable.createContext(javax.media.opengl.GLContext).

Specified by:
destroy in interface GLPbuffer

getFloatingPointMode

public int getFloatingPointMode()
Description copied from interface: GLPbuffer
Indicates which vendor's extension is being used to support floating point channels in this pbuffer if that capability was requested in the GLCapabilities during pbuffer creation. Returns one of NV_FLOAT, ATI_FLOAT or APPLE_FLOAT, or throws GLException if floating-point channels were not requested for this pbuffer. This function may only be called once the init method for this pbuffer's GLEventListener has been called.

Specified by:
getFloatingPointMode in interface GLPbuffer


Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.