edu.mines.jtk.opengl
Class GlCanvas

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by edu.mines.jtk.opengl.GlCanvas
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class GlCanvas
extends java.awt.Canvas

A canvas that paints via OpenGL. To paint a canvas using OpenGL, construct an instance of this class with an OpenGL painter, or 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:
2005.05.24
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 no OpenGL painter.
GlCanvas(GlPainter painter)
          Constructs a canvas with the specified OpenGL painter.
 
Method Summary
 void dispose()
          Dispose this context.
protected  void finalize()
           
 GlContext getContext()
          Gets the OpenGL context for this canvas.
 void glInit()
          Initializes OpenGL state when this canvas is first painted.
 void glPaint()
          Paints this canvas via OpenGL.
 void glResize(int width, int height, int widthBefore, int heightBefore)
          Modifies OpenGL state when this canvas has been resized.
 void paint(java.awt.Graphics g)
          Paints this canvas.
 void setAutoRepaint(boolean autoRepaint)
          Enables or disables automatic repainting.
 void update(java.awt.Graphics g)
          Updates this canvas.
 
Methods inherited from class java.awt.Canvas
addNotify, 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, getGraphicsConfiguration, 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, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, 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, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GlCanvas

public GlCanvas()
Constructs a canvas with no OpenGL painter.


GlCanvas

public GlCanvas(GlPainter painter)
Constructs a canvas with the specified OpenGL painter.

Parameters:
painter - the OpenGL painter.
Method Detail

getContext

public GlContext getContext()
Gets the OpenGL context for this canvas.

Returns:
the context.

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.

dispose

public void dispose()
Dispose this context.


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 simply delegates to the painter, if not null.


glResize

public void glResize(int width,
                     int height,
                     int widthBefore,
                     int heightBefore)
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 simply delegates to the painter, if not null.

Parameters:
width - the current width.
height - the current height.
widthBefore - the width before resizing.
heightBefore - the height before resizing.

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 simply delegates to the painter, if not null.


paint

public void paint(java.awt.Graphics g)
Paints this canvas. Overrides the base-class implementation. Handles locking, unlocking, and front-back buffer swapping for the OpenGL context constructed for this canvas. Calls the method glPaint() and, as necessary, the methods glInit() and glResize(int,int,int,int).

Overrides:
paint in class java.awt.Canvas
Parameters:
g - the graphics.

update

public void update(java.awt.Graphics g)
Updates this canvas. Overrides the base-class implementation. This implementation simply calls paint(Graphics).

Overrides:
update in class java.awt.Canvas
Parameters:
g - the graphics.

finalize

protected void finalize()
                 throws java.lang.Throwable
Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable