edu.mines.jtk.ogl
Class GlCanvas

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by javax.media.opengl.GLCanvas
              extended by edu.mines.jtk.ogl.GlCanvas
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.media.opengl.ComponentEvents, javax.media.opengl.GLAutoDrawable, javax.media.opengl.GLDrawable, javax.media.opengl.GLEventListener
Direct Known Subclasses:
ViewCanvas

public class GlCanvas
extends javax.media.opengl.GLCanvas
implements javax.media.opengl.GLEventListener

A canvas that paints via OpenGL. To paint a canvas using OpenGL, extend this class and implement the method glPaint(). Classes that extend this class may also implement the methods glInit() and glResize(int,int,int,int).

Version:
2006.07.08
Author:
Dave Hale, Colorado School of Mines
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GlCanvas()
          Constructs a canvas with default capabilities.
GlCanvas(javax.media.opengl.GLCapabilities capabilities)
          Constructs a canvas with specified capabilities.
GlCanvas(javax.media.opengl.GLCapabilities capabilities, javax.media.opengl.GLCapabilitiesChooser chooser, javax.media.opengl.GLContext shareWith, java.awt.GraphicsDevice device)
          Constructs a canvas with specified capabilities.
 
Method Summary
 void display(javax.media.opengl.GLAutoDrawable drawable)
           
 void displayChanged(javax.media.opengl.GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged)
           
 void glInit()
          Initializes OpenGL state when this canvas is first painted.
 void glPaint()
          Paints this canvas via OpenGL.
 void glResize(int x, int y, int width, int height)
          Modifies OpenGL state when this canvas has been resized.
 void init(javax.media.opengl.GLAutoDrawable drawable)
           
 void reshape(javax.media.opengl.GLAutoDrawable drawable, int x, int y, int w, int h)
           
 void runWithContext(java.lang.Runnable runnable)
          Runs the specified runnable with a current OpenGL context.
 void setAutoRepaint(boolean autoRepaint)
          Enables or disables automatic repainting.
 
Methods inherited from class javax.media.opengl.GLCanvas
addGLEventListener, addNotify, createContext, display, getAutoSwapBufferMode, getChosenGLCapabilities, getContext, getGL, getGraphicsConfiguration, paint, removeGLEventListener, removeNotify, reshape, setAutoSwapBufferMode, setGL, setRealized, swapBuffers, update
 
Methods inherited from class java.awt.Canvas
createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.media.opengl.GLAutoDrawable
repaint
 
Methods inherited from interface javax.media.opengl.GLDrawable
getHeight, getWidth, setSize
 
Methods inherited from interface javax.media.opengl.ComponentEvents
addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener
 

Constructor Detail

GlCanvas

public GlCanvas()
Constructs a canvas with default capabilities.


GlCanvas

public GlCanvas(javax.media.opengl.GLCapabilities capabilities)
Constructs a canvas with specified capabilities.


GlCanvas

public GlCanvas(javax.media.opengl.GLCapabilities capabilities,
                javax.media.opengl.GLCapabilitiesChooser chooser,
                javax.media.opengl.GLContext shareWith,
                java.awt.GraphicsDevice device)
Constructs a canvas with specified capabilities.

Method Detail

setAutoRepaint

public void setAutoRepaint(boolean autoRepaint)
Enables or disables automatic repainting. If enabled, then, immediately after this canvas paints itself, it automatically requests that it be painted again. By default, automatic repainting is disabled.

Parameters:
autoRepaint - true, for automatic repainting; false, otherwise.

runWithContext

public void runWithContext(java.lang.Runnable runnable)
Runs the specified runnable with a current OpenGL context. The specified runnable may safely call OpenGL functions within its method run.

Parameters:
runnable - the object to run.

glInit

public void glInit()
Initializes OpenGL state when this canvas is first painted. This method is called before the methods glResize(int,int,int,int) and glPaint() when (1) this canvas must be painted and (2) it has never been painted before.

In classes that extend this class, implementations of this method use the OpenGL context that has been locked for the current thread. This implementation does nothing.


glResize

public void glResize(int x,
                     int y,
                     int width,
                     int height)
Modifies OpenGL state when this canvas has been resized. This method is called before the method glPaint() when (1) this canvas must be painted and (2) its width or height have changed since it was last painted or it has never been painted.

In classes that extend this class, implementations of this method use the OpenGL context that has been locked for the current thread. This implementation does nothing.

Parameters:
x - the x pixel coordinate of top-left corner.
y - the y pixel coordinate of top-left corner.
width - the width in pixels.
height - the height in pixels.

glPaint

public void glPaint()
Paints this canvas via OpenGL.

In classes that extend this class, implementations of this method use the OpenGL context that has been locked for the current thread. This implementation does nothing.


init

public void init(javax.media.opengl.GLAutoDrawable drawable)
Specified by:
init in interface javax.media.opengl.GLEventListener

reshape

public void reshape(javax.media.opengl.GLAutoDrawable drawable,
                    int x,
                    int y,
                    int w,
                    int h)
Specified by:
reshape in interface javax.media.opengl.GLEventListener

display

public void display(javax.media.opengl.GLAutoDrawable drawable)
Specified by:
display in interface javax.media.opengl.GLEventListener

displayChanged

public void displayChanged(javax.media.opengl.GLAutoDrawable drawable,
                           boolean modeChanged,
                           boolean deviceChanged)
Specified by:
displayChanged in interface javax.media.opengl.GLEventListener