Align menu animation to JPCSP (linear tween); capture crashes to log
JPCSP's AbstractAnimAction interpolates linearly and ignores accelMode, so match that instead of adding easing. Log any uncaught exception from all threads (video/audio/animator/timer/FX) to /tmp/umd-crash.log to diagnose the Scenes/Languages crash.
This commit is contained in:
@@ -49,10 +49,7 @@ public final class Tween {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static float ease(float p, int accelMode) {
|
private static float ease(float p, int accelMode) {
|
||||||
return switch (accelMode) {
|
// JPCSP interpolates linearly and ignores accelMode (see AbstractAnimAction).
|
||||||
case EASE_IN -> p * p;
|
return p;
|
||||||
case EASE_OUT -> 1f - (1f - p) * (1f - p);
|
|
||||||
default -> p;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -492,6 +492,15 @@ public final class PlayerApp extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
// Capture any uncaught exception (video/audio/animator/timer/FX threads) to a file.
|
||||||
|
Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> {
|
||||||
|
try (java.io.PrintWriter writer = new java.io.PrintWriter(new java.io.FileWriter("/tmp/umd-crash.log", true))) {
|
||||||
|
writer.println("=== Uncaught in thread " + thread.getName() + " ===");
|
||||||
|
throwable.printStackTrace(writer);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
throwable.printStackTrace();
|
||||||
|
});
|
||||||
launch(args);
|
launch(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user