com.hermetica.util3d
Class FrameRateComponent

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Canvas
              |
              +--com.hermetica.util3d.FrameRateComponent

public class FrameRateComponent
extends java.awt.Canvas

AWT Component that can be added to any application to report the time taken between a start and stop operation. For example, it can be used quite successfully to calculate frame rates for 3d rendering applications.

Version:
$Id: FrameRateComponent.java,v 1.4 1998/02/23 21:27:28 descarte Exp descarte $
Author:
Alligator Descartes <descarte@hermetica.com>
See Also:
Serialized Form

Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Constructor Summary
FrameRateComponent()
          Creates a new FrameRateComponent object with the default settings of a high watermark of 10fps, low watermark of 0, sample array of size 16 and output component being GUI
FrameRateComponent(float highWatermark, float lowWatermark, int sampleSize, java.io.PrintStream stream)
          Creates a new FrameRateComponent object with non-default settings
 
Method Summary
 void outputFrameRate(float frameRate, long updateTime)
          Writes the frame rate for this frame onto the output device
 void outputFrameRateAverage(float average, float updateAverage)
          Writes the average frame rate out onto the output device
 void setOutputStream(java.io.PrintStream stream)
          Toggles between output going to the graphical display or a standard PrintStream.
 void setSummaryOnly(boolean summaryOnly)
          Specifies whether we should print each frame rate or just the summary
 void startSample()
          Start sampling by taking the current time in milliseconds
 void stopSample()
          Complete sample and calculate current frame rate
 
Methods inherited from class java.awt.Canvas
addNotify, paint
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getName, getParent, getPeer, getPreferredSize, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, 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, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, update, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameRateComponent

public FrameRateComponent()
Creates a new FrameRateComponent object with the default settings of a high watermark of 10fps, low watermark of 0, sample array of size 16 and output component being GUI

FrameRateComponent

public FrameRateComponent(float highWatermark,
                          float lowWatermark,
                          int sampleSize,
                          java.io.PrintStream stream)
Creates a new FrameRateComponent object with non-default settings
Method Detail

startSample

public void startSample()
Start sampling by taking the current time in milliseconds

stopSample

public void stopSample()
Complete sample and calculate current frame rate

setSummaryOnly

public void setSummaryOnly(boolean summaryOnly)
Specifies whether we should print each frame rate or just the summary

outputFrameRate

public void outputFrameRate(float frameRate,
                            long updateTime)
Writes the frame rate for this frame onto the output device

outputFrameRateAverage

public void outputFrameRateAverage(float average,
                                   float updateAverage)
Writes the average frame rate out onto the output device

setOutputStream

public void setOutputStream(java.io.PrintStream stream)
Toggles between output going to the graphical display or a standard PrintStream. If a null value is supplied for the PrintStream argument, we take that as using the graphical display.