Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectBackup/Java/BowlerStudio/src/main/java/com/neuronrobotics/bowlerstudio/SplashManager.java
2022-09-04 12:45:01 +02:00

91 lines
2.2 KiB
Java

package com.neuronrobotics.bowlerstudio;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics2D;
import com.neuronrobotics.bowlerstudio.assets.StudioBuildInfo;
import javafx.scene.image.Image;
public class SplashManager {
private static Graphics2D splashGraphics;
private static boolean loadFirst = true;
private static PsudoSplash psudo = null;
public static void closeSplash() {
if(isVisableSplash())
closeSplashLocal();
}
private static void closeSplashLocal() {
if (BowlerStudio.splash != null) {
BowlerStudio.splash.close();
splashGraphics = null;
return;
}
psudo.closeSplashLocal();
}
private static boolean isVisableSplash() {
if (BowlerStudio.splash != null)
return BowlerStudio.splash.isVisible();
return psudo.isVisableSplash();
}
private static void updateSplash() {
if (BowlerStudio.splash != null) {
BowlerStudio.splash.update();
return;
}
psudo.updateSplash();
}
public static void renderSplashFrame(int frame, String message) {
if (loadFirst) {
loadFirst = false;
initialize();
}
String string = frame + "% " + message;
System.err.println(" Splash Rendering " + frame + " " + message);
if (psudo != null) {
psudo.setMessage(string);
updateSplash();
}else if (splashGraphics != null && isVisableSplash()) {
splashGraphics.setComposite(AlphaComposite.Clear);
splashGraphics.fillRect(65, 270, 200, 40);
splashGraphics.setPaintMode();
splashGraphics.setColor(Color.WHITE);
splashGraphics.drawString(string, 65, 280);
// Platform.runLater(() -> {
updateSplash();
// });
}
}
private static void initialize() {
if (BowlerStudio.splash != null) {
try {
splashGraphics = BowlerStudio.splash.createGraphics();
} catch (IllegalStateException e) {
}
} else {
System.err.println("No splash screen availible!");
psudo = new PsudoSplash();
}
if (psudo == null)
if (splashGraphics != null && isVisableSplash()) {
splashGraphics.setComposite(AlphaComposite.Clear);
splashGraphics.fillRect(65, 270, 200, 40);
splashGraphics.setPaintMode();
splashGraphics.setColor(Color.WHITE);
splashGraphics.drawString(StudioBuildInfo.getVersion(), 65, 45);
updateSplash();
}
}
}