com.sun.opengl.impl

Class GLPbufferImpl

Implemented Interfaces:
ComponentEvents, GLAutoDrawable, GLDrawable, GLPbuffer

public class GLPbufferImpl
extends 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.

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(ComponentListener l)
void
addFocusListener(FocusListener l)
void
addGLEventListener(GLEventListener listener)
Adds a GLEventListener to this drawable.
void
addHierarchyBoundsListener(HierarchyBoundsListener l)
void
addHierarchyListener(HierarchyListener l)
void
addInputMethodListener(InputMethodListener l)
void
addKeyListener(KeyListener l)
void
addMouseListener(MouseListener l)
void
addMouseMotionListener(MouseMotionListener l)
void
addMouseWheelListener(MouseWheelListener l)
void
addPropertyChangeListener(PropertyChangeListener listener)
void
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
void
bindTexture()
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()
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.
GLContext
getContext()
Returns the context associated with this drawable.
GLDrawable
getDrawable()
int
getFloatingPointMode()
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()
void
removeComponentListener(ComponentListener l)
void
removeFocusListener(FocusListener l)
void
removeGLEventListener(GLEventListener listener)
Removes a GLEventListener from this drawable.
void
removeHierarchyBoundsListener(HierarchyBoundsListener l)
void
removeHierarchyListener(HierarchyListener l)
void
removeInputMethodListener(InputMethodListener l)
void
removeKeyListener(KeyListener l)
void
removeMouseListener(MouseListener l)
void
removeMouseMotionListener(MouseMotionListener l)
void
removeMouseWheelListener(MouseWheelListener l)
void
removePropertyChangeListener(PropertyChangeListener listener)
void
removePropertyChangeListener(String propertyName, 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.

Constructor Details

GLPbufferImpl

public GLPbufferImpl(GLDrawableImpl pbufferDrawable,
                     GLContext parentContext)

Method Details

addComponentListener

public void addComponentListener(ComponentListener l)
Specified by:
addComponentListener in interface ComponentEvents

addFocusListener

public void addFocusListener(FocusListener l)
Specified by:
addFocusListener in interface ComponentEvents

addGLEventListener

public void addGLEventListener(GLEventListener listener)
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

addHierarchyBoundsListener

public void addHierarchyBoundsListener(HierarchyBoundsListener l)
Specified by:
addHierarchyBoundsListener in interface ComponentEvents

addHierarchyListener

public void addHierarchyListener(HierarchyListener l)
Specified by:
addHierarchyListener in interface ComponentEvents

addInputMethodListener

public void addInputMethodListener(InputMethodListener l)
Specified by:
addInputMethodListener in interface ComponentEvents

addKeyListener

public void addKeyListener(KeyListener l)
Specified by:
addKeyListener in interface ComponentEvents

addMouseListener

public void addMouseListener(MouseListener l)
Specified by:
addMouseListener in interface ComponentEvents

addMouseMotionListener

public void addMouseMotionListener(MouseMotionListener l)
Specified by:
addMouseMotionListener in interface ComponentEvents

addMouseWheelListener

public void addMouseWheelListener(MouseWheelListener l)
Specified by:
addMouseWheelListener in interface ComponentEvents

addPropertyChangeListener

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

addPropertyChangeListener

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

bindTexture

public void bindTexture()
Specified by:
bindTexture in interface GLPbuffer

createContext

public 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.

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

destroy

public void destroy()
Specified by:
destroy in interface GLPbuffer

display

public void display()
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

getAutoSwapBufferMode

public boolean getAutoSwapBufferMode()
Specified by:
getAutoSwapBufferMode in interface GLAutoDrawable

getContext

public GLContext getContext()
Returns the context associated with this drawable. The returned context will be synchronized.
Specified by:
getContext in interface GLAutoDrawable

getDrawable

public GLDrawable getDrawable()

getFloatingPointMode

public int getFloatingPointMode()
Specified by:
getFloatingPointMode in interface GLPbuffer

getGL

public GL getGL()
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

getHeight

public int getHeight()
Returns the current height of this GLDrawable.
Specified by:
getHeight in interface GLDrawable

getWidth

public int getWidth()
Returns the current width of this GLDrawable.
Specified by:
getWidth in interface GLDrawable

releaseTexture

public void releaseTexture()
Specified by:
releaseTexture in interface GLPbuffer

removeComponentListener

public void removeComponentListener(ComponentListener l)
Specified by:
removeComponentListener in interface ComponentEvents

removeFocusListener

public void removeFocusListener(FocusListener l)
Specified by:
removeFocusListener in interface ComponentEvents

removeGLEventListener

public void removeGLEventListener(GLEventListener listener)
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

removeHierarchyBoundsListener

public void removeHierarchyBoundsListener(HierarchyBoundsListener l)
Specified by:
removeHierarchyBoundsListener in interface ComponentEvents

removeHierarchyListener

public void removeHierarchyListener(HierarchyListener l)
Specified by:
removeHierarchyListener in interface ComponentEvents

removeInputMethodListener

public void removeInputMethodListener(InputMethodListener l)
Specified by:
removeInputMethodListener in interface ComponentEvents

removeKeyListener

public void removeKeyListener(KeyListener l)
Specified by:
removeKeyListener in interface ComponentEvents

removeMouseListener

public void removeMouseListener(MouseListener l)
Specified by:
removeMouseListener in interface ComponentEvents

removeMouseMotionListener

public void removeMouseMotionListener(MouseMotionListener l)
Specified by:
removeMouseMotionListener in interface ComponentEvents

removeMouseWheelListener

public void removeMouseWheelListener(MouseWheelListener l)
Specified by:
removeMouseWheelListener in interface ComponentEvents

removePropertyChangeListener

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

removePropertyChangeListener

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

repaint

public void repaint()
Schedules a repaint of the component at some point in the future.
Specified by:
repaint in interface GLAutoDrawable

setAutoSwapBufferMode

public void setAutoSwapBufferMode(boolean onOrOff)
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 GLAutoDrawable manually.
Specified by:
setAutoSwapBufferMode in interface GLAutoDrawable

setGL

public void setGL(GL gl)
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

setRealized

public void setRealized(boolean realized)
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)
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

swapBuffers

public void swapBuffers()
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

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