com.jogamp.opengl.util
Class FPSAnimator

java.lang.Object
  extended by com.jogamp.opengl.util.AnimatorBase
      extended by com.jogamp.opengl.util.FPSAnimator
All Implemented Interfaces:
FPSCounter, GLAnimatorControl

public class FPSAnimator
extends AnimatorBase

An Animator subclass which attempts to achieve a target frames-per-second rate to avoid using all CPU time. The target FPS is only an estimate and is not guaranteed.

The Animator execution thread does not run as a daemon thread, so it is able to keep an application from terminating.
Call stop() to terminate the animation and it's execution thread.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.jogamp.opengl.util.AnimatorBase
AnimatorBase.AnimatorImpl
 
Field Summary
 
Fields inherited from class com.jogamp.opengl.util.AnimatorBase
MODE_EXPECT_AWT_RENDERING_THREAD
 
Fields inherited from interface javax.media.opengl.FPSCounter
DEFAULT_FRAMES_PER_INTERVAL
 
Constructor Summary
FPSAnimator(GLAutoDrawable drawable, int fps)
          Creates an FPSAnimator with a given target frames-per-second value and an initial drawable to animate.
FPSAnimator(GLAutoDrawable drawable, int fps, boolean scheduleAtFixedRate)
          Creates an FPSAnimator with a given target frames-per-second value, an initial drawable to animate, and a flag indicating whether to use fixed-rate scheduling.
FPSAnimator(int fps)
          Creates an FPSAnimator with a given target frames-per-second value.
FPSAnimator(int fps, boolean scheduleAtFixedRate)
          Creates an FPSAnimator with a given target frames-per-second value and a flag indicating whether to use fixed-rate scheduling.
 
Method Summary
 int getFPS()
           
 boolean isAnimating()
          Indicates whether this animator is started and is not paused.
 boolean isPaused()
          Indicates whether this animator is started and either manually paused or paused automatically due to no added GLAutoDrawables.
 boolean pause()
          Pauses this animator.
 boolean resume()
          Resumes animation if paused.
 void setFPS(int fps)
           
 boolean start()
          Starts this animator, if not running.
 boolean stop()
          Stops this FPSAnimator.
 
Methods inherited from class com.jogamp.opengl.util.AnimatorBase
add, getExclusiveContextThread, getFPSStartTime, getLastFPS, getLastFPSPeriod, getLastFPSUpdateTime, getModeBits, getThread, getTotalFPS, getTotalFPSDuration, getTotalFPSFrames, getUpdateFPSFrames, isExclusiveContextEnabled, isStarted, remove, resetFPSCounter, setExclusiveContext, setExclusiveContext, setIgnoreExceptions, setModeBits, setPrintExceptions, setUpdateFPSFrames, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FPSAnimator

public FPSAnimator(int fps)
Creates an FPSAnimator with a given target frames-per-second value. Equivalent to FPSAnimator(null, fps).


FPSAnimator

public FPSAnimator(int fps,
                   boolean scheduleAtFixedRate)
Creates an FPSAnimator with a given target frames-per-second value and a flag indicating whether to use fixed-rate scheduling. Equivalent to FPSAnimator(null, fps, scheduleAtFixedRate).


FPSAnimator

public FPSAnimator(GLAutoDrawable drawable,
                   int fps)
Creates an FPSAnimator with a given target frames-per-second value and an initial drawable to animate. Equivalent to FPSAnimator(null, fps, false).


FPSAnimator

public FPSAnimator(GLAutoDrawable drawable,
                   int fps,
                   boolean scheduleAtFixedRate)
Creates an FPSAnimator with a given target frames-per-second value, an initial drawable to animate, and a flag indicating whether to use fixed-rate scheduling.

Method Detail

setFPS

public final void setFPS(int fps)
                  throws GLException
Parameters:
fps -
Throws:
GLException - if the animator has already been started

getFPS

public final int getFPS()

isAnimating

public final boolean isAnimating()
Description copied from interface: GLAnimatorControl
Indicates whether this animator is started and is not paused.

See Also:
GLAnimatorControl.start(), GLAnimatorControl.stop(), GLAnimatorControl.pause(), GLAnimatorControl.resume()

isPaused

public final boolean isPaused()
Description copied from interface: GLAnimatorControl
Indicates whether this animator is started and either manually paused or paused automatically due to no added GLAutoDrawables.

See Also:
GLAnimatorControl.start(), GLAnimatorControl.stop(), GLAnimatorControl.pause(), GLAnimatorControl.resume()

start

public boolean start()
Description copied from interface: GLAnimatorControl
Starts this animator, if not running.

In most situations this method blocks until completion, except when called from the animation thread itself or in some cases from an implementation-internal thread like the AWT event queue thread.

Note that an animator w/o added drawables will be paused automatically.

If started, all counters (time, frames, ..) are reset to zero.

Returns:
true is started due to this call, otherwise false, ie started already or unable to start.
See Also:
GLAnimatorControl.stop(), GLAnimatorControl.isAnimating(), GLAnimatorControl.isPaused(), GLAnimatorControl.getThread()

stop

public boolean stop()
Stops this FPSAnimator. Due to the implementation of the FPSAnimator it is not guaranteed that the FPSAnimator will be completely stopped by the time this method returns.

Returns:
true is stopped due to this call, otherwise false, ie not started or unable to stop.
See Also:
GLAnimatorControl.start(), GLAnimatorControl.isAnimating(), GLAnimatorControl.getThread()

pause

public boolean pause()
Description copied from interface: GLAnimatorControl
Pauses this animator.

In most situations this method blocks until completion, except when called from the animation thread itself or in some cases from an implementation-internal thread like the AWT event queue thread.

Returns:
false if not started, already paused or failed to pause, otherwise true
See Also:
GLAnimatorControl.resume(), GLAnimatorControl.isAnimating()

resume

public boolean resume()
Description copied from interface: GLAnimatorControl
Resumes animation if paused.

In most situations this method blocks until completion, except when called from the animation thread itself or in some cases from an implementation-internal thread like the AWT event queue thread.

If resumed, all counters (time, frames, ..) are reset to zero.

Returns:
false if not started, not paused or unable to resume, otherwise true
See Also:
GLAnimatorControl.pause(), GLAnimatorControl.isAnimating()


Copyright 2010 JogAmp Community.