summaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/opengl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-11-25 03:02:26 +0100
committerSven Gothel <[email protected]>2010-11-25 03:02:26 +0100
commit20dd60820257af9aef8ff3eeab1c03736252e284 (patch)
treead0cdd1e234ceb3dc7a8800d315326de5b9fcdb7 /src/jogl/classes/com/jogamp/opengl
parentc62a07ceeafec94c4327b8db2d2dc359043b2f2b (diff)
Relax GLAnimatorControl, ie remove fail fast for start()/stop(), return (boolean)success instead.
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/Animator.java11
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java10
2 files changed, 13 insertions, 8 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/Animator.java b/src/jogl/classes/com/jogamp/opengl/util/Animator.java
index 31abe099d..311b4141f 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/Animator.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/Animator.java
@@ -253,9 +253,9 @@ public class Animator extends AnimatorBase {
}
}
- public synchronized void start() {
+ public synchronized boolean start() {
if ( isStartedImpl() ) {
- throw new GLException("Start: Already running (started "+isStartedImpl()+" (false))");
+ return false;
}
if (runnable == null) {
runnable = new MainLoop();
@@ -271,7 +271,9 @@ public class Animator extends AnimatorBase {
thread.setDaemon(true); // don't stop JVM from shutdown ..
thread.start();
finishLifecycleAction(waitForStartedCondition);
+ return true;
}
+
private class WaitForStartedCondition implements Condition {
public boolean result() {
return !isStartedImpl() || (!drawablesEmpty && !isAnimating) ;
@@ -279,13 +281,14 @@ public class Animator extends AnimatorBase {
}
Condition waitForStartedCondition = new WaitForStartedCondition();
- public synchronized void stop() {
+ public synchronized boolean stop() {
if ( !isStartedImpl() ) {
- throw new GLException("Stop: Not running (started "+isStartedImpl()+" (true))");
+ return false;
}
stopIssued = true;
notifyAll();
finishLifecycleAction(waitForStoppedCondition);
+ return true;
}
private class WaitForStoppedCondition implements Condition {
public boolean result() {
diff --git a/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java b/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java
index 6bac1646b..741d4461b 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java
@@ -137,9 +137,9 @@ public class FPSAnimator extends AnimatorBase {
}
}
- public synchronized void start() {
+ public synchronized boolean start() {
if (timer != null) {
- throw new GLException("Already started");
+ return false;
}
stateSync.lock();
try {
@@ -148,14 +148,15 @@ public class FPSAnimator extends AnimatorBase {
} finally {
stateSync.unlock();
}
+ return true;
}
/** 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. */
- public synchronized void stop() {
+ public synchronized boolean stop() {
if (timer == null) {
- throw new GLException("Already stopped");
+ return false;
}
stateSync.lock();
try {
@@ -168,6 +169,7 @@ public class FPSAnimator extends AnimatorBase {
} finally {
stateSync.unlock();
}
+ return true;
}
public synchronized boolean pause() {