javax.media.opengl

## Interface GLAnimatorControl

- All Superinterfaces:
    FPSCounter

      public interface GLAnimatorControl
      extends FPSCounter

  An animator control interface, which implementation may drive a `GLAutoDrawable` animation.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `GLAnimatorControl.UncaughtExceptionHandler` A `registered` `GLAnimatorControl.UncaughtExceptionHandler` instance is invoked when an `animator` abruptly `stops` due to an uncaught exception from one of its `GLAutoDrawable`s.

  - ### Field Summary

    - ### Fields inherited from interface javax.media.opengl.FPSCounter

      `DEFAULT_FRAMES_PER_INTERVAL`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(GLAutoDrawable drawable)` Adds a drawable to this animator's list of rendering drawables.
    `Thread` | `getThread()`
    `GLAnimatorControl.UncaughtExceptionHandler` | `getUncaughtExceptionHandler()` Returns the `GLAnimatorControl.UncaughtExceptionHandler` invoked when this `animator` abruptly `stops` due to an uncaught exception from one of its `GLAutoDrawable`s.
    `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` `GLAutoDrawable`s.
    `boolean` | `isStarted()` Indicates whether this animator has been `started`.
    `boolean` | `pause()` Pauses this animator.
    `void` | `remove(GLAutoDrawable drawable)` Removes a drawable from the animator's list of rendering drawables.
    `boolean` | `resume()` Resumes animation if paused.
    `void` | `setUncaughtExceptionHandler(GLAnimatorControl.UncaughtExceptionHandler handler)` Set the handler invoked when this `animator` abruptly `stops` due to an uncaught exception from one of its `GLAutoDrawable`s.
    `boolean` | `start()` Starts this animator, if not running.
    `boolean` | `stop()` Stops this animator.

    - ### Methods inherited from interface javax.media.opengl.FPSCounter

      `getFPSStartTime, getLastFPS, getLastFPSPeriod, getLastFPSUpdateTime, getTotalFPS, getTotalFPSDuration, getTotalFPSFrames, getUpdateFPSFrames, resetFPSCounter, setUpdateFPSFrames`

- - ### Method Detail

    - #### isStarted

          boolean isStarted()

      Indicates whether this animator has been `started`.
      See Also:
        `start()`, `stop()`, `isPaused()`, `pause()`, `resume()`

    - #### isAnimating

          boolean isAnimating()

      Indicates whether this animator `is started` and `is not paused`.
      See Also:
        `start()`, `stop()`, `pause()`, `resume()`

    - #### isPaused

          boolean isPaused()

      Indicates whether this animator `is started` and either `manually paused` or paused automatically due to no `added` `GLAutoDrawable`s.
      See Also:
        `start()`, `stop()`, `pause()`, `resume()`

    - #### getThread

          Thread getThread()

      Returns:
        The animation thread if running, otherwise null.
      See Also:
        `start()`, `stop()`

    - #### start

          boolean start()

      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:
        `stop()`, `isAnimating()`, `isPaused()`, `getThread()`

    - #### stop

          boolean stop()

      Stops 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:
        true is stopped due to this call, otherwise false, ie not started or unable to stop.
      See Also:
        `start()`, `isAnimating()`, `getThread()`

    - #### pause

          boolean pause()

      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:
        `resume()`, `isAnimating()`

    - #### resume

          boolean resume()

      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:
        `pause()`, `isAnimating()`

    - #### add

          void add(GLAutoDrawable drawable)

      Adds a drawable to this animator's list of rendering drawables.

      This allows the animator thread to become `animating`, in case the first drawable is added and the animator `is started`.

      Parameters:
        `drawable` - the drawable to be added
      Throws:
        `IllegalArgumentException` - if drawable was already added to this animator

    - #### remove

          void remove(GLAutoDrawable drawable)

      Removes a drawable from the animator's list of rendering drawables.

      This method should get called in case a drawable becomes invalid, and will not be recovered.

      This allows the animator thread to become `not animating`, in case the last drawable has been removed.

      Parameters:
        `drawable` - the drawable to be removed
      Throws:
        `IllegalArgumentException` - if drawable was not added to this animator

    - #### getUncaughtExceptionHandler

          GLAnimatorControl.UncaughtExceptionHandler getUncaughtExceptionHandler()

      Returns the `GLAnimatorControl.UncaughtExceptionHandler` invoked when this `animator` abruptly `stops` due to an uncaught exception from one of its `GLAutoDrawable`s.

      Default is `null`.

      Since:
        2.2

    - #### setUncaughtExceptionHandler

          void setUncaughtExceptionHandler(GLAnimatorControl.UncaughtExceptionHandler handler)

      Set the handler invoked when this `animator` abruptly `stops` due to an uncaught exception from one of its `GLAutoDrawable`s.
      Parameters:
        `handler` - the `GLAnimatorControl.UncaughtExceptionHandler` to use as this `animator`'s uncaught exception handler. Pass `null` to unset the handler.
      Since:
        2.2
      See Also:
        `GLAnimatorControl.UncaughtExceptionHandler.uncaughtException(GLAnimatorControl, GLAutoDrawable, Throwable)`

Copyright 2010 JogAmp Community.