From ff7dd2178818fb7d4d891dcda64e5c0d223270f3 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Wed, 27 Feb 2019 23:29:03 +0100 Subject: [PATCH] More appropriate class names --- .../main/java/it/cavallium/warppi/Engine.java | 146 ----------------- .../java/it/cavallium/warppi/Platform.java | 17 +- .../java/it/cavallium/warppi/StaticVars.java | 2 - .../main/java/it/cavallium/warppi/WarpPI.java | 147 ++++++++++++++++++ .../java/it/cavallium/warppi/boot/Boot.java | 13 +- .../it/cavallium/warppi/device/CacheFile.java | 4 +- .../{HardwareDevice.java => Device.java} | 12 +- .../cavallium/warppi/device/InputManager.java | 20 --- .../warppi/device/PIHardwareDisplay.java | 24 --- .../warppi/device/chip/ParallelToSerial.java | 18 +-- .../warppi/device/chip/SerialToParallel.java | 12 +- .../device/display/BacklightOutputDevice.java | 16 ++ .../device/display/DisplayOutputDevice.java | 8 + .../{graphicengine => display}/RAWFont.java | 8 +- .../device/input/HardwareKeyboardDevice.java | 5 + .../warppi/device/input/InputManager.java | 22 +++ .../warppi/device/{ => input}/Keyboard.java | 96 ++++++------ .../device/{ => input}/KeyboardAWTValues.java | 2 +- .../device/input/KeyboardInputDevice.java | 5 + .../{ => input}/KeyboardJogampValues.java | 2 +- .../{ => input}/PIHardwareTouchDevice.java | 22 +-- .../TouchInputDevice.java} | 4 +- .../warppi/extra/mario/MarioScreen.java | 98 ++++++------ .../warppi/extra/tetris/TetrisScreen.java | 14 +- .../cavallium/warppi/gui/CalculatorHUD.java | 28 ++-- .../cavallium/warppi/gui/DisplayManager.java | 129 +++++---------- .../cavallium/warppi/gui/GUIErrorMessage.java | 4 +- .../cavallium/warppi/gui/HardwareDisplay.java | 9 -- .../warppi/gui/expression/ExtraMenu.java | 4 +- .../warppi/gui/expression/blocks/Block.java | 4 +- .../gui/expression/blocks/BlockChar.java | 4 +- .../gui/expression/blocks/BlockContainer.java | 10 +- .../gui/expression/blocks/BlockDivision.java | 4 +- .../blocks/BlockExponentialNotation.java | 4 +- .../gui/expression/blocks/BlockLogarithm.java | 4 +- .../blocks/BlockParenthesisAbstract.java | 4 +- .../gui/expression/blocks/BlockPower.java | 4 +- .../gui/expression/blocks/BlockPower2.java | 4 +- .../expression/blocks/BlockSquareRoot.java | 4 +- .../gui/expression/blocks/BlockUndefined.java | 4 +- .../gui/expression/blocks/BlockVariable.java | 10 +- .../expression/containers/InputContainer.java | 4 +- .../containers/OutputContainer.java | 4 +- .../gui/graphicengine/GraphicEngine.java | 11 +- .../warppi/gui/graphicengine/Skin.java | 6 +- .../graphicengine/impl/common/PngSkin.java | 8 +- .../graphicengine/impl/common/RFTFont.java | 16 +- .../graphicengine/impl/nogui/NoGuiEngine.java | 17 +- .../screens/ChooseVariableValueScreen.java | 30 ++-- .../gui/screens/KeyboardDebugScreen.java | 18 +-- .../warppi/gui/screens/LoadingScreen.java | 24 +-- .../warppi/gui/screens/MathInputScreen.java | 74 ++++----- .../warppi/gui/screens/SolveForXScreen.java | 14 +- .../warppi/math/parser/MathParser.java | 22 +-- .../warppi/math/rules/RulesManager.java | 78 +++++----- .../warppi/math/solver/MathSolver.java | 32 ++-- .../java/it/cavallium/warppi/util/Utils.java | 16 +- .../warppi/desktop/DesktopImageReader.java | 2 +- .../warppi/desktop/DesktopPlatform.java | 56 ++++--- .../graphicengine/impl/swing/SwingEngine.java | 6 +- .../graphicengine/impl/swing/SwingFont.java | 4 +- .../graphicengine/impl/swing/SwingSkin.java | 4 +- .../graphicengine/impl/swing/SwingWindow.java | 20 +-- .../graphicengine/impl/jogl/JOGLEngine.java | 4 +- .../gui/graphicengine/impl/jogl/JOGLFont.java | 20 +-- .../graphicengine/impl/jogl/JOGLRenderer.java | 6 +- .../gui/graphicengine/impl/jogl/JOGLSkin.java | 12 +- .../graphicengine/impl/jogl/NEWTWindow.java | 24 +-- .../impl/framebuffer/FBFont.java | 4 +- .../impl/framebuffer/FBSkin.java | 4 +- .../warppi/hardware/HardwarePlatform.java | 13 +- .../gui/graphicengine/html/HtmlEngine.java | 12 +- .../gui/graphicengine/html/HtmlFont.java | 4 +- .../gui/graphicengine/html/HtmlSkin.java | 10 +- .../cavallium/warppi/teavm/TeaVMPlatform.java | 5 +- 75 files changed, 765 insertions(+), 770 deletions(-) delete mode 100644 core/src/main/java/it/cavallium/warppi/Engine.java create mode 100644 core/src/main/java/it/cavallium/warppi/WarpPI.java rename core/src/main/java/it/cavallium/warppi/device/{HardwareDevice.java => Device.java} (59%) delete mode 100644 core/src/main/java/it/cavallium/warppi/device/InputManager.java delete mode 100644 core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java create mode 100644 core/src/main/java/it/cavallium/warppi/device/display/BacklightOutputDevice.java create mode 100644 core/src/main/java/it/cavallium/warppi/device/display/DisplayOutputDevice.java rename core/src/main/java/it/cavallium/warppi/device/{graphicengine => display}/RAWFont.java (93%) create mode 100644 core/src/main/java/it/cavallium/warppi/device/input/HardwareKeyboardDevice.java create mode 100644 core/src/main/java/it/cavallium/warppi/device/input/InputManager.java rename core/src/main/java/it/cavallium/warppi/device/{ => input}/Keyboard.java (88%) rename core/src/main/java/it/cavallium/warppi/device/{ => input}/KeyboardAWTValues.java (99%) create mode 100644 core/src/main/java/it/cavallium/warppi/device/input/KeyboardInputDevice.java rename core/src/main/java/it/cavallium/warppi/device/{ => input}/KeyboardJogampValues.java (96%) rename core/src/main/java/it/cavallium/warppi/device/{ => input}/PIHardwareTouchDevice.java (76%) rename core/src/main/java/it/cavallium/warppi/device/{HardwareTouchDevice.java => input/TouchInputDevice.java} (76%) delete mode 100644 core/src/main/java/it/cavallium/warppi/gui/HardwareDisplay.java diff --git a/core/src/main/java/it/cavallium/warppi/Engine.java b/core/src/main/java/it/cavallium/warppi/Engine.java deleted file mode 100644 index ef863750..00000000 --- a/core/src/main/java/it/cavallium/warppi/Engine.java +++ /dev/null @@ -1,146 +0,0 @@ -package it.cavallium.warppi; - -import java.io.IOException; - -import it.cavallium.warppi.Platform.ConsoleUtils; -import it.cavallium.warppi.boot.StartupArguments; -import it.cavallium.warppi.device.HardwareDevice; -import it.cavallium.warppi.device.HardwareTouchDevice; -import it.cavallium.warppi.device.InputManager; -import it.cavallium.warppi.device.Keyboard; -import it.cavallium.warppi.flow.BehaviorSubject; -import it.cavallium.warppi.flow.Observable; -import it.cavallium.warppi.gui.DisplayManager; -import it.cavallium.warppi.gui.HUD; -import it.cavallium.warppi.gui.HardwareDisplay; -import it.cavallium.warppi.gui.screens.Screen; -import it.cavallium.warppi.util.ClassUtils; - -public class Engine { - public static final Engine INSTANCE = new Engine(); - private static Platform platform; - private static boolean running = false; - private static BehaviorSubject loadPhase = BehaviorSubject.create(); - private final BehaviorSubject loaded = BehaviorSubject.create(false); - private HardwareDevice hardwareDevice; - - private Engine() {} - - /** - * Start an instance of the calculator. - * - * @param platform - * Platform implementation - * @param screen - * Default screen to show at startup - * @param disp - * Hardware display - * @param hud - * Head-up display - * @param args - * Startup arguments - * @throws InterruptedException - * @throws IOException - */ - public static void start(final Platform platform, final Screen screen, final HardwareDisplay disp, - final HardwareTouchDevice touchdevice, final HUD hud, final StartupArguments args) - throws InterruptedException, IOException { - if (Engine.running) { - throw new RuntimeException("Already running!"); - } else { - Engine.running = true; - Engine.INSTANCE.startInstance(platform, screen, disp, touchdevice, hud, args); - } - } - - private void startInstance(final Platform platform, final Screen screen, final HardwareDisplay disp, - final HardwareTouchDevice touchdevice, final HUD hud, final StartupArguments args) - throws InterruptedException, IOException { - Engine.platform = platform; - platform.getConsoleUtils().out().println("WarpPI Calculator"); - initializeEnvironment(args); - - final Thread currentThread = Thread.currentThread(); - currentThread.setPriority(Thread.MAX_PRIORITY); - Engine.getPlatform().setThreadName(currentThread, "Main thread"); - - final DisplayManager dm = new DisplayManager(disp, hud, screen, "WarpPI Calculator by Andrea Cavalli (@Cavallium)"); - final Keyboard k = new Keyboard(); - final InputManager im = new InputManager(k, touchdevice); - hardwareDevice = new HardwareDevice(dm, im); - - hardwareDevice.setup(() -> Engine.loadPhase.onNext(new LoadingStatus())); - } - - private void onShutdown() { - Engine.platform.getConsoleUtils().out().println(1, "Shutdown..."); - beforeShutdown(); - Engine.platform.getConsoleUtils().out().println(1, ""); - Engine.platform.getConsoleUtils().out().println(1, "Closed."); - Engine.getPlatform().exit(0); - } - - private void initializeEnvironment(final StartupArguments args) throws IOException { - ClassUtils.classLoader = this.getClass(); - StaticVars.startupArguments = args; - StaticVars.debugWindow2x = args.isZoomed(); - if (args.isVerboseLoggingEnabled() || args.isDebugEnabled()) { - StaticVars.outputLevel = ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE; - } - Engine.platform.getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, args); - checkDeviceType(); - if (args.isRaspberryModeAllowed() == false) { - Engine.getPlatform().setRunningOnRaspberry(false); - } - if (Engine.getPlatform().isRunningOnRaspberry()) { - Engine.getPlatform().getGpio().wiringPiSetupPhys(); - Engine.getPlatform().getGpio().pinMode(12, Engine.getPlatform().getGpio().valuePwmOutput()); - } else { - StaticVars.screenPos = new int[] { 0, 0 }; - if (Engine.getPlatform().isJavascript() == false) { - Engine.getPlatform().getSettings().setDebugEnabled(true); - } - } - } - - private void checkDeviceType() { - // TODO Auto-generated method stub - - } - - public void beforeShutdown() { - Keyboard.stopKeyboard(); - } - - public Observable isLoaded() { - return loaded; - } - - public Observable getLoadPhase() { - return Engine.loadPhase; - } - - public HardwareDevice getHardwareDevice() { - return hardwareDevice; - } - - public static Platform getPlatform() { - return Engine.platform; - } - - public static class LoadingStatus { - protected LoadingStatus() { - - } - - public void done() { - Engine.INSTANCE.loaded.onNext(true); - Engine.INSTANCE.hardwareDevice.getDisplayManager().waitForExit(); - Engine.INSTANCE.onShutdown(); - } - - public void failed() { - Engine.INSTANCE.onShutdown(); - } - } -} diff --git a/core/src/main/java/it/cavallium/warppi/Platform.java b/core/src/main/java/it/cavallium/warppi/Platform.java index 47a4c906..65b92df8 100644 --- a/core/src/main/java/it/cavallium/warppi/Platform.java +++ b/core/src/main/java/it/cavallium/warppi/Platform.java @@ -9,7 +9,10 @@ import java.net.URL; import java.util.List; import java.util.Map; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.BacklightOutputDevice; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.KeyboardInputDevice; +import it.cavallium.warppi.device.input.TouchInputDevice; import it.cavallium.warppi.util.Error; public interface Platform { @@ -52,10 +55,14 @@ public interface Platform { URLClassLoader newURLClassLoader(URL[] urls); - Map getEnginesList(); - - GraphicEngine getEngine(String string) throws NullPointerException; + TouchInputDevice getTouchInputDevice(); + + KeyboardInputDevice getKeyboardInputDevice(); + + DisplayOutputDevice getDisplayOutputDevice(); + BacklightOutputDevice getBacklightOutputDevice(); + void throwNewExceptionInInitializerError(String text); String[] stacktraceToString(Error e); @@ -97,7 +104,7 @@ public interface Platform { Object getBoardType(); } - + public interface ConsoleUtils { int OUTPUTLEVEL_NODEBUG = 0; int OUTPUTLEVEL_DEBUG_MIN = 1; diff --git a/core/src/main/java/it/cavallium/warppi/StaticVars.java b/core/src/main/java/it/cavallium/warppi/StaticVars.java index 55a427d2..707d0ddf 100644 --- a/core/src/main/java/it/cavallium/warppi/StaticVars.java +++ b/core/src/main/java/it/cavallium/warppi/StaticVars.java @@ -11,8 +11,6 @@ import it.cavallium.warppi.flow.Observable; */ public class StaticVars { public static final boolean zoomed = true; - public static int[] screenPos = new int[] { 0, 0 }; - public static final int[] screenSize = new int[] { 480, 320 }; public static int outputLevel = 0; public static boolean debugWindow2x = false; public static BehaviorSubject windowZoom = BehaviorSubject.create(2F); diff --git a/core/src/main/java/it/cavallium/warppi/WarpPI.java b/core/src/main/java/it/cavallium/warppi/WarpPI.java new file mode 100644 index 00000000..206f8200 --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/WarpPI.java @@ -0,0 +1,147 @@ +package it.cavallium.warppi; + +import java.io.IOException; + +import it.cavallium.warppi.Platform.ConsoleUtils; +import it.cavallium.warppi.boot.StartupArguments; +import it.cavallium.warppi.device.Device; +import it.cavallium.warppi.device.display.BacklightOutputDevice; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.InputManager; +import it.cavallium.warppi.device.input.Keyboard; +import it.cavallium.warppi.device.input.KeyboardInputDevice; +import it.cavallium.warppi.device.input.TouchInputDevice; +import it.cavallium.warppi.flow.BehaviorSubject; +import it.cavallium.warppi.flow.Observable; +import it.cavallium.warppi.gui.DisplayManager; +import it.cavallium.warppi.gui.HUD; +import it.cavallium.warppi.gui.HardwareDisplay; +import it.cavallium.warppi.gui.screens.Screen; +import it.cavallium.warppi.util.ClassUtils; + +public class WarpPI { + public static final WarpPI INSTANCE = new WarpPI(); + private static Platform platform; + private static boolean running = false; + private static BehaviorSubject loadPhase = BehaviorSubject.create(); + private final BehaviorSubject loaded = BehaviorSubject.create(false); + private Device device; + + private WarpPI() {} + + /** + * Start an instance of the calculator. + * + * @param platform + * Platform implementation + * @param screen + * Default screen to show at startup + * @param hud + * Head-up display + * @param args + * Startup arguments + * @throws InterruptedException + * @throws IOException + */ + public static void start(final Platform platform, final Screen screen, final HUD hud, final StartupArguments args) + throws InterruptedException, IOException { + if (WarpPI.running) { + throw new RuntimeException("Already running!"); + } else { + WarpPI.running = true; + WarpPI.INSTANCE.startEngine(platform, screen, hud, args); + } + } + + private void startEngine(final Platform platform, final Screen screen, + final HUD hud, final StartupArguments args) + throws InterruptedException, IOException { + WarpPI.platform = platform; + platform.getConsoleUtils().out().println("WarpPI Calculator"); + initializeEnvironment(args); + + final Thread currentThread = Thread.currentThread(); + currentThread.setPriority(Thread.MAX_PRIORITY); + WarpPI.getPlatform().setThreadName(currentThread, "Main thread"); + final DisplayOutputDevice display = platform.getDisplayOutputDevice(); + final BacklightOutputDevice backlight = platform.getBacklightOutputDevice(); + final DisplayManager dm = new DisplayManager(display, backlight, hud, screen, "WarpPI Calculator by Andrea Cavalli (@Cavallium)"); + final KeyboardInputDevice keyboard = platform.getKeyboardInputDevice(); + final TouchInputDevice touchscreen = platform.getTouchInputDevice(); + final InputManager im = new InputManager(keyboard, touchscreen); + device = new Device(dm, im); + + device.setup(() -> WarpPI.loadPhase.onNext(new LoadingStatus())); + } + + private void onShutdown() { + WarpPI.platform.getConsoleUtils().out().println(1, "Shutdown..."); + beforeShutdown(); + WarpPI.platform.getConsoleUtils().out().println(1, ""); + WarpPI.platform.getConsoleUtils().out().println(1, "Closed."); + WarpPI.getPlatform().exit(0); + } + + private void initializeEnvironment(final StartupArguments args) throws IOException { + ClassUtils.classLoader = this.getClass(); + StaticVars.startupArguments = args; + StaticVars.debugWindow2x = args.isZoomed(); + if (args.isVerboseLoggingEnabled() || args.isDebugEnabled()) { + StaticVars.outputLevel = ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE; + } + WarpPI.platform.getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, args); + checkDeviceType(); + if (args.isRaspberryModeAllowed() == false) { + WarpPI.getPlatform().setRunningOnRaspberry(false); + } + if (WarpPI.getPlatform().isRunningOnRaspberry()) { + WarpPI.getPlatform().getGpio().wiringPiSetupPhys(); + WarpPI.getPlatform().getGpio().pinMode(12, WarpPI.getPlatform().getGpio().valuePwmOutput()); + } else { + if (WarpPI.getPlatform().isJavascript() == false) { + WarpPI.getPlatform().getSettings().setDebugEnabled(true); + } + } + } + + private void checkDeviceType() { + // TODO Auto-generated method stub + + } + + public void beforeShutdown() { + Keyboard.stopKeyboard(); + } + + public Observable isLoaded() { + return loaded; + } + + public Observable getLoadPhase() { + return WarpPI.loadPhase; + } + + public Device getHardwareDevice() { + return device; + } + + public static Platform getPlatform() { + return WarpPI.platform; + } + + public static class LoadingStatus { + protected LoadingStatus() { + + } + + public void done() { + WarpPI.INSTANCE.loaded.onNext(true); + WarpPI.INSTANCE.device.getDisplayManager().waitForExit(); + WarpPI.INSTANCE.onShutdown(); + } + + public void failed() { + WarpPI.INSTANCE.onShutdown(); + } + } +} diff --git a/core/src/main/java/it/cavallium/warppi/boot/Boot.java b/core/src/main/java/it/cavallium/warppi/boot/Boot.java index be4a9ea3..ca09e049 100644 --- a/core/src/main/java/it/cavallium/warppi/boot/Boot.java +++ b/core/src/main/java/it/cavallium/warppi/boot/Boot.java @@ -2,11 +2,11 @@ package it.cavallium.warppi.boot; import java.util.Arrays; -import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Engine.LoadingStatus; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.WarpPI.LoadingStatus; import it.cavallium.warppi.Platform; import it.cavallium.warppi.device.PIHardwareDisplay; -import it.cavallium.warppi.device.PIHardwareTouchDevice; +import it.cavallium.warppi.device.input.PIHardwareTouchDevice; import it.cavallium.warppi.gui.CalculatorHUD; import it.cavallium.warppi.gui.screens.LoadingScreen; import it.cavallium.warppi.math.rules.RulesManager; @@ -15,13 +15,14 @@ import it.cavallium.warppi.util.Error; public class Boot { public static void boot(final Platform platform, final String[] args) throws Exception { - Engine.start(platform, new LoadingScreen(), new PIHardwareDisplay(), new PIHardwareTouchDevice(false, false, false), new CalculatorHUD(), Boot.parseStartupArguments(args)); - Engine.INSTANCE.getLoadPhase().subscribe(Boot::loadCalculator); + WarpPI.start(platform, new LoadingScreen(), new CalculatorHUD(), Boot.parseStartupArguments(args)); + WarpPI.INSTANCE.getLoadPhase().subscribe(Boot::loadCalculator); } private static void loadCalculator(final LoadingStatus loading) { try { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setBrightness(0.2f); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setBrightness(0.2f); + //TODO: plugins system: PluginsManager.initialize(); RulesManager.initialize(); RulesManager.warmUp(); loading.done(); diff --git a/core/src/main/java/it/cavallium/warppi/device/CacheFile.java b/core/src/main/java/it/cavallium/warppi/device/CacheFile.java index 48a5eb29..6e45a5d3 100644 --- a/core/src/main/java/it/cavallium/warppi/device/CacheFile.java +++ b/core/src/main/java/it/cavallium/warppi/device/CacheFile.java @@ -8,7 +8,7 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.UUID; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; public class CacheFile { private String path; @@ -22,7 +22,7 @@ public class CacheFile { path = UUID.randomUUID().toString() + ".ser"; } while (new File(path).exists()); try { - File.createTempFile(Engine.getPlatform().getSettings().getCalculatorNameLowercase(), ""); + File.createTempFile(WarpPI.getPlatform().getSettings().getCalculatorNameLowercase(), ""); } catch (final IOException e) { e.printStackTrace(); } diff --git a/core/src/main/java/it/cavallium/warppi/device/HardwareDevice.java b/core/src/main/java/it/cavallium/warppi/device/Device.java similarity index 59% rename from core/src/main/java/it/cavallium/warppi/device/HardwareDevice.java rename to core/src/main/java/it/cavallium/warppi/device/Device.java index 402060d8..b7c62fbc 100644 --- a/core/src/main/java/it/cavallium/warppi/device/HardwareDevice.java +++ b/core/src/main/java/it/cavallium/warppi/device/Device.java @@ -1,13 +1,14 @@ package it.cavallium.warppi.device; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.input.InputManager; import it.cavallium.warppi.gui.DisplayManager; -public class HardwareDevice { +public class Device { private final DisplayManager displayManager; private final InputManager inputManager; - public HardwareDevice(final DisplayManager m, final InputManager im) { + public Device(final DisplayManager m, final InputManager im) { displayManager = m; inputManager = im; } @@ -22,10 +23,9 @@ public class HardwareDevice { public void setup(final Runnable r) { displayManager.initialize(); - inputManager.getKeyboard().startKeyboard(); final Thread t = new Thread(r); - Engine.getPlatform().setThreadDaemon(t, false); - Engine.getPlatform().setThreadName(t, "Main thread (after setup)"); + WarpPI.getPlatform().setThreadDaemon(t, false); + WarpPI.getPlatform().setThreadName(t, "Main thread (after setup)"); t.start(); } diff --git a/core/src/main/java/it/cavallium/warppi/device/InputManager.java b/core/src/main/java/it/cavallium/warppi/device/InputManager.java deleted file mode 100644 index 22e93090..00000000 --- a/core/src/main/java/it/cavallium/warppi/device/InputManager.java +++ /dev/null @@ -1,20 +0,0 @@ -package it.cavallium.warppi.device; - -public class InputManager { - private final Keyboard keyboard; - private final HardwareTouchDevice touchDevice; - - public InputManager(final Keyboard k, final HardwareTouchDevice t) { - keyboard = k; - touchDevice = t; - } - - public Keyboard getKeyboard() { - return keyboard; - } - - public HardwareTouchDevice getTouchDevice() { - return touchDevice; - } - -} diff --git a/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java b/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java deleted file mode 100644 index f652581e..00000000 --- a/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java +++ /dev/null @@ -1,24 +0,0 @@ -package it.cavallium.warppi.device; - -import it.cavallium.warppi.Engine; -import it.cavallium.warppi.gui.HardwareDisplay; - -public class PIHardwareDisplay implements HardwareDisplay { - - @Override - public void initialize() {} - - @Override - public void shutdown() {} - - @Override - public void setBrightness(final double value) { - if (Engine.getPlatform().isRunningOnRaspberry()) { - Engine.getPlatform().getGpio().pwmWrite(12, (int) Math.ceil(value * 1024f)); -// SoftPwm.softPwmWrite(12, (int)(Math.ceil(brightness*10))); - } else { - Engine.getPlatform().getConsoleUtils().out().println(1, "Brightness: " + value); - } - } - -} diff --git a/core/src/main/java/it/cavallium/warppi/device/chip/ParallelToSerial.java b/core/src/main/java/it/cavallium/warppi/device/chip/ParallelToSerial.java index dfc74e6d..115c796a 100644 --- a/core/src/main/java/it/cavallium/warppi/device/chip/ParallelToSerial.java +++ b/core/src/main/java/it/cavallium/warppi/device/chip/ParallelToSerial.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.device.chip; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; public class ParallelToSerial { @@ -18,16 +18,16 @@ public class ParallelToSerial { public boolean[] read() { final boolean[] data = new boolean[8]; - Engine.getPlatform().getGpio().digitalWrite(CLK_INH, Engine.getPlatform().getGpio().valueHigh()); - Engine.getPlatform().getGpio().digitalWrite(SH_LD, Engine.getPlatform().getGpio().valueLow()); - Engine.getPlatform().getGpio().delayMicroseconds(1); - Engine.getPlatform().getGpio().digitalWrite(SH_LD, Engine.getPlatform().getGpio().valueHigh()); - Engine.getPlatform().getGpio().digitalWrite(CLK_INH, Engine.getPlatform().getGpio().valueLow()); + WarpPI.getPlatform().getGpio().digitalWrite(CLK_INH, WarpPI.getPlatform().getGpio().valueHigh()); + WarpPI.getPlatform().getGpio().digitalWrite(SH_LD, WarpPI.getPlatform().getGpio().valueLow()); + WarpPI.getPlatform().getGpio().delayMicroseconds(1); + WarpPI.getPlatform().getGpio().digitalWrite(SH_LD, WarpPI.getPlatform().getGpio().valueHigh()); + WarpPI.getPlatform().getGpio().digitalWrite(CLK_INH, WarpPI.getPlatform().getGpio().valueLow()); for (int i = 7; i >= 0; i--) { - Engine.getPlatform().getGpio().digitalWrite(CLK, Engine.getPlatform().getGpio().valueHigh()); - Engine.getPlatform().getGpio().digitalWrite(CLK, Engine.getPlatform().getGpio().valueLow()); - data[i] = Engine.getPlatform().getGpio().digitalRead(QH) == Engine.getPlatform().getGpio().valueHigh() ? true : false; + WarpPI.getPlatform().getGpio().digitalWrite(CLK, WarpPI.getPlatform().getGpio().valueHigh()); + WarpPI.getPlatform().getGpio().digitalWrite(CLK, WarpPI.getPlatform().getGpio().valueLow()); + data[i] = WarpPI.getPlatform().getGpio().digitalRead(QH) == WarpPI.getPlatform().getGpio().valueHigh() ? true : false; } return data; diff --git a/core/src/main/java/it/cavallium/warppi/device/chip/SerialToParallel.java b/core/src/main/java/it/cavallium/warppi/device/chip/SerialToParallel.java index 4168a1c6..ca97b717 100644 --- a/core/src/main/java/it/cavallium/warppi/device/chip/SerialToParallel.java +++ b/core/src/main/java/it/cavallium/warppi/device/chip/SerialToParallel.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.device.chip; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; public class SerialToParallel { private final int RCK; //Storage register clock pin (latch pin) @@ -17,15 +17,15 @@ public class SerialToParallel { if (data.length != 8) { return; } else { - Engine.getPlatform().getGpio().digitalWrite(RCK, Engine.getPlatform().getGpio().valueLow()); + WarpPI.getPlatform().getGpio().digitalWrite(RCK, WarpPI.getPlatform().getGpio().valueLow()); for (int i = 7; i >= 0; i--) { - Engine.getPlatform().getGpio().digitalWrite(SCK, Engine.getPlatform().getGpio().valueLow()); - Engine.getPlatform().getGpio().digitalWrite(SER, data[i]); - Engine.getPlatform().getGpio().digitalWrite(SCK, Engine.getPlatform().getGpio().valueHigh()); + WarpPI.getPlatform().getGpio().digitalWrite(SCK, WarpPI.getPlatform().getGpio().valueLow()); + WarpPI.getPlatform().getGpio().digitalWrite(SER, data[i]); + WarpPI.getPlatform().getGpio().digitalWrite(SCK, WarpPI.getPlatform().getGpio().valueHigh()); } - Engine.getPlatform().getGpio().digitalWrite(RCK, Engine.getPlatform().getGpio().valueHigh()); + WarpPI.getPlatform().getGpio().digitalWrite(RCK, WarpPI.getPlatform().getGpio().valueHigh()); } } } diff --git a/core/src/main/java/it/cavallium/warppi/device/display/BacklightOutputDevice.java b/core/src/main/java/it/cavallium/warppi/device/display/BacklightOutputDevice.java new file mode 100644 index 00000000..71ed527a --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/device/display/BacklightOutputDevice.java @@ -0,0 +1,16 @@ +package it.cavallium.warppi.device.display; + +public interface BacklightOutputDevice { + + /** + * Set the brightness level + * @param value Value from 0.0 to 1.0 + */ + void setBrightness(double value); + + /** + * Turn on or off the backlight + * @param value true is ON, false is OFF + */ + void setPower(boolean value); +} diff --git a/core/src/main/java/it/cavallium/warppi/device/display/DisplayOutputDevice.java b/core/src/main/java/it/cavallium/warppi/device/display/DisplayOutputDevice.java new file mode 100644 index 00000000..2fa7a93d --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/device/display/DisplayOutputDevice.java @@ -0,0 +1,8 @@ +package it.cavallium.warppi.device.display; + +import it.cavallium.warppi.gui.graphicengine.GraphicEngine; + +public interface DisplayOutputDevice { + public GraphicEngine getGraphicEngine(); + public int[] getDisplaySize(); +} \ No newline at end of file diff --git a/core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java b/core/src/main/java/it/cavallium/warppi/device/display/RAWFont.java similarity index 93% rename from core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java rename to core/src/main/java/it/cavallium/warppi/device/display/RAWFont.java index d344d79a..0500620e 100644 --- a/core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java +++ b/core/src/main/java/it/cavallium/warppi/device/display/RAWFont.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi.device.graphicengine; +package it.cavallium.warppi.device.display; import java.io.File; import java.io.IOException; @@ -7,7 +7,7 @@ import java.net.URL; import java.util.logging.Level; import java.util.logging.Logger; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.util.ClassUtils; import it.cavallium.warppi.util.Utils; @@ -32,7 +32,7 @@ public class RAWFont { loadFont("/font_" + name + ".rft"); } catch (final IOException e) { e.printStackTrace(); - Engine.getPlatform().exit(1); + WarpPI.getPlatform().exit(1); } chars32 = new int[(maxBound - minBound) * charIntCount]; for (int charIndex = 0; charIndex < maxBound - minBound; charIndex++) { @@ -110,7 +110,7 @@ public class RAWFont { } catch (final Exception ex) { ex.printStackTrace(); System.out.println(string); - Engine.getPlatform().exit(-1); + WarpPI.getPlatform().exit(-1); } } } else { diff --git a/core/src/main/java/it/cavallium/warppi/device/input/HardwareKeyboardDevice.java b/core/src/main/java/it/cavallium/warppi/device/input/HardwareKeyboardDevice.java new file mode 100644 index 00000000..5ea6da96 --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/device/input/HardwareKeyboardDevice.java @@ -0,0 +1,5 @@ +package it.cavallium.warppi.device.input; + +public interface HardwareKeyboardDevice { + +} diff --git a/core/src/main/java/it/cavallium/warppi/device/input/InputManager.java b/core/src/main/java/it/cavallium/warppi/device/input/InputManager.java new file mode 100644 index 00000000..df4a3509 --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/device/input/InputManager.java @@ -0,0 +1,22 @@ +package it.cavallium.warppi.device.input; + +public class InputManager { + private final KeyboardInputDevice keyboard; + private final TouchInputDevice touchDevice; + + public InputManager(KeyboardInputDevice keyboard, TouchInputDevice touchscreen) { + this.keyboard = keyboard; + this.touchDevice = touchscreen; + } + + // TODO: manage the keyboard and the touchscreen here! + + public KeyboardInputDevice getKeyboard() { + return keyboard; + } + + public TouchInputDevice getTouchDevice() { + return touchDevice; + } + +} diff --git a/core/src/main/java/it/cavallium/warppi/device/Keyboard.java b/core/src/main/java/it/cavallium/warppi/device/input/Keyboard.java similarity index 88% rename from core/src/main/java/it/cavallium/warppi/device/Keyboard.java rename to core/src/main/java/it/cavallium/warppi/device/input/Keyboard.java index a949d5d1..4f6411b9 100644 --- a/core/src/main/java/it/cavallium/warppi/device/Keyboard.java +++ b/core/src/main/java/it/cavallium/warppi/device/input/Keyboard.java @@ -1,6 +1,6 @@ -package it.cavallium.warppi.device; +package it.cavallium.warppi.device.input; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.device.chip.ParallelToSerial; @@ -40,7 +40,7 @@ public class Keyboard { public synchronized void startKeyboard() { final Thread kt = new Thread(() -> { - if (Engine.getPlatform().isRunningOnRaspberry() == false) { + if (WarpPI.getPlatform().isRunningOnRaspberry() == false) { try { while (true) { if (Keyboard.debugKeyCode != -1) { @@ -55,19 +55,19 @@ public class Keyboard { } } catch (final InterruptedException e) {} } else { - Engine.getPlatform().getGpio().pinMode(Keyboard.CLK_INH_pin, Engine.getPlatform().getGpio().valueOutput()); - Engine.getPlatform().getGpio().pinMode(Keyboard.RCK_pin, Engine.getPlatform().getGpio().valueOutput()); - Engine.getPlatform().getGpio().pinMode(Keyboard.SER_pin, Engine.getPlatform().getGpio().valueOutput()); - Engine.getPlatform().getGpio().pinMode(Keyboard.SH_LD_pin, Engine.getPlatform().getGpio().valueOutput()); - Engine.getPlatform().getGpio().pinMode(Keyboard.SCK_and_CLK_pin, Engine.getPlatform().getGpio().valueOutput()); - Engine.getPlatform().getGpio().pinMode(Keyboard.QH_pin, Engine.getPlatform().getGpio().valueInput()); + WarpPI.getPlatform().getGpio().pinMode(Keyboard.CLK_INH_pin, WarpPI.getPlatform().getGpio().valueOutput()); + WarpPI.getPlatform().getGpio().pinMode(Keyboard.RCK_pin, WarpPI.getPlatform().getGpio().valueOutput()); + WarpPI.getPlatform().getGpio().pinMode(Keyboard.SER_pin, WarpPI.getPlatform().getGpio().valueOutput()); + WarpPI.getPlatform().getGpio().pinMode(Keyboard.SH_LD_pin, WarpPI.getPlatform().getGpio().valueOutput()); + WarpPI.getPlatform().getGpio().pinMode(Keyboard.SCK_and_CLK_pin, WarpPI.getPlatform().getGpio().valueOutput()); + WarpPI.getPlatform().getGpio().pinMode(Keyboard.QH_pin, WarpPI.getPlatform().getGpio().valueInput()); - Engine.getPlatform().getGpio().digitalWrite(Keyboard.CLK_INH_pin, false); - Engine.getPlatform().getGpio().digitalWrite(Keyboard.RCK_pin, false); - Engine.getPlatform().getGpio().digitalWrite(Keyboard.SER_pin, false); - Engine.getPlatform().getGpio().digitalWrite(Keyboard.SH_LD_pin, false); - Engine.getPlatform().getGpio().digitalWrite(Keyboard.SCK_and_CLK_pin, false); - Engine.getPlatform().getGpio().digitalWrite(Keyboard.QH_pin, false); + WarpPI.getPlatform().getGpio().digitalWrite(Keyboard.CLK_INH_pin, false); + WarpPI.getPlatform().getGpio().digitalWrite(Keyboard.RCK_pin, false); + WarpPI.getPlatform().getGpio().digitalWrite(Keyboard.SER_pin, false); + WarpPI.getPlatform().getGpio().digitalWrite(Keyboard.SH_LD_pin, false); + WarpPI.getPlatform().getGpio().digitalWrite(Keyboard.SCK_and_CLK_pin, false); + WarpPI.getPlatform().getGpio().digitalWrite(Keyboard.QH_pin, false); final SerialToParallel chip1 = new SerialToParallel(Keyboard.RCK_pin, Keyboard.SCK_and_CLK_pin /*SCK*/, Keyboard.SER_pin); final ParallelToSerial chip2 = new ParallelToSerial(Keyboard.SH_LD_pin, Keyboard.CLK_INH_pin, Keyboard.QH_pin, Keyboard.SCK_and_CLK_pin/*CLK*/); @@ -98,9 +98,9 @@ public class Keyboard { } } }); - Engine.getPlatform().setThreadName(kt, "Keyboard thread"); + WarpPI.getPlatform().setThreadName(kt, "Keyboard thread"); kt.setPriority(Thread.NORM_PRIORITY + 1); - Engine.getPlatform().setThreadDaemon(kt); + WarpPI.getPlatform().setThreadDaemon(kt); kt.start(); } @@ -290,7 +290,7 @@ public class Keyboard { if (!Keyboard.shift && !Keyboard.alpha) { debugKey(Key.NUM7, released); } else if (Keyboard.shift) { - if (Engine.getPlatform().isRunningOnRaspberry() == false) { + if (WarpPI.getPlatform().isRunningOnRaspberry() == false) { debugKey(Key.DIVIDE, released); } } @@ -680,7 +680,7 @@ public class Keyboard { */ @Deprecated public static boolean isKeyDown(final int row, final int col) { - if (Engine.getPlatform().isRunningOnRaspberry()) { + if (WarpPI.getPlatform().isRunningOnRaspberry()) { return Keyboard.precedentStates[row - 1][col - 1]; } else { return Keyboard.debugKeysDown[row - 1][col - 1]; @@ -892,13 +892,13 @@ public class Keyboard { } public static void stopKeyboard() { - if (Engine.getPlatform().isRunningOnRaspberry()) { - Engine.getPlatform().getGpio().digitalWrite(33, false); - Engine.getPlatform().getGpio().digitalWrite(35, false); - Engine.getPlatform().getGpio().digitalWrite(36, false); - Engine.getPlatform().getGpio().digitalWrite(37, false); - Engine.getPlatform().getGpio().digitalWrite(38, false); - Engine.getPlatform().getGpio().digitalWrite(40, false); + if (WarpPI.getPlatform().isRunningOnRaspberry()) { + WarpPI.getPlatform().getGpio().digitalWrite(33, false); + WarpPI.getPlatform().getGpio().digitalWrite(35, false); + WarpPI.getPlatform().getGpio().digitalWrite(36, false); + WarpPI.getPlatform().getGpio().digitalWrite(37, false); + WarpPI.getPlatform().getGpio().digitalWrite(38, false); + WarpPI.getPlatform().getGpio().digitalWrite(40, false); } } @@ -911,8 +911,8 @@ public class Keyboard { new GUIErrorMessage(ex); } } - if (Engine.INSTANCE.getHardwareDevice().getDisplayManager() != null) { - final Screen scr = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + if (WarpPI.INSTANCE.getHardwareDevice().getDisplayManager() != null) { + final Screen scr = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); boolean refresh = false; boolean scrdone = false; try { @@ -925,38 +925,38 @@ public class Keyboard { } else { switch (k) { case POWEROFF: - Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.destroy(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.destroy(); break; case NONE: break; case BRIGHTNESS_CYCLE: - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new TetrisScreen()); //TODO: rimuovere: prova - Engine.INSTANCE.getHardwareDevice().getDisplayManager().cycleBrightness(false); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new TetrisScreen()); //TODO: rimuovere: prova + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().cycleBrightness(false); refresh = true; break; case BRIGHTNESS_CYCLE_REVERSE: - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new MarioScreen()); //TODO: rimuovere: prova - Engine.INSTANCE.getHardwareDevice().getDisplayManager().cycleBrightness(true); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new MarioScreen()); //TODO: rimuovere: prova + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().cycleBrightness(true); refresh = true; break; case ZOOM_MODE: final float newZoom = StaticVars.windowZoom.getLastValue() % 3 + 1; StaticVars.windowZoom.onNext(newZoom); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Keyboard", "Zoom: " + newZoom); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Keyboard", "Zoom: " + newZoom); // StaticVars.windowZoom = ((StaticVars.windowZoom - 0.5f) % 2f) + 1f; refresh = true; break; case HISTORY_BACK: - Engine.INSTANCE.getHardwareDevice().getDisplayManager().goBack(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().goBack(); refresh = true; break; case HISTORY_FORWARD: - Engine.INSTANCE.getHardwareDevice().getDisplayManager().goForward(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().goForward(); refresh = true; break; case BACK: - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Closing current screen."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().closeScreen(); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Closing current screen."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().closeScreen(); refresh = true; break; default: @@ -966,25 +966,25 @@ public class Keyboard { switch (k) { case SHIFT: if (Keyboard.alpha) { - Engine.getPlatform().alphaChanged(Keyboard.alpha = false); + WarpPI.getPlatform().alphaChanged(Keyboard.alpha = false); } - Engine.getPlatform().shiftChanged(Keyboard.shift = !Keyboard.shift); + WarpPI.getPlatform().shiftChanged(Keyboard.shift = !Keyboard.shift); refresh = true; break; case ALPHA: if (Keyboard.shift) { - Engine.getPlatform().shiftChanged(Keyboard.shift = false); + WarpPI.getPlatform().shiftChanged(Keyboard.shift = false); } - Engine.getPlatform().alphaChanged(Keyboard.alpha = !Keyboard.alpha); + WarpPI.getPlatform().alphaChanged(Keyboard.alpha = !Keyboard.alpha); refresh = true; break; default: if (k != Key.NONE) { if (Keyboard.shift) { - Engine.getPlatform().shiftChanged(Keyboard.shift = false); + WarpPI.getPlatform().shiftChanged(Keyboard.shift = false); } if (Keyboard.alpha) { - Engine.getPlatform().alphaChanged(Keyboard.alpha = false); + WarpPI.getPlatform().alphaChanged(Keyboard.alpha = false); } } break; @@ -993,7 +993,7 @@ public class Keyboard { Keyboard.refreshRequest = true; } } else if (!done) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Key " + k.toString() + " ignored."); + WarpPI.getPlatform().getConsoleUtils().out().println(1, "Key " + k.toString() + " ignored."); } } @@ -1003,8 +1003,8 @@ public class Keyboard { done = Keyboard.additionalListener.onKeyReleased(new KeyReleasedEvent(k)); } boolean refresh = false; - if (Engine.INSTANCE.getHardwareDevice().getDisplayManager() != null) { - final Screen scr = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + if (WarpPI.INSTANCE.getHardwareDevice().getDisplayManager() != null) { + final Screen scr = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); if (scr != null && scr.initialized && scr.onKeyReleased(new KeyReleasedEvent(k))) { refresh = true; } else { @@ -1019,7 +1019,7 @@ public class Keyboard { Keyboard.refreshRequest = true; } } else if (!done) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Key " + k.toString() + " ignored."); + WarpPI.getPlatform().getConsoleUtils().out().println(1, "Key " + k.toString() + " ignored."); } } diff --git a/core/src/main/java/it/cavallium/warppi/device/KeyboardAWTValues.java b/core/src/main/java/it/cavallium/warppi/device/input/KeyboardAWTValues.java similarity index 99% rename from core/src/main/java/it/cavallium/warppi/device/KeyboardAWTValues.java rename to core/src/main/java/it/cavallium/warppi/device/input/KeyboardAWTValues.java index 083d0531..52f35b13 100644 --- a/core/src/main/java/it/cavallium/warppi/device/KeyboardAWTValues.java +++ b/core/src/main/java/it/cavallium/warppi/device/input/KeyboardAWTValues.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi.device; +package it.cavallium.warppi.device.input; public interface KeyboardAWTValues { diff --git a/core/src/main/java/it/cavallium/warppi/device/input/KeyboardInputDevice.java b/core/src/main/java/it/cavallium/warppi/device/input/KeyboardInputDevice.java new file mode 100644 index 00000000..2ba1d910 --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/device/input/KeyboardInputDevice.java @@ -0,0 +1,5 @@ +package it.cavallium.warppi.device.input; + +public interface KeyboardInputDevice { + +} diff --git a/core/src/main/java/it/cavallium/warppi/device/KeyboardJogampValues.java b/core/src/main/java/it/cavallium/warppi/device/input/KeyboardJogampValues.java similarity index 96% rename from core/src/main/java/it/cavallium/warppi/device/KeyboardJogampValues.java rename to core/src/main/java/it/cavallium/warppi/device/input/KeyboardJogampValues.java index 1cfe22e3..954327b1 100644 --- a/core/src/main/java/it/cavallium/warppi/device/KeyboardJogampValues.java +++ b/core/src/main/java/it/cavallium/warppi/device/input/KeyboardJogampValues.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi.device; +package it.cavallium.warppi.device.input; public interface KeyboardJogampValues { diff --git a/core/src/main/java/it/cavallium/warppi/device/PIHardwareTouchDevice.java b/core/src/main/java/it/cavallium/warppi/device/input/PIHardwareTouchDevice.java similarity index 76% rename from core/src/main/java/it/cavallium/warppi/device/PIHardwareTouchDevice.java rename to core/src/main/java/it/cavallium/warppi/device/input/PIHardwareTouchDevice.java index 8b583108..eb5b4810 100644 --- a/core/src/main/java/it/cavallium/warppi/device/PIHardwareTouchDevice.java +++ b/core/src/main/java/it/cavallium/warppi/device/input/PIHardwareTouchDevice.java @@ -1,6 +1,6 @@ -package it.cavallium.warppi.device; +package it.cavallium.warppi.device.input; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.event.TouchCancelEvent; import it.cavallium.warppi.event.TouchEndEvent; import it.cavallium.warppi.event.TouchMoveEvent; @@ -8,7 +8,7 @@ import it.cavallium.warppi.event.TouchPoint; import it.cavallium.warppi.event.TouchStartEvent; import it.cavallium.warppi.gui.screens.Screen; -public class PIHardwareTouchDevice implements HardwareTouchDevice { +public class PIHardwareTouchDevice implements TouchInputDevice { private final boolean invertXY, invertX, invertY; @@ -20,7 +20,7 @@ public class PIHardwareTouchDevice implements HardwareTouchDevice { @Override public boolean onTouchStart(final TouchStartEvent e) { - final Screen scr = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + final Screen scr = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); boolean refresh = false; if (scr != null && scr.initialized && scr.onTouchStart(e)) { refresh = true; @@ -28,14 +28,14 @@ public class PIHardwareTouchDevice implements HardwareTouchDevice { //Default behavior } if (refresh) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; } return true; } @Override public boolean onTouchEnd(final TouchEndEvent e) { - final Screen scr = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + final Screen scr = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); boolean refresh = false; if (scr != null && scr.initialized && scr.onTouchEnd(e)) { refresh = true; @@ -43,14 +43,14 @@ public class PIHardwareTouchDevice implements HardwareTouchDevice { //Default behavior } if (refresh) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; } return true; } @Override public boolean onTouchCancel(final TouchCancelEvent e) { - final Screen scr = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + final Screen scr = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); boolean refresh = false; if (scr != null && scr.initialized && scr.onTouchCancel(e)) { refresh = true; @@ -58,14 +58,14 @@ public class PIHardwareTouchDevice implements HardwareTouchDevice { //Default behavior } if (refresh) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; } return true; } @Override public boolean onTouchMove(final TouchMoveEvent e) { - final Screen scr = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + final Screen scr = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); boolean refresh = false; if (scr != null && scr.initialized && scr.onTouchMove(e)) { refresh = true; @@ -73,7 +73,7 @@ public class PIHardwareTouchDevice implements HardwareTouchDevice { //Default behavior } if (refresh) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().forceRefresh = true; } return true; } diff --git a/core/src/main/java/it/cavallium/warppi/device/HardwareTouchDevice.java b/core/src/main/java/it/cavallium/warppi/device/input/TouchInputDevice.java similarity index 76% rename from core/src/main/java/it/cavallium/warppi/device/HardwareTouchDevice.java rename to core/src/main/java/it/cavallium/warppi/device/input/TouchInputDevice.java index 5bf36efb..9a9381da 100644 --- a/core/src/main/java/it/cavallium/warppi/device/HardwareTouchDevice.java +++ b/core/src/main/java/it/cavallium/warppi/device/input/TouchInputDevice.java @@ -1,9 +1,9 @@ -package it.cavallium.warppi.device; +package it.cavallium.warppi.device.input; import it.cavallium.warppi.event.TouchEventListener; import it.cavallium.warppi.event.TouchPoint; -public interface HardwareTouchDevice extends TouchEventListener { +public interface TouchInputDevice extends TouchEventListener { boolean getInvertedXY(); boolean getInvertedX(); diff --git a/core/src/main/java/it/cavallium/warppi/extra/mario/MarioScreen.java b/core/src/main/java/it/cavallium/warppi/extra/mario/MarioScreen.java index a7a310f1..3ca92a53 100644 --- a/core/src/main/java/it/cavallium/warppi/extra/mario/MarioScreen.java +++ b/core/src/main/java/it/cavallium/warppi/extra/mario/MarioScreen.java @@ -2,10 +2,10 @@ package it.cavallium.warppi.extra.mario; import java.io.IOException; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.Platform.ConsoleUtils; -import it.cavallium.warppi.device.Keyboard; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; import it.cavallium.warppi.gui.HistoryBehavior; @@ -48,30 +48,30 @@ public class MarioScreen extends Screen { public void graphicInitialized() { try { if (MarioScreen.skin == null) { - MarioScreen.skin = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("/marioskin.png"); + MarioScreen.skin = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("/marioskin.png"); } if (MarioScreen.groundskin == null) { - MarioScreen.groundskin = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("/marioground.png"); + MarioScreen.groundskin = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("/marioground.png"); } if (MarioScreen.gpuTest2 == null) { try { - MarioScreen.gpuTest2 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("N:\\gputest\\gputest2"); + MarioScreen.gpuTest2 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("N:\\gputest\\gputest2"); } catch (final Exception ex) {} } if (MarioScreen.gpuTest1 == null) { try { - MarioScreen.gpuTest1 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("N:\\gputest\\gputest12"); + MarioScreen.gpuTest1 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("N:\\gputest\\gputest12"); MarioScreen.gpuTest12 = true; } catch (final Exception ex) { MarioScreen.gpuTest12 = false; try { - MarioScreen.gpuTest1 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("N:\\gputest\\gputest1"); + MarioScreen.gpuTest1 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("N:\\gputest\\gputest1"); } catch (final Exception ex2) {} } } if (MarioScreen.gpuTest3 == null) { try { - MarioScreen.gpuTest3 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("N:\\gputest\\font_gputest3.png"); + MarioScreen.gpuTest3 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("N:\\gputest\\font_gputest3.png"); } catch (final Exception ex) { ex.printStackTrace(); } @@ -85,30 +85,30 @@ public class MarioScreen extends Screen { public void initialized() { try { if (MarioScreen.skin == null) { - MarioScreen.skin = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("/marioskin.png"); + MarioScreen.skin = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("/marioskin.png"); } if (MarioScreen.groundskin == null) { - MarioScreen.groundskin = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("/marioground.png"); + MarioScreen.groundskin = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("/marioground.png"); } if (MarioScreen.gpuTest2 == null) { try { - MarioScreen.gpuTest2 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("N:\\gputest\\gputest2"); + MarioScreen.gpuTest2 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("N:\\gputest\\gputest2"); } catch (final Exception ex) {} } if (MarioScreen.gpuTest1 == null) { try { - MarioScreen.gpuTest1 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("N:\\gputest\\gputest12"); + MarioScreen.gpuTest1 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("N:\\gputest\\gputest12"); MarioScreen.gpuTest12 = true; } catch (final Exception ex) { MarioScreen.gpuTest12 = false; try { - MarioScreen.gpuTest1 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("N:\\gputest\\gputest1"); + MarioScreen.gpuTest1 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("N:\\gputest\\gputest1"); } catch (final Exception ex2) {} } } if (MarioScreen.gpuTest3 == null) { try { - MarioScreen.gpuTest3 = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("N:\\gputest\\font_gputest3.png"); + MarioScreen.gpuTest3 = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("N:\\gputest\\font_gputest3.png"); } catch (final Exception ex) { ex.printStackTrace(); } @@ -182,24 +182,24 @@ public class MarioScreen extends Screen { gpuCharTestt1Elapsed -= 1.5; } - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xff000000); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xff000000); } } @Override public void render() { if (errored) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringLeft(0, 20, "ERROR"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringLeft(0, 20, "ERROR"); } else { if (MarioScreen.groundskin != null) { final double playerX = g.getPlayer().getX(); final double playerY = g.getPlayer().getY(); - MarioScreen.groundskin.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + MarioScreen.groundskin.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); final MarioWorld w = g.getCurrentWorld(); final int width = w.getWidth(); final int height = w.getHeight(); - final float screenX = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getWidth() / 2f - 8f; - final float screenY = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() / 2f - 8f; + final float screenX = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getWidth() / 2f - 8f; + final float screenY = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() / 2f - 8f; final float shiftX = -8 + 16 * (float) playerX; final float shiftY = -8 + 16 * (height - (float) playerY); int blue = -1; @@ -212,59 +212,59 @@ public class MarioScreen extends Screen { if (b == 0) { if (blue != 1) { blue = 1; - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xff9290ff); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xff9290ff); } - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillColor(screenX - shiftX + 16 * ix, screenY - shiftY + 16 * (height - iy), 16, 16); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillColor(screenX - shiftX + 16 * ix, screenY - shiftY + 16 * (height - iy), 16, 16); } else { if (blue != 0) { blue = 0; - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xffffffff); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xffffffff); } - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(screenX - shiftX + 16 * ix, screenY - shiftY + 16 * (height - iy), 16, 16, 0, 0, 16, 16); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(screenX - shiftX + 16 * ix, screenY - shiftY + 16 * (height - iy), 16, 16, 0, 0, 16, 16); } } } } if (blue != 0) { blue = 0; - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xffffffff); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xffffffff); } //DRAW MARIO - MarioScreen.skin.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(screenX - (g.getPlayer().flipped ? 3 : 0), screenY, 35, 27, 35 * (g.getPlayer().marioSkinPos[0] + (g.getPlayer().flipped ? 2 : 1)), 27 * g.getPlayer().marioSkinPos[1], 35 * (g.getPlayer().flipped ? -1 : 1), 27); + MarioScreen.skin.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(screenX - (g.getPlayer().flipped ? 3 : 0), screenY, 35, 27, 35 * (g.getPlayer().marioSkinPos[0] + (g.getPlayer().flipped ? 2 : 1)), 27 * g.getPlayer().marioSkinPos[1], 35 * (g.getPlayer().flipped ? -1 : 1), 27); // PIDisplay.renderer.glDrawSkin(getPosX() - 18, 25 + getPosY(), 35 * (marioSkinPos[0] + (flipped ? 2 : 1)), 27 * marioSkinPos[1], 35 * (marioSkinPos[0] + (flipped ? 1 : 2)), 27 * (marioSkinPos[1] + 1), true); } // GPU PERFORMANCE TEST if (MarioScreen.gpuTest1 != null) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3f(1, 1, 1); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillColor(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getWidth() - (MarioScreen.gpuTest12 ? 512 : 256), Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() / 2 - (MarioScreen.gpuTest12 ? 256 : 128), MarioScreen.gpuTest12 ? 512 : 256, MarioScreen.gpuTest12 ? 512 : 256); - MarioScreen.gpuTest1.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3f(0, 0, 0); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getWidth(), Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() / 2 - (MarioScreen.gpuTest12 ? 256 : 128), gpuCharTest1[gpuCharTest1Num]); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3f(1, 1, 1); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillColor(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getWidth() - (MarioScreen.gpuTest12 ? 512 : 256), WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() / 2 - (MarioScreen.gpuTest12 ? 256 : 128), MarioScreen.gpuTest12 ? 512 : 256, MarioScreen.gpuTest12 ? 512 : 256); + MarioScreen.gpuTest1.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3f(0, 0, 0); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getWidth(), WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() / 2 - (MarioScreen.gpuTest12 ? 256 : 128), gpuCharTest1[gpuCharTest1Num]); } if (MarioScreen.gpuTest3 != null) { - MarioScreen.gpuTest3.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4f(1, 1, 1, 0.7f); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(0, StaticVars.screenSize[1] - 128, 224, 128, gpuTestNum * 224, 0, 224, 128); + MarioScreen.gpuTest3.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4f(1, 1, 1, 0.7f); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(0, StaticVars.screenSize[1] - 128, 224, 128, gpuTestNum * 224, 0, 224, 128); } if (MarioScreen.gpuTest2 != null) { - MarioScreen.gpuTest2.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFF000000); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "A"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFF800000); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "B"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFeea28e); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "C"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFee7255); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "D"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFeac0b0); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "E"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFf3d8ce); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "F"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFffede7); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "G"); + MarioScreen.gpuTest2.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFF000000); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "A"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFF800000); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "B"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFeea28e); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "C"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFee7255); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "D"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFeac0b0); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "E"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFf3d8ce); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "F"); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor(0xFFffede7); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringRight(StaticVars.screenSize[0], WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - MarioScreen.gpuTest2.getCharacterHeight(), "G"); } } } diff --git a/core/src/main/java/it/cavallium/warppi/extra/tetris/TetrisScreen.java b/core/src/main/java/it/cavallium/warppi/extra/tetris/TetrisScreen.java index 64e954d2..8d52ad4c 100644 --- a/core/src/main/java/it/cavallium/warppi/extra/tetris/TetrisScreen.java +++ b/core/src/main/java/it/cavallium/warppi/extra/tetris/TetrisScreen.java @@ -2,14 +2,14 @@ package it.cavallium.warppi.extra.tetris; import java.io.IOException; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; import it.cavallium.warppi.gui.HistoryBehavior; import it.cavallium.warppi.gui.graphicengine.BinaryFont; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.Skin; import it.cavallium.warppi.gui.screens.Screen; @@ -30,7 +30,7 @@ public class TetrisScreen extends Screen { private ButtonInfo backPressed = new ButtonInfo(); - private GraphicEngine e; + private DisplayOutputDevice e; private Renderer r; @@ -49,10 +49,10 @@ public class TetrisScreen extends Screen { @Override public void graphicInitialized() { try { - e = d.engine; + e = d.display; r = d.renderer; if (TetrisScreen.skin == null) { - TetrisScreen.skin = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadSkin("/tetrisskin.png"); + TetrisScreen.skin = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadSkin("/tetrisskin.png"); } } catch (final IOException e) { e.printStackTrace(); @@ -66,7 +66,7 @@ public class TetrisScreen extends Screen { @Override public void beforeRender(final float dt) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xff000000); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xff000000); g.update(dt, leftPressed, rightPressed, downPressed, upPressed, okPressed, backPressed); } diff --git a/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java b/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java index 921c32ce..9b29d50d 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java +++ b/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.gui; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.Keyboard; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.Skin; import it.cavallium.warppi.gui.screens.Screen; @@ -39,7 +39,7 @@ public class CalculatorHUD extends HUD { @Override public void renderTopmostBackground() { final Renderer r = d.renderer; - final GraphicEngine engine = d.engine; + final DisplayOutputDevice engine = d.display; r.glColor(0xFFc5c2af); r.glFillColor(0, 0, engine.getWidth(), 20); @@ -48,7 +48,7 @@ public class CalculatorHUD extends HUD { @Override public void renderTopmost() { final Renderer r = d.renderer; - final GraphicEngine engine = d.engine; + final DisplayOutputDevice engine = d.display; final Skin guiSkin = d.guiSkin; //DRAW TOP @@ -69,19 +69,19 @@ public class CalculatorHUD extends HUD { int padding = 2; - final int brightness = (int) Math.ceil(Engine.INSTANCE.getHardwareDevice().getDisplayManager().getBrightness() * 9); + final int brightness = (int) Math.ceil(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getBrightness() * 9); if (brightness <= 10) { r.glFillRect(StaticVars.screenSize[0] - (padding + 16), 2, 16, 16, 16 * brightness, 16 * 1, 16, 16); } else { - Engine.getPlatform().getConsoleUtils().out().println(1, "Brightness error"); + WarpPI.getPlatform().getConsoleUtils().out().println(1, "Brightness error"); } padding += 18 + 6; - final boolean canGoBack = Engine.INSTANCE.getHardwareDevice().getDisplayManager().canGoBack(); - final boolean canGoForward = Engine.INSTANCE.getHardwareDevice().getDisplayManager().canGoForward(); + final boolean canGoBack = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().canGoBack(); + final boolean canGoForward = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().canGoForward(); - if (Engine.getPlatform().getSettings().isDebugEnabled()) { + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { r.glFillRect(StaticVars.screenSize[0] - (padding + 16), 2, 16, 16, 16 * 18, 16 * 0, 16, 16); padding += 18 + 6; } @@ -112,12 +112,12 @@ public class CalculatorHUD extends HUD { r.glDrawStringLeft(1, StaticVars.screenSize[1] - 7, "PROGRESS."); int currentDebugLine = 2; - if (Engine.getPlatform().getSettings().isDebugEnabled()) { + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { ObjectArrayList allSessions = new ObjectArrayList<>(); - for (Screen session : Engine.INSTANCE.getHardwareDevice().getDisplayManager().sessions) { + for (Screen session : WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().sessions) { allSessions.add(0, session); } - Screen curScreen = Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); + Screen curScreen = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen(); if (curScreen.historyBehavior == HistoryBehavior.DONT_KEEP_IN_HISTORY) { allSessions.add(curScreen); } @@ -135,7 +135,7 @@ public class CalculatorHUD extends HUD { r.glColor(0xFF990000); } r.glDrawStringLeft(0, StaticVars.screenSize[1] - ((currentDebugLine+1) * (r.getCurrentFont().getCharacterHeight()+1)), "[" + String.format("%1$03d", session.debugScreenID) + "] " + title.toUpperCase()); - if (session == Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen()) { + if (session == WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen()) { r.glColor(0xFF00CC00); } else { r.glColor(0xFF990000); diff --git a/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java b/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java index 1efbabb6..894edc84 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java +++ b/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java @@ -5,11 +5,13 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.Platform.Semaphore; +import it.cavallium.warppi.device.display.BacklightOutputDevice; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.flow.Pair; import it.cavallium.warppi.gui.graphicengine.BinaryFont; @@ -27,8 +29,9 @@ public final class DisplayManager implements RenderingLoop { private float brightness; - public final GraphicEngine engine; - public final HardwareDisplay monitor; + public final DisplayOutputDevice display; + public final GraphicEngine graphicEngine; + public final BacklightOutputDevice backlight; public final boolean supportsPauses; public Renderer renderer; @@ -51,15 +54,16 @@ public final class DisplayManager implements RenderingLoop { */ public boolean forceRefresh; - public DisplayManager(final HardwareDisplay monitor, final HUD hud, final Screen screen, final String title) { - this.monitor = monitor; + public DisplayManager(final DisplayOutputDevice display, final BacklightOutputDevice backlight, final HUD hud, final Screen screen, final String title) { + this.display = display; + this.graphicEngine = display.getGraphicEngine(); + this.backlight = backlight; this.hud = hud; initialTitle = title; initialScreen = screen; - screenChange = Engine.getPlatform().newSemaphore(); - engine = chooseGraphicEngine(); - supportsPauses = engine.doesRefreshPauses(); + screenChange = WarpPI.getPlatform().newSemaphore(); + supportsPauses = graphicEngine.doesRefreshPauses(); glyphsHeight = new int[] { 9, 6, 12, 9 }; displayDebugString = ""; @@ -67,8 +71,6 @@ public final class DisplayManager implements RenderingLoop { } public void initialize() { - monitor.initialize(); - try { hud.d = this; hud.create(); @@ -77,18 +79,17 @@ public final class DisplayManager implements RenderingLoop { } } catch (final Exception e) { e.printStackTrace(); - Engine.getPlatform().exit(0); + WarpPI.getPlatform().exit(0); } try { - engine.create(); - renderer = engine.getRenderer(); - engine.setTitle(initialTitle); + graphicEngine.create(); + renderer = graphicEngine.getRenderer(); + graphicEngine.setTitle(initialTitle); loop(); } catch (final Exception ex) { ex.printStackTrace(); } - monitor.shutdown(); } /* @@ -111,54 +112,6 @@ public final class DisplayManager implements RenderingLoop { * GL_UNSIGNED_BYTE, skin); } catch (IOException ex) { ex.printStackTrace(); } } */ - private GraphicEngine chooseGraphicEngine() { - GraphicEngine d; - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "framebuffer engine", null); - if (d != null && d.isSupported()) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Using FB Graphic Engine"); - return d; - } - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "CPU engine", null); - if (d != null && d.isSupported()) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Using CPU Graphic Engine"); - return d; - } - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "GPU engine", null); - if (d != null && d.isSupported()) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Using GPU Graphic Engine"); - return d; - } - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "headless 24 bit engine", null); - if (d != null && d.isSupported()) { - System.err.println( - "Using Headless 24 bit Engine! This is a problem! No other graphic engines are available."); - return d; - } - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "headless 256 colors engine", null); - if (d != null && d.isSupported()) { - System.err.println("Using Headless 256 Engine! This is a problem! No other graphic engines are available."); - return d; - } - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "headless 8 colors engine", null); - if (d != null && d.isSupported()) { - System.err - .println("Using Headless basic Engine! This is a problem! No other graphic engines are available."); - return d; - } - d = Utils.getOrDefault(Engine.getPlatform().getEnginesList(), "HTML5 engine", null); - if (d != null && d.isSupported()) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, - "Using Html Graphic Engine"); - return d; - } - d = new NoGuiEngine(); - if (d != null && d.isSupported()) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Using NoGui Graphic Engine"); - return d; - } - throw new UnsupportedOperationException("No graphic engines available."); - } - public void closeScreen() { boolean isLastSession = sessions[1] == null; if (!isLastSession) { @@ -250,7 +203,7 @@ public final class DisplayManager implements RenderingLoop { screenChange.release(); } catch (final Exception e) { e.printStackTrace(); - Engine.getPlatform().exit(0); + WarpPI.getPlatform().exit(0); } } @@ -276,7 +229,7 @@ public final class DisplayManager implements RenderingLoop { screenChange.release(); } catch (final Exception e) { e.printStackTrace(); - Engine.getPlatform().exit(0); + WarpPI.getPlatform().exit(0); } } @@ -354,25 +307,25 @@ public final class DisplayManager implements RenderingLoop { } private void load_skin() throws IOException { - guiSkin = engine.loadSkin("/skin.png"); + guiSkin = graphicEngine.loadSkin("/skin.png"); } private void load_fonts() throws IOException { fonts = new BinaryFont[7]; - fonts[0] = engine.loadFont("smal"); - fonts[1] = engine.loadFont("smallest"); - fonts[2] = engine.loadFont("norm"); - fonts[3] = engine.loadFont("smal"); + fonts[0] = graphicEngine.loadFont("smal"); + fonts[1] = graphicEngine.loadFont("smallest"); + fonts[2] = graphicEngine.loadFont("norm"); + fonts[3] = graphicEngine.loadFont("smal"); // 4 // fonts[5] = engine.loadFont("square"); } private void draw_init() { - if (engine.supportsFontRegistering()) { - final List fontsIterator = engine.getRegisteredFonts(); + if (graphicEngine.supportsFontRegistering()) { + final List fontsIterator = graphicEngine.getRegisteredFonts(); for (final BinaryFont f : fontsIterator) { if (!f.isInitialized()) { - f.initialize(engine); + f.initialize(display); } } } @@ -383,7 +336,7 @@ public final class DisplayManager implements RenderingLoop { e.printStackTrace(); } } - renderer.glClear(engine.getWidth(), engine.getHeight()); + renderer.glClear(graphicEngine.getWidth(), graphicEngine.getHeight()); } private void draw_world() { @@ -391,13 +344,13 @@ public final class DisplayManager implements RenderingLoop { if (error != null) { final BinaryFont fnt = Utils.getFont(false, false); - if (fnt != null && fnt != engine.getRenderer().getCurrentFont()) { - fnt.use(engine); + if (fnt != null && fnt != graphicEngine.getRenderer().getCurrentFont()) { + fnt.use(display); } renderer.glColor3i(129, 28, 22); renderer.glDrawStringRight(StaticVars.screenSize[0] - 2, StaticVars.screenSize[1] - (fnt.getCharacterHeight() + 2), - Engine.getPlatform().getSettings().getCalculatorNameUppercase() + " CALCULATOR"); + WarpPI.getPlatform().getSettings().getCalculatorNameUppercase() + " CALCULATOR"); renderer.glColor3i(149, 32, 26); renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, 22, error); renderer.glColor3i(164, 34, 28); @@ -406,14 +359,14 @@ public final class DisplayManager implements RenderingLoop { renderer.glDrawStringLeft(2, 22 + i, stackPart); i += 11; } - if (fonts[0] != null && fonts[0] != engine.getRenderer().getCurrentFont()) { - fonts[0].use(engine); + if (fonts[0] != null && fonts[0] != graphicEngine.getRenderer().getCurrentFont()) { + fonts[0].use(display); } renderer.glColor3i(129, 28, 22); renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, 11, "UNEXPECTED EXCEPTION"); } else { - if (fonts[0] != null && fonts[0] != engine.getRenderer().getCurrentFont()) { - fonts[0].use(engine); + if (fonts[0] != null && fonts[0] != graphicEngine.getRenderer().getCurrentFont()) { + fonts[0].use(display); } if (hud.visible) hud.renderBackground(); @@ -456,17 +409,17 @@ public final class DisplayManager implements RenderingLoop { } } catch (final Exception e) { e.printStackTrace(); - Engine.getPlatform().exit(0); + WarpPI.getPlatform().exit(0); } final Observable workTimer = Observable.interval(DisplayManager.tickDuration); - final Observable onResizeObservable = engine.onResize(); + final Observable onResizeObservable = graphicEngine.onResize(); Observable> refreshObservable; if (onResizeObservable == null) { refreshObservable = workTimer.map((l) -> Pair.of(l, null)); } else { - refreshObservable = Observable.combineChanged(workTimer, engine.onResize()); + refreshObservable = Observable.combineChanged(workTimer, graphicEngine.onResize()); } refreshObservable.subscribe((pair) -> { @@ -488,7 +441,7 @@ public final class DisplayManager implements RenderingLoop { screen.beforeRender((float) (dt / 1000d)); }); - engine.start(getDrawable()); + graphicEngine.start(getDrawable()); } catch (final Exception ex) { ex.printStackTrace(); } finally { @@ -502,7 +455,7 @@ public final class DisplayManager implements RenderingLoop { public void setBrightness(final float newval) { if (newval >= 0 && newval <= 1) { brightness = newval; - monitor.setBrightness(brightness); + backlight.setBrightness(brightness); } } @@ -539,6 +492,6 @@ public final class DisplayManager implements RenderingLoop { } public void waitForExit() { - engine.waitForExit(); + graphicEngine.waitForExit(); } } \ No newline at end of file diff --git a/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java b/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java index e39c7405..2baadaf2 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java +++ b/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.gui; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.util.Error; @@ -20,7 +20,7 @@ public class GUIErrorMessage { creationTime = System.currentTimeMillis(); } - public void draw(final GraphicEngine g, final Renderer r, final String msg) { + public void draw(final DisplayOutputDevice g, final Renderer r, final String msg) { final int scrW = g.getWidth(); final int scrH = g.getHeight(); final int width = 200; diff --git a/core/src/main/java/it/cavallium/warppi/gui/HardwareDisplay.java b/core/src/main/java/it/cavallium/warppi/gui/HardwareDisplay.java deleted file mode 100644 index 464ae061..00000000 --- a/core/src/main/java/it/cavallium/warppi/gui/HardwareDisplay.java +++ /dev/null @@ -1,9 +0,0 @@ -package it.cavallium.warppi.gui; - -public interface HardwareDisplay { - void initialize(); - - void shutdown(); - - void setBrightness(double value); -} diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/ExtraMenu.java b/core/src/main/java/it/cavallium/warppi/gui/expression/ExtraMenu.java index 5c8b2f56..6fb229d6 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/ExtraMenu.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/ExtraMenu.java @@ -2,11 +2,11 @@ package it.cavallium.warppi.gui.expression; import java.util.Arrays; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.event.KeyboardEventListener; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockVariable; import it.cavallium.warppi.gui.expression.blocks.TreeContainer; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; public abstract class ExtraMenu implements KeyboardEventListener { @@ -32,7 +32,7 @@ public abstract class ExtraMenu implements KeyboardEventListene protected int height; protected int[] location; - public abstract void draw(GraphicEngine ge, Renderer r, Caret caret); + public abstract void draw(DisplayOutputDevice ge, Renderer r, Caret caret); public abstract void open(); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java index 638c596d..1024ff69 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.ExtraMenu; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.interfaces.Feature; @@ -45,7 +45,7 @@ public abstract class Block implements TreeBlock, GraphicalElement { * Position relative to the window. * @param small */ - public abstract void draw(GraphicEngine ge, Renderer r, int x, int y, Caret caret); + public abstract void draw(DisplayOutputDevice ge, Renderer r, int x, int y, Caret caret); public abstract boolean putBlock(Caret caret, Block newBlock); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockChar.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockChar.java index e9db9436..edd38175 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockChar.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockChar.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeatureChar; @@ -29,7 +29,7 @@ public class BlockChar extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); r.glDrawCharLeft(x, y, ch); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java index 96abf8ce..5d4b71a7 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java @@ -2,13 +2,13 @@ package it.cavallium.warppi.gui.expression.blocks; import java.util.Arrays; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.CaretState; import it.cavallium.warppi.gui.expression.InputContext; import it.cavallium.warppi.gui.graphicengine.BinaryFont; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -182,7 +182,7 @@ public class BlockContainer implements TreeContainer, GraphicalElement { * @param caret * Position of the caret. */ - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { int paddingX = 1; if (caret.getRemaining() == 0) { @@ -396,7 +396,7 @@ public class BlockContainer implements TreeContainer, GraphicalElement { return BlockContainer.defFontSizes[b ? 3 : 1]; } - public static void drawCaret(final GraphicEngine ge, final Renderer r, final Caret caret, final boolean small, + public static void drawCaret(final DisplayOutputDevice ge, final Renderer r, final Caret caret, final boolean small, final int x, final int y, final int height) { if (caret.getState() == CaretState.VISIBLE_ON) { r.glColor(BlockContainer.getDefaultColor()); @@ -424,7 +424,7 @@ public class BlockContainer implements TreeContainer, GraphicalElement { private static void checkInitialized() { if (!BlockContainer.initialized) { - Engine.getPlatform().throwNewExceptionInInitializerError("Please initialize BlockContainer by running the method BlockContainer.initialize(...) first!"); + WarpPI.getPlatform().throwNewExceptionInInitializerError("Please initialize BlockContainer by running the method BlockContainer.initialize(...) first!"); } } diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java index 3702cec5..ea5cd643 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -38,7 +38,7 @@ public class BlockDivision extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); containerUp.draw(ge, r, x + 1 + paddingLeftUpper, y, caret); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockExponentialNotation.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockExponentialNotation.java index cdb25f9d..0d2d4d87 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockExponentialNotation.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockExponentialNotation.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; public class BlockExponentialNotation extends BlockPower { @@ -25,7 +25,7 @@ public class BlockExponentialNotation extends BlockPower { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); r.glDrawStringLeft(x, y + height - bh, "ℯ℮"); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java index 8699ed4d..6ae3fe3b 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -56,7 +56,7 @@ public class BlockLogarithm extends Block implements IParenthesis { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); if (prefix != null) { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java index bfff55c8..a9245a21 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.interfaces.Feature; @@ -52,7 +52,7 @@ public abstract class BlockParenthesisAbstract extends Block implements IParenth } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); if (prefix != null) { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java index a665fa6d..5b027758 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -26,7 +26,7 @@ public class BlockPower extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(true).use(ge); r.glColor(BlockContainer.getDefaultColor()); containerExponent.draw(ge, r, x, y, caret); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java index e586a463..d3152dbd 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -32,7 +32,7 @@ public class BlockPower2 extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(true).use(ge); r.glColor(BlockContainer.getDefaultColor()); containerExponent.draw(ge, r, x, y, caret); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java index 4bdfe9ea..136191f8 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -29,7 +29,7 @@ public class BlockSquareRoot extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); r.glDrawLine(x, y + height - 10 + 1, x, y + height - 10 + 2); // / diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockUndefined.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockUndefined.java index 46289191..43650aa7 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockUndefined.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockUndefined.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui.expression.blocks; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.InputContext; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; @@ -21,7 +21,7 @@ public class BlockUndefined extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { BlockContainer.getDefaultFont(small).use(ge); r.glColor(BlockContainer.getDefaultColor()); r.glDrawStringLeft(x, y, "UNDEFINED"); diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java index aa59d8ee..a88259c9 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java @@ -2,14 +2,14 @@ package it.cavallium.warppi.gui.expression.blocks; import java.util.Arrays; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.ExtraMenu; import it.cavallium.warppi.gui.expression.InputContext; import it.cavallium.warppi.gui.graphicengine.BinaryFont; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Variable.V_TYPE; @@ -82,7 +82,7 @@ public class BlockVariable extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y, final Caret caret) { if (ic.variableTypeDirtyID != typeDirtyID) { retrieveValue(); } @@ -238,9 +238,9 @@ public class BlockVariable extends Block { } @Override - public void draw(final GraphicEngine ge, final Renderer r, final Caret caret) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final Caret caret) { r.glColor3f(1.0f, 1.0f, 1.0f); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().guiSkin.use(ge); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().guiSkin.use(ge); int popupX = location[0]; int popupY = location[1]; if (popupX < 0) { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java b/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java index f31b413e..ed7bd6f2 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java @@ -1,5 +1,6 @@ package it.cavallium.warppi.gui.expression.containers; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.event.KeyboardEventListener; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; @@ -10,7 +11,6 @@ import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockReference; import it.cavallium.warppi.gui.expression.layouts.InputLayout; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; @@ -211,7 +211,7 @@ public abstract class InputContainer implements GraphicalElement, InputLayout { * @param y * Position relative to the window. */ - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y) { caret.resetRemaining(); root.draw(ge, r, x, y, caret); if (extra != null) { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/containers/OutputContainer.java b/core/src/main/java/it/cavallium/warppi/gui/expression/containers/OutputContainer.java index b75d0bdc..b320ad18 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/containers/OutputContainer.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/containers/OutputContainer.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.gui.expression.containers; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.CaretState; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.layouts.OutputLayout; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -119,7 +119,7 @@ public abstract class OutputContainer implements GraphicalElement, OutputLayout * @param y * Position relative to the window. */ - public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y) { + public void draw(final DisplayOutputDevice ge, final Renderer r, final int x, final int y) { int offset = 0; for (final BlockContainer root : roots) { root.draw(ge, r, x, y + offset, caret); diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/GraphicEngine.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/GraphicEngine.java index 6ff150b0..ff48db82 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/GraphicEngine.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/GraphicEngine.java @@ -3,26 +3,29 @@ package it.cavallium.warppi.gui.graphicengine; import java.io.IOException; import java.util.List; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.flow.Observable; public interface GraphicEngine { int[] getSize(); + boolean isSupported(); + boolean isInitialized(); void setTitle(String title); void setResizable(boolean r); - void setDisplayMode(final int ww, final int wh); + void setDisplayMode(int ww, int wh); + void create(Runnable object); + default void create() { create(null); }; - void create(Runnable object); - Observable onResize(); int getWidth(); @@ -45,8 +48,6 @@ public interface GraphicEngine { void waitForExit(); - boolean isSupported(); - boolean doesRefreshPauses(); default boolean supportsFontRegistering() { diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/Skin.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/Skin.java index 80c24b71..622eb129 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/Skin.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/Skin.java @@ -3,15 +3,17 @@ package it.cavallium.warppi.gui.graphicengine; import java.io.IOException; import java.net.URISyntaxException; +import it.cavallium.warppi.device.display.DisplayOutputDevice; + public interface Skin { void load(String file) throws IOException, URISyntaxException; - void initialize(GraphicEngine d); + void initialize(DisplayOutputDevice d); boolean isInitialized(); - void use(GraphicEngine d); + void use(DisplayOutputDevice d); /** * May not be available before initialization diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/PngSkin.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/PngSkin.java index 78a4fba0..eeb6d31c 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/PngSkin.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/PngSkin.java @@ -3,9 +3,9 @@ package it.cavallium.warppi.gui.graphicengine.impl.common; import java.io.File; import java.io.IOException; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ImageUtils.ImageReader; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.Skin; public abstract class PngSkin implements Skin { @@ -25,7 +25,7 @@ public abstract class PngSkin implements Skin { if (!file.startsWith("/")) { file = "/" + file; } - final ImageReader r = Engine.getPlatform().getImageUtils().load(Engine.getPlatform().getStorageUtils().getResourceStream(file)); + final ImageReader r = WarpPI.getPlatform().getImageUtils().load(WarpPI.getPlatform().getStorageUtils().getResourceStream(file)); if (r == null) { skinData = new int[0]; skinSize = new int[] { 0, 0 }; @@ -37,7 +37,7 @@ public abstract class PngSkin implements Skin { } @Override - public void initialize(final GraphicEngine d) { + public void initialize(final DisplayOutputDevice d) { // TODO Auto-generated method stub } diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/RFTFont.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/RFTFont.java index a2baae3a..52cfeb09 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/RFTFont.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/common/RFTFont.java @@ -8,10 +8,10 @@ import java.util.LinkedList; import java.util.logging.Level; import java.util.logging.Logger; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.BinaryFont; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.util.Utils; public abstract class RFTFont implements BinaryFont { @@ -62,7 +62,7 @@ public abstract class RFTFont implements BinaryFont { } private void load(final String path, final boolean onlyRaw) throws IOException { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN + 1, "Loading font " + path); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN + 1, "Loading font " + path); loadFont(path); if (!onlyRaw) { chars32 = new int[intervalsTotalSize * charIntCount]; @@ -94,14 +94,14 @@ public abstract class RFTFont implements BinaryFont { } } - Engine.getPlatform().gc(); + WarpPI.getPlatform().gc(); } private void loadFont(String string) throws IOException { if (!string.startsWith("/")) { string = "/" + string; } - InputStream res = Engine.getPlatform().getStorageUtils().getResourceStream(string); + InputStream res = WarpPI.getPlatform().getStorageUtils().getResourceStream(string); final int[] file = Utils.realBytes(Utils.convertStreamToByteArray(res, res.available())); final int filelength = file.length; if (filelength >= 16) { @@ -140,7 +140,7 @@ public abstract class RFTFont implements BinaryFont { } catch (final Exception ex) { ex.printStackTrace(); System.out.println(string); - Engine.getPlatform().exit(-1); + WarpPI.getPlatform().exit(-1); } } } else { @@ -266,7 +266,7 @@ public abstract class RFTFont implements BinaryFont { } @Override - public void initialize(final GraphicEngine d) {} + public void initialize(final DisplayOutputDevice d) {} @Override public int getStringWidth(final String text) { @@ -314,7 +314,7 @@ public abstract class RFTFont implements BinaryFont { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { } diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/nogui/NoGuiEngine.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/nogui/NoGuiEngine.java index cd8a9b20..67364864 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/nogui/NoGuiEngine.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/nogui/NoGuiEngine.java @@ -2,8 +2,9 @@ package it.cavallium.warppi.gui.graphicengine.impl.nogui; import java.io.IOException; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.Semaphore; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; @@ -14,7 +15,7 @@ import it.cavallium.warppi.gui.graphicengine.Skin; public class NoGuiEngine implements GraphicEngine { private boolean initialized; - public Semaphore exitSemaphore = Engine.getPlatform().newSemaphore(0); + public Semaphore exitSemaphore = WarpPI.getPlatform().newSemaphore(0); @Override public int[] getSize() { @@ -147,7 +148,7 @@ public class NoGuiEngine implements GraphicEngine { public BinaryFont loadFont(final String fontName) throws IOException { return new BinaryFont() { @Override - public void use(final GraphicEngine d) {} + public void use(final DisplayOutputDevice d) {} @Override public void load(final String file) throws IOException {} @@ -158,7 +159,7 @@ public class NoGuiEngine implements GraphicEngine { } @Override - public void initialize(final GraphicEngine d) {} + public void initialize(final DisplayOutputDevice d) {} @Override public int getStringWidth(final String text) { @@ -193,7 +194,7 @@ public class NoGuiEngine implements GraphicEngine { public BinaryFont loadFont(final String path, final String fontName) throws IOException { return new BinaryFont() { @Override - public void use(final GraphicEngine d) {} + public void use(final DisplayOutputDevice d) {} @Override public void load(final String file) throws IOException {} @@ -204,7 +205,7 @@ public class NoGuiEngine implements GraphicEngine { } @Override - public void initialize(final GraphicEngine d) {} + public void initialize(final DisplayOutputDevice d) {} @Override public int getStringWidth(final String text) { @@ -239,7 +240,7 @@ public class NoGuiEngine implements GraphicEngine { public Skin loadSkin(final String file) throws IOException { return new Skin() { @Override - public void use(final GraphicEngine d) {} + public void use(final DisplayOutputDevice d) {} @Override public void load(final String file) throws IOException {} @@ -250,7 +251,7 @@ public class NoGuiEngine implements GraphicEngine { } @Override - public void initialize(final GraphicEngine d) {} + public void initialize(final DisplayOutputDevice d) {} @Override public int getSkinWidth() { diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java index 0c8a7ca7..d6113901 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.gui.screens; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.gui.HistoryBehavior; @@ -32,21 +32,21 @@ public class ChooseVariableValueScreen extends Screen { @Override public void render() { - Utils.getFont(false, true).use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4i(0, 0, 0, 64); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2 - 20, "WORK IN PROGRESS."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2 - 20 + 1, "WORK IN PROGRESS."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2 - 20 + 1, "WORK IN PROGRESS."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 0, 0); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2 - 20, "WORK IN PROGRESS."); + Utils.getFont(false, true).use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4i(0, 0, 0, 64); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2 - 20, "WORK IN PROGRESS."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2 - 20 + 1, "WORK IN PROGRESS."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2 - 20 + 1, "WORK IN PROGRESS."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 0, 0); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2 - 20, "WORK IN PROGRESS."); - Utils.getFont(false, false).use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4i(0, 0, 0, 64); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2 + 1, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2 + 1, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 0, 0); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + Utils.getFont(false, false).use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4i(0, 0, 0, 64); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2 + 1, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 2 + 1, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 0, 0); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 2, "THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); } @Override diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java index 412a08e7..c4ec9f7d 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.gui.screens; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; @@ -32,19 +32,19 @@ public class KeyboardDebugScreen extends Screen { @Override public void render() { - final Renderer renderer = Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer; - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + final Renderer renderer = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer; + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(0.75f, 0.0f, 0.0f, 1.0f); renderer.glDrawStringRight(StaticVars.screenSize[0] - 10, 30, "-" + keyevent.toUpperCase() + "-"); if (keyevent != "NONE") { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(0.0f, 0.0f, 0.0f, 1.0f); renderer.glDrawStringLeft(10, 30, "Key position"); renderer.glDrawStringLeft(10, 45, "X: " + KeyboardDebugScreen.keyX + ", Y:" + KeyboardDebugScreen.keyY); renderer.glDrawStringLeft(10, 65, "Key value"); renderer.glDrawStringLeft(10, 80, key); } - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[3].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[3].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(0.0f, 0.0f, 0.0f, 1.0f); for (int i = 0; i < 5; i++) { if (KeyboardDebugScreen.log[i] != null) { @@ -56,10 +56,10 @@ public class KeyboardDebugScreen extends Screen { renderer.glColor4f(0.0f, 0.0f, 0.0f, 1.0f); renderer.glFillColor(-80 + 100 + 200, 90, 5, 5); renderer.glFillColor(-80 + 100, 100, 200, 70); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); renderer.glDrawStringCenter(-80 + 100 + 200 / 2, 100 + 70 / 2 - renderer.getCurrentFont().getCharacterHeight() / 2, "FROM SERIAL"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[3].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[3].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(0.0f, 0.0f, 1.0f, 1.0f); for (int i = 0; i < 8; i++) { if (KeyboardDebugScreen.pinsA[i] == 1) { @@ -102,10 +102,10 @@ public class KeyboardDebugScreen extends Screen { renderer.glColor4f(0.0f, 0.0f, 0.0f, 1.0f); renderer.glFillColor(150 + 90, 200, 5, 5); renderer.glFillColor(150 + 100, 100, 200, 70); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[2].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); renderer.glDrawStringCenter(150 + 100 + 200 / 2, 100 + 70 / 2 - renderer.getCurrentFont().getCharacterHeight() / 2, "TO SERIAL"); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[3].use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[3].use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor4f(0.0f, 0.0f, 1.0f, 1.0f); for (int i = 15; i >= 8; i--) { if (KeyboardDebugScreen.pinsB[i] == 1) { diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java index db078d4e..1ca9c6ff 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.gui.screens; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.GraphicUtils; import it.cavallium.warppi.gui.HistoryBehavior; @@ -21,7 +21,7 @@ public class LoadingScreen extends Screen { @Override public void created() throws InterruptedException { - Engine.INSTANCE.isLoaded().subscribe((loaded) -> { + WarpPI.INSTANCE.isLoaded().subscribe((loaded) -> { this.loaded = loaded; }); endLoading = 0; @@ -30,7 +30,7 @@ public class LoadingScreen extends Screen { @Override public void initialized() throws InterruptedException { previousZoomValue = StaticVars.windowZoomFunction.apply(StaticVars.windowZoom.getLastValue()); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().getHUD().hide(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getHUD().hide(); StaticVars.windowZoom.onNext(1f); } @@ -42,24 +42,24 @@ public class LoadingScreen extends Screen { loadingTextTranslation = GraphicUtils.sinDeg(endLoading * 90f) * 10f; endLoading += dt; - if (!ended && loaded && (Engine.getPlatform().getSettings().isDebugEnabled() || endLoading >= 3.5f)) { + if (!ended && loaded && (WarpPI.getPlatform().getSettings().isDebugEnabled() || endLoading >= 3.5f)) { ended = true; StaticVars.windowZoom.onNext(previousZoomValue); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().getHUD().show(); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new MathInputScreen()); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getHUD().show(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new MathInputScreen()); } mustRefresh = true; } @Override public void render() { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().guiSkin.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 255, 255); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] / 2f - 80, StaticVars.screenSize[1] / 2f - 64, 160, 48, 0, 32, 160, 48); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] / 2f - 24, StaticVars.screenSize[1] / 2f - loadingTextTranslation, 48, 48, 160, 32, 48, 48); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().guiSkin.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 255, 255); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] / 2f - 80, StaticVars.screenSize[1] / 2f - 64, 160, 48, 0, 32, 160, 48); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] / 2f - 24, StaticVars.screenSize[1] / 2f - loadingTextTranslation, 48, 48, 160, 32, 48, 48); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] - 224, StaticVars.screenSize[1] - 48, 224, 48, 0, 80, 224, 48); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] - 160 - 24 - 224, StaticVars.screenSize[1] - 48, 160, 48, 224, 80, 160, 48); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] - 224, StaticVars.screenSize[1] - 48, 224, 48, 0, 80, 224, 48); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glFillRect(StaticVars.screenSize[0] - 160 - 24 - 224, StaticVars.screenSize[1] - 48, 160, 48, 224, 80, 160, 48); } diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java index 396c4eb3..2219a7aa 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java @@ -5,9 +5,9 @@ import java.util.HashMap; import org.apache.commons.lang3.SerializationUtils; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; -import it.cavallium.warppi.device.Keyboard; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; @@ -88,10 +88,10 @@ public class MathInputScreen extends Screen { calc = new MathContext(); try { - BlockContainer.initializeFonts(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("norm"), Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.loadFont("smal")); + BlockContainer.initializeFonts(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("norm"), WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.loadFont("smal")); } catch (final IOException e) { e.printStackTrace(); - Engine.getPlatform().exit(1); + WarpPI.getPlatform().exit(1); } userInput = new NormalInputContainer(ic); @@ -112,10 +112,10 @@ public class MathInputScreen extends Screen { @Override public void beforeRender(final float dt) { - if (Engine.INSTANCE.getHardwareDevice().getDisplayManager().error == null) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xFFc5c2af); + if (WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error == null) { + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xFFc5c2af); } else { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xFFDC3C32); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glClearColor(0xFFDC3C32); } if (userInput.beforeRender(dt)) { mustRefresh = true; @@ -141,13 +141,13 @@ public class MathInputScreen extends Screen { @Override public void render() { - final Renderer renderer = Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer; - MathInputScreen.fontBig.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + final Renderer renderer = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer; + MathInputScreen.fontBig.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); final int textColor = 0xFF000000; final int padding = 4; renderer.glColor(textColor); - userInput.draw(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine, renderer, padding, padding + 20); + userInput.draw(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display, renderer, padding, padding + 20); if (computingResult) { renderer.glColor3f(1, 1, 1); @@ -156,20 +156,20 @@ public class MathInputScreen extends Screen { final int size = 32; final int posY = computingAnimationIndex % 2; final int posX = (computingAnimationIndex - posY) / 2; - renderer.glFillRect(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getWidth() - size - 4, Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - size - 4, size, size, leftX + size * posX, leftY + size * posY, size, size); + renderer.glFillRect(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getWidth() - size - 4, WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - size - 4, size, size, leftX + size * posX, leftY + size * posY, size, size); if (computingBreakTipVisible) { - Utils.getFont(false).use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + Utils.getFont(false).use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glColor3f(0.75f, 0, 0); - renderer.glDrawStringRight(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getWidth() - 4 - size - 4, Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - size / 2 - renderer.getCurrentFont().getCharacterHeight() / 2 - 4, "Press (=) to stop"); + renderer.glDrawStringRight(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getWidth() - 4 - size - 4, WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - size / 2 - renderer.getCurrentFont().getCharacterHeight() / 2 - 4, "Press (=) to stop"); } } else if (!result.isContentEmpty()) { - result.draw(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine, renderer, Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getWidth() - result.getWidth() - 2, Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.getHeight() - result.getHeight() - 2); + result.draw(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display, renderer, WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getWidth() - result.getWidth() - 2, WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.getHeight() - result.getHeight() - 2); } } @Override public void renderTopmost() { - final Renderer renderer = Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer; + final Renderer renderer = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer; renderer.glColor3f(1, 1, 1); final int pos = 2; final int spacersNumb = 1; @@ -179,7 +179,7 @@ public class MathInputScreen extends Screen { } else { skinN = 21; } - Engine.INSTANCE.getHardwareDevice().getDisplayManager().guiSkin.use(Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().guiSkin.use(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display); renderer.glFillRect(2 + 18 * pos + 2 * spacersNumb, 2, 16, 16, 16 * skinN, 16 * 0, 16, 16); } @@ -195,7 +195,7 @@ public class MathInputScreen extends Screen { @Override public boolean onKeyPressed(final KeyPressedEvent k) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "MathInputScreen", "Pressed key " + k.getKey().toString()); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "MathInputScreen", "Pressed key " + k.getKey().toString()); try { switch (k.getKey()) { case OK: @@ -347,9 +347,9 @@ public class MathInputScreen extends Screen { userInput.clear(); result.clear(); currentStep = 0; - if (Engine.INSTANCE.getHardwareDevice().getDisplayManager().error != null) { - Engine.getPlatform().getConsoleUtils().out().println(1, "Resetting after error..."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().error = null; + if (WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error != null) { + WarpPI.getPlatform().getConsoleUtils().out().println(1, "Resetting after error..."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error = null; } return true; case SURD_MODE: @@ -361,7 +361,7 @@ public class MathInputScreen extends Screen { } return true; case debug1: - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new EmptyScreen()); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new EmptyScreen()); return true; case HISTORY_BACK: // if (Engine.INSTANCE.getHardwareDevice().getDisplayManager().canGoBack()) { @@ -428,7 +428,7 @@ public class MathInputScreen extends Screen { @SuppressWarnings("unchecked") private void swapInputScreen() { MathInputScreen mis = new MathInputScreen(this); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(mis); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(mis); } @SuppressWarnings("unused") @@ -517,10 +517,10 @@ public class MathInputScreen extends Screen { if (!step) { currentStep = 0; } - if (Engine.INSTANCE.getHardwareDevice().getDisplayManager().error != null) { + if (WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error != null) { //TODO: make the error management a global API rather than being relegated to this screen. - Engine.getPlatform().getConsoleUtils().out().println(1, "Resetting after error..."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().error = null; + WarpPI.getPlatform().getConsoleUtils().out().println(1, "Resetting after error..."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error = null; calc.f = null; calc.f2 = null; calc.resultsCount = 0; @@ -540,13 +540,13 @@ public class MathInputScreen extends Screen { calc.f2.clear(); } calc.f.add(expr); - Engine.getPlatform().getConsoleUtils().out().println(2, "INPUT: " + expr); + WarpPI.getPlatform().getConsoleUtils().out().println(2, "INPUT: " + expr); final MathSolver ms = new MathSolver(expr); final ObjectArrayList> resultSteps = ms.solveAllSteps(); resultSteps.add(0, Utils.newArrayList(expr)); final ObjectArrayList resultExpressions = resultSteps.get(resultSteps.size() - 1); for (final Function rr : resultExpressions) { - Engine.getPlatform().getConsoleUtils().out().println(0, "RESULT: " + rr.toString()); + WarpPI.getPlatform().getConsoleUtils().out().println(0, "RESULT: " + rr.toString()); } final ObjectArrayList> resultBlocks = MathParser.parseOutput(calc, resultExpressions); result.setContentAsMultipleGroups(resultBlocks); @@ -559,22 +559,22 @@ public class MathInputScreen extends Screen { } } } catch (final InterruptedException ex) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Computing thread stopped."); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Computing thread stopped."); } catch (final Exception ex) { - if (Engine.getPlatform().getSettings().isDebugEnabled()) { + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { ex.printStackTrace(); } throw new Error(Errors.SYNTAX_ERROR); } } catch (final Error e) { - d.errorStackTrace = Engine.getPlatform().stacktraceToString(e); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().error = e.id.toString(); + d.errorStackTrace = WarpPI.getPlatform().stacktraceToString(e); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error = e.id.toString(); System.err.println(e.id); } computingResult = false; }); - Engine.getPlatform().setThreadName(computingThread, "Computing Thread"); - Engine.getPlatform().setThreadDaemon(computingThread); + WarpPI.getPlatform().setThreadName(computingThread, "Computing Thread"); + WarpPI.getPlatform().setThreadDaemon(computingThread); computingThread.setPriority(Thread.NORM_PRIORITY + 3); computingThread.start(); return true; @@ -638,9 +638,9 @@ public class MathInputScreen extends Screen { boolean cancelled = false; for (final Function f : knownVarsInFunctions) { final ChooseVariableValueScreen cvs = new ChooseVariableValueScreen(this, new VariableValue((Variable) f, new Number(calc, 0))); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(cvs); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(cvs); try { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().screenChange.acquire(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().screenChange.acquire(); } catch (final InterruptedException e) {} if (cvs.resultNumberValue == null) { cancelled = true; @@ -661,9 +661,9 @@ public class MathInputScreen extends Screen { } } }); - Engine.getPlatform().setThreadName(ct, "Variables user-input queue thread"); + WarpPI.getPlatform().setThreadName(ct, "Variables user-input queue thread"); ct.setPriority(Thread.MIN_PRIORITY); - Engine.getPlatform().setThreadDaemon(ct); + WarpPI.getPlatform().setThreadDaemon(ct); ct.start(); } diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java index c9a06249..e9de8fe3 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.gui.screens; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.gui.HistoryBehavior; @@ -28,12 +28,12 @@ public class SolveForXScreen extends Screen { @Override public void render() { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4i(0, 0, 0, 64); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 4, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 4 + 1, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 4 + 1, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 0, 0); - Engine.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 4, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor4i(0, 0, 0, 64); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 4, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 4 + 1, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2 + 1, StaticVars.screenSize[1] / 4 + 1, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glColor3i(255, 0, 0); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().renderer.glDrawStringCenter(StaticVars.screenSize[0] / 2, StaticVars.screenSize[1] / 4, "WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE."); } @Override diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java b/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java index 57ecd8b3..b84f725f 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java @@ -1,6 +1,6 @@ package it.cavallium.warppi.math.parser; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.containers.InputContainer; @@ -83,17 +83,17 @@ public class MathParser { boolean lastLoopDidSomething; Function lastElement; - if (Engine.getPlatform().getSettings().isDebugEnabled()) { - Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "\tStatus: "); + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { + WarpPI.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "\tStatus: "); for (final Function f : functionsList) { - Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, f.toString()); + WarpPI.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, f.toString()); } - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE); } for (final MathParserStep step : steps) { - if (Engine.getPlatform().getSettings().isDebugEnabled()) { - Engine.getPlatform().getConsoleUtils().out().println(2, "Stack fixing step \"" + step.getStepName() + "\""); + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { + WarpPI.getPlatform().getConsoleUtils().out().println(2, "Stack fixing step \"" + step.getStepName() + "\""); } final int stepQty = step.requiresReversedIteration() ? -1 : 1, initialIndex = step.requiresReversedIteration() ? functionsList.size() - 1 : 0; @@ -114,12 +114,12 @@ public class MathParser { } } while (lastLoopDidSomething); - if (Engine.getPlatform().getSettings().isDebugEnabled()) { - Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "\tStatus: "); + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { + WarpPI.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "\tStatus: "); for (final Function f : functionsList) { - Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, f.toString()); + WarpPI.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, f.toString()); } - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE); } } diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java b/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java index e536030f..ca03c1fd 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java @@ -11,7 +11,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.Platform.StorageUtils; import it.cavallium.warppi.Platform.URLClassLoader; @@ -33,7 +33,7 @@ public class RulesManager { @SuppressWarnings({ "unchecked" }) public static void initialize() { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Loading the rules"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Loading the rules"); RulesManager.rules = new ObjectArrayList[RuleType.values().length]; for (final RuleType val : RuleType.values()) { RulesManager.rules[val.ordinal()] = new ObjectArrayList<>(); @@ -42,25 +42,25 @@ public class RulesManager { boolean compiledSomething = false; InputStream defaultRulesList; try { - defaultRulesList = Engine.getPlatform().getStorageUtils().getResourceStream("/default-rules.lst"); + defaultRulesList = WarpPI.getPlatform().getStorageUtils().getResourceStream("/default-rules.lst"); } catch (final IOException ex) { throw new FileNotFoundException("default-rules.lst not found!"); } final List ruleLines = new ArrayList<>(); - final File rulesPath = Engine.getPlatform().getStorageUtils().get("rules/"); + final File rulesPath = WarpPI.getPlatform().getStorageUtils().get("rules/"); if (rulesPath.exists()) { - for (final File f : Engine.getPlatform().getStorageUtils().walk(rulesPath)) { + for (final File f : WarpPI.getPlatform().getStorageUtils().walk(rulesPath)) { if (f.toString().endsWith(".java")) { - String path = Engine.getPlatform().getStorageUtils().relativize(rulesPath, f).toString(); + String path = WarpPI.getPlatform().getStorageUtils().relativize(rulesPath, f).toString(); path = path.substring(0, path.length() - ".java".length()); ruleLines.add(path); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Found external rule: " + f.getAbsolutePath()); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Found external rule: " + f.getAbsolutePath()); } } } - ruleLines.addAll(Engine.getPlatform().getStorageUtils().readAllLines(defaultRulesList)); + ruleLines.addAll(WarpPI.getPlatform().getStorageUtils().readAllLines(defaultRulesList)); - final File tDir = Engine.getPlatform().getStorageUtils().resolve(Engine.getPlatform().getStorageUtils().get(System.getProperty("java.io.tmpdir"), "WarpPi-Calculator"), "rules-rt"); + final File tDir = WarpPI.getPlatform().getStorageUtils().resolve(WarpPI.getPlatform().getStorageUtils().get(System.getProperty("java.io.tmpdir"), "WarpPi-Calculator"), "rules-rt"); // try { // final Path defaultResource = Utils.getResource("/math-rules-cache.zip"); // } @@ -68,15 +68,15 @@ public class RulesManager { File cacheFilePath = null; cacheFilePath = new File("math-rules-cache.zip"); boolean cacheFileExists = false; - if (Engine.getPlatform().isJavascript()) { - Engine.getPlatform().loadPlatformRules(); + if (WarpPI.getPlatform().isJavascript()) { + WarpPI.getPlatform().loadPlatformRules(); } else { if (cacheFilePath.exists()) { cacheFileExists = true; cacheFileStream = new FileInputStream(cacheFilePath); } else { try { - cacheFileStream = Engine.getPlatform().getStorageUtils().getResourceStream("/math-rules-cache.zip");//Paths.get(Utils.getJarDirectory().toString()).resolve("math-rules-cache.zip").toAbsolutePath( + cacheFileStream = WarpPI.getPlatform().getStorageUtils().getResourceStream("/math-rules-cache.zip");//Paths.get(Utils.getJarDirectory().toString()).resolve("math-rules-cache.zip").toAbsolutePath( org.apache.commons.io.FileUtils.copyInputStreamToFile(cacheFileStream, cacheFilePath); cacheFileExists = true; } catch (final IOException ex) { //File does not exists. @@ -88,7 +88,7 @@ public class RulesManager { if (tDir.exists()) { tDir.delete(); } - Engine.getPlatform().unzip(cacheFilePath.toString(), tDir.getParent().toString(), ""); + WarpPI.getPlatform().unzip(cacheFilePath.toString(), tDir.getParent().toString(), ""); useCache = !StaticVars.startupArguments.isUncached(); } catch (final Exception ex) { ex.printStackTrace(); @@ -100,28 +100,28 @@ public class RulesManager { final String[] ruleDetails = rulesLine.split(",", 1); final String ruleName = ruleDetails[0]; final String ruleNameEscaped = ruleName.replace(".", "_"); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", "Evaluating /rules/" + ruleNameEscaped + ".java"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", "Evaluating /rules/" + ruleNameEscaped + ".java"); final String pathWithoutExtension = "/rules/" + ruleNameEscaped; final String scriptFile = pathWithoutExtension + ".java"; - final InputStream resourcePath = Engine.getPlatform().getStorageUtils().getResourceStream(scriptFile); + final InputStream resourcePath = WarpPI.getPlatform().getStorageUtils().getResourceStream(scriptFile); if (resourcePath == null) { System.err.println(new FileNotFoundException("/rules/" + ruleName + ".java not found!")); } else { Rule r = null; if (useCache) { try { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", ruleName, "Trying to load cached rule"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", ruleName, "Trying to load cached rule"); r = RulesManager.loadClassRuleFromSourceFile(scriptFile, tDir); if (r != null) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", ruleName, "Loaded cached rule"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", ruleName, "Loaded cached rule"); } } catch (final Exception e) { e.printStackTrace(); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", ruleName, "Can't load the rule " + ruleNameEscaped + "!"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", ruleName, "Can't load the rule " + ruleNameEscaped + "!"); } } if (r == null || !useCache) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", ruleName, "This rule is not cached. Compiling"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", ruleName, "This rule is not cached. Compiling"); try { r = RulesManager.compileJavaRule(scriptFile, tDir); compiledSomething = true; @@ -137,27 +137,27 @@ public class RulesManager { } } } - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Loaded all the rules successfully"); - if (!Engine.getPlatform().isJavascript() && compiledSomething) { + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Loaded all the rules successfully"); + if (!WarpPI.getPlatform().isJavascript() && compiledSomething) { if (cacheFileExists || cacheFilePath.exists()) { cacheFilePath.delete(); } - Engine.getPlatform().zip(tDir.toString(), cacheFilePath.toString(), ""); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Cached the compiled rules"); + WarpPI.getPlatform().zip(tDir.toString(), cacheFilePath.toString(), ""); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_NODEBUG, "RulesManager", "Cached the compiled rules"); } if (cacheFileStream != null) { cacheFileStream.close(); } } catch (URISyntaxException | IOException e) { e.printStackTrace(); - Engine.getPlatform().exit(1); + WarpPI.getPlatform().exit(1); } } public static Rule compileJavaRule(final String scriptFile, final File tDir) throws IOException, URISyntaxException, InstantiationException, IllegalAccessException, ClassNotFoundException { - final InputStream resource = Engine.getPlatform().getStorageUtils().getResourceStream(scriptFile); - final String text = Engine.getPlatform().getStorageUtils().read(resource); + final InputStream resource = WarpPI.getPlatform().getStorageUtils().getResourceStream(scriptFile); + final String text = WarpPI.getPlatform().getStorageUtils().read(resource); final String[] textArray = text.split("\\n", 6); if (textArray[3].contains("PATH=")) { final String javaClassDeclaration = textArray[3].substring(6); @@ -166,19 +166,19 @@ public class RulesManager { final String javaClassNameAndPath = new StringBuilder("it.cavallium.warppi.math.rules.").append(javaClassDeclaration).toString(); extIndex = javaClassNameAndPath.lastIndexOf('.'); final String javaCode = new StringBuilder("package ").append(javaClassNameAndPath.substring(0, extIndex >= 0 ? extIndex : javaClassNameAndPath.length())).append(";\n").append(textArray[5]).toString(); - final File tDirPath = Engine.getPlatform().getStorageUtils().getParent(Engine.getPlatform().getStorageUtils().resolve(tDir, javaClassNameAndPath.replace('.', File.separatorChar))); - final File tFileJava = Engine.getPlatform().getStorageUtils().resolve(tDirPath, javaClassNameOnly + ".java"); - final File tFileClass = Engine.getPlatform().getStorageUtils().resolve(tDirPath, javaClassNameOnly + ".class"); + final File tDirPath = WarpPI.getPlatform().getStorageUtils().getParent(WarpPI.getPlatform().getStorageUtils().resolve(tDir, javaClassNameAndPath.replace('.', File.separatorChar))); + final File tFileJava = WarpPI.getPlatform().getStorageUtils().resolve(tDirPath, javaClassNameOnly + ".java"); + final File tFileClass = WarpPI.getPlatform().getStorageUtils().resolve(tDirPath, javaClassNameOnly + ".class"); if (!tDirPath.exists()) { - Engine.getPlatform().getStorageUtils().createDirectories(tDirPath); + WarpPI.getPlatform().getStorageUtils().createDirectories(tDirPath); } if (tFileJava.exists()) { tFileJava.delete(); } - Engine.getPlatform().getStorageUtils(); - Engine.getPlatform().getStorageUtils(); - Engine.getPlatform().getStorageUtils().write(tFileJava, javaCode.getBytes("UTF-8"), StorageUtils.OpenOptionWrite, StorageUtils.OpenOptionCreate); - final boolean compiled = Engine.getPlatform().compile(new String[] { "-nowarn", "-1.8", "-proc:none", tFileJava.toString() }, new PrintWriter(System.out), new PrintWriter(System.err)); + WarpPI.getPlatform().getStorageUtils(); + WarpPI.getPlatform().getStorageUtils(); + WarpPI.getPlatform().getStorageUtils().write(tFileJava, javaCode.getBytes("UTF-8"), StorageUtils.OpenOptionWrite, StorageUtils.OpenOptionCreate); + final boolean compiled = WarpPI.getPlatform().compile(new String[] { "-nowarn", "-1.8", "-proc:none", tFileJava.toString() }, new PrintWriter(System.out), new PrintWriter(System.err)); if (StaticVars.startupArguments.isUncached()) { tFileJava.deleteOnExit(); } else { @@ -197,12 +197,12 @@ public class RulesManager { public static Rule loadClassRuleFromSourceFile(final String scriptFile, final File tDir) throws IOException, URISyntaxException, InstantiationException, IllegalAccessException, ClassNotFoundException { - final InputStream resource = Engine.getPlatform().getStorageUtils().getResourceStream(scriptFile); - final String text = Engine.getPlatform().getStorageUtils().read(resource); + final InputStream resource = WarpPI.getPlatform().getStorageUtils().getResourceStream(scriptFile); + final String text = WarpPI.getPlatform().getStorageUtils().read(resource); final String[] textArray = text.split("\\n", 6); if (textArray[3].contains("PATH=")) { final String javaClassName = textArray[3].substring(6); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "RulesManager", "Rule java class name: " + javaClassName); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "RulesManager", "Rule java class name: " + javaClassName); final String javaClassNameAndPath = new StringBuilder("it.cavallium.warppi.math.rules.").append(javaClassName).toString(); try { return RulesManager.loadClassRuleDirectly(javaClassNameAndPath, tDir); @@ -217,7 +217,7 @@ public class RulesManager { public static Rule loadClassRuleDirectly(final String javaClassNameAndPath, final File tDir) throws IOException, URISyntaxException, InstantiationException, IllegalAccessException, ClassNotFoundException { - final URLClassLoader cl = Engine.getPlatform().newURLClassLoader(new URL[] { tDir.toURI().toURL() }); + final URLClassLoader cl = WarpPI.getPlatform().newURLClassLoader(new URL[] { tDir.toURI().toURL() }); final Class aClass = cl.loadClass(javaClassNameAndPath); cl.close(); return (Rule) aClass.newInstance(); @@ -259,6 +259,6 @@ public class RulesManager { public static void addRule(final Rule rule) { RulesManager.rules[rule.getRuleType().ordinal()].add(rule); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", rule.getRuleName(), "Loaded as " + rule.getRuleType() + " rule"); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "RulesManager", rule.getRuleName(), "Loaded as " + rule.getRuleType() + " rule"); } } diff --git a/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java b/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java index 8394621e..d87e32ce 100644 --- a/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java +++ b/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.rules.Rule; @@ -40,7 +40,7 @@ public class MathSolver { public ObjectArrayList> solveAllSteps() throws InterruptedException, Error { final ObjectArrayList> steps = new ObjectArrayList<>(); ObjectArrayList lastFnc = null, currFnc = new ObjectArrayList<>(); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Solving all steps. Input: " + initialFunction.toString()); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Solving all steps. Input: " + initialFunction.toString()); currFnc.add(initialFunction); long stepNumber = 0; int initStepState = 0, endStepState = 0; @@ -66,11 +66,11 @@ public class MathSolver { } lastFnc = currFnc; initStepState = stepState.get(); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Starting step " + stepStates[initStepState] + ". Input: " + currFnc); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Starting step " + stepStates[initStepState] + ". Input: " + currFnc); final ObjectArrayList stepResult = solveStep(lastFnc, stepState); if (stepResult != null) { for (final Function result : stepResult) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, result.toString()); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, result.toString()); } currFnc = stepResult; steps.add(currFnc); @@ -78,22 +78,22 @@ public class MathSolver { endStepState = stepState.get(); stepNumber++; - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Step result: " + stepResult); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Step result details: Consecutive steps that did nothing: " + consecutiveNullSteps + ", this step did " + stepStateRepetitions + " simplifications."); - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Next step state: " + stepStates[endStepState]); - if (Engine.getPlatform().getSettings().isDebugEnabled()) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, currFnc + " is " + (checkEquals(currFnc, lastFunctions[0][endStepState]) ? "" : "not ") + "equals to [0]:" + lastFunctions[0][endStepState]); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Step result: " + stepResult); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Step result details: Consecutive steps that did nothing: " + consecutiveNullSteps + ", this step did " + stepStateRepetitions + " simplifications."); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Next step state: " + stepStates[endStepState]); + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, currFnc + " is " + (checkEquals(currFnc, lastFunctions[0][endStepState]) ? "" : "not ") + "equals to [0]:" + lastFunctions[0][endStepState]); } - if (Engine.getPlatform().getSettings().isDebugEnabled()) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, currFnc + " is " + (checkEquals(currFnc, lastFunctions[1][endStepState]) ? "" : "not ") + "equals to [1]:" + lastFunctions[1][endStepState]); + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) { + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, currFnc + " is " + (checkEquals(currFnc, lastFunctions[1][endStepState]) ? "" : "not ") + "equals to [1]:" + lastFunctions[1][endStepState]); } } while (consecutiveNullSteps < stepStates.length && !checkEquals(currFnc, lastFunctions[0][endStepState]) && !checkEquals(currFnc, lastFunctions[1][endStepState])); if (consecutiveNullSteps >= stepStates.length) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Loop ended because " + consecutiveNullSteps + " >= " + stepStates.length); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Loop ended because " + consecutiveNullSteps + " >= " + stepStates.length); } else if (checkEquals(currFnc, lastFunctions[0][endStepState])) { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Loop ended because " + currFnc + " is equals to [0]:" + lastFunctions[0][endStepState]); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Loop ended because " + currFnc + " is equals to [0]:" + lastFunctions[0][endStepState]); } else { - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Loop ended because " + currFnc + " is equals to [1]:" + lastFunctions[1][endStepState]); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", "Loop ended because " + currFnc + " is equals to [1]:" + lastFunctions[1][endStepState]); } return steps; } @@ -244,7 +244,7 @@ public class MathSolver { if (appliedRules.isEmpty()) { results = null; } - if (Engine.getPlatform().getConsoleUtils().getOutputLevel() >= ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN & results != null && !appliedRules.isEmpty()) { + if (WarpPI.getPlatform().getConsoleUtils().getOutputLevel() >= ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN & results != null && !appliedRules.isEmpty()) { final StringBuilder rulesStr = new StringBuilder(); for (final Rule r : appliedRules) { rulesStr.append(r.getRuleName()); @@ -253,7 +253,7 @@ public class MathSolver { if (rulesStr.length() > 0) { rulesStr.setLength(rulesStr.length() - 1); } - Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", currentAcceptedRules.toString(), "Applied rules: " + rulesStr); + WarpPI.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", currentAcceptedRules.toString(), "Applied rules: " + rulesStr); } return results; } diff --git a/core/src/main/java/it/cavallium/warppi/util/Utils.java b/core/src/main/java/it/cavallium/warppi/util/Utils.java index 0336f252..58cc123b 100644 --- a/core/src/main/java/it/cavallium/warppi/util/Utils.java +++ b/core/src/main/java/it/cavallium/warppi/util/Utils.java @@ -15,7 +15,7 @@ import java.util.Map; import org.nevec.rjm.BigDecimalMath; import org.nevec.rjm.Rational; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.math.Function; @@ -399,7 +399,7 @@ public class Utils { } public static final BinaryFont getFont(final boolean small, final boolean zoomed) { - return Engine.INSTANCE.getHardwareDevice().getDisplayManager().fonts[Utils.getFontIndex(small, zoomed)]; + return WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().fonts[Utils.getFontIndex(small, zoomed)]; } public static final int getFontIndex(final boolean small, final boolean zoomed) { @@ -423,14 +423,14 @@ public class Utils { public static final int getFontHeight(final boolean small, final boolean zoomed) { if (small) { if (zoomed) { - return Engine.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[3]; + return WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[3]; } else { - return Engine.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[1]; + return WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[1]; } } else if (zoomed) { - return Engine.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[2]; + return WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[2]; } else { - return Engine.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[0]; + return WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().glyphsHeight[0]; } } @@ -567,7 +567,7 @@ public class Utils { } public static boolean isWindows() { - return Engine.getPlatform().getOsName().indexOf("win") >= 0; + return WarpPI.getPlatform().getOsName().indexOf("win") >= 0; } public static ObjectArrayList newArrayList(final T o) { @@ -578,7 +578,7 @@ public class Utils { public static InputStream getResourceStreamSafe(final String string) throws IOException, URISyntaxException { try { - return Engine.getPlatform().getStorageUtils().getResourceStream(string); + return WarpPI.getPlatform().getStorageUtils().getResourceStream(string); } catch (final Exception ex) { return null; } diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopImageReader.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopImageReader.java index feb4e75a..5418f080 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopImageReader.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopImageReader.java @@ -8,7 +8,7 @@ import java.io.InputStream; import javax.imageio.ImageIO; import ar.com.hjg.pngj.ImageLineInt; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.ImageUtils.ImageReader; public class DesktopImageReader implements ImageReader { diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java index c08ec638..1ad59559 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java @@ -6,11 +6,17 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.net.URL; import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; import org.apache.commons.io.FileUtils; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.BacklightOutputDevice; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.KeyboardInputDevice; +import it.cavallium.warppi.device.input.TouchInputDevice; import it.cavallium.warppi.Platform; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.impl.jogl.JOGLEngine; @@ -28,7 +34,6 @@ public class DesktopPlatform implements Platform { private final DesktopStorageUtils su; private final ImageUtils pu; private final String on; - private final Map el; private final DesktopSettings settings; private Boolean runningOnRaspberryOverride = null; @@ -38,9 +43,6 @@ public class DesktopPlatform implements Platform { su = new DesktopStorageUtils(); pu = new DesktopImageUtils(); on = System.getProperty("os.name").toLowerCase(); - el = new HashMap<>(); - el.put("CPU engine", new SwingEngine()); - el.put("GPU engine", new JOGLEngine()); settings = new DesktopSettings(); } @@ -106,14 +108,14 @@ public class DesktopPlatform implements Platform { @Override public void alphaChanged(final boolean val) { - final GraphicEngine currentEngine = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine; + final DisplayOutputDevice currentEngine = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display; if (currentEngine instanceof SwingEngine) ((SwingEngine) currentEngine).setAlphaChanged(val); } @Override public void shiftChanged(final boolean val) { - final GraphicEngine currentEngine = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine; + final DisplayOutputDevice currentEngine = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display; if (currentEngine instanceof SwingEngine) ((SwingEngine) currentEngine).setShiftChanged(val); } @@ -133,16 +135,6 @@ public class DesktopPlatform implements Platform { return new DesktopURLClassLoader(urls); } - @Override - public Map getEnginesList() { - return el; - } - - @Override - public GraphicEngine getEngine(final String string) throws NullPointerException { - return el.get(string); - } - @Override public void throwNewExceptionInInitializerError(final String text) { throw new ExceptionInInitializerError(); @@ -219,9 +211,9 @@ public class DesktopPlatform implements Platform { public boolean isRunningOnRaspberry() { if (runningOnRaspberryOverride != null) return runningOnRaspberryOverride; return CacheUtils.get("isRunningOnRaspberry", 24 * 60 * 60 * 1000, () -> { - if (Engine.getPlatform().isJavascript()) + if (WarpPI.getPlatform().isJavascript()) return false; - if (Engine.getPlatform().getOsName().equals("Linux")) + if (WarpPI.getPlatform().getOsName().equals("Linux")) try { final File osRelease = new File("/etc", "os-release"); return FileUtils.readLines(osRelease, "UTF-8").stream().map(String::toLowerCase).anyMatch(line -> line.contains("raspbian") && line.contains("name")); @@ -233,4 +225,30 @@ public class DesktopPlatform implements Platform { }); } + @Override + public TouchInputDevice getTouchInputDevice() { + // TODO Auto-generated method stub + return null; + } + + @Override + public KeyboardInputDevice getKeyboardInputDevice() { + // TODO Auto-generated method stub + return null; + } + + @Override + public DisplayOutputDevice getDisplayOutputDevice() { + return displayOutput + new SwingEngine(); + new JOGLEngine(); + List availableDevices = new LinkedList<>(); + } + + @Override + public BacklightOutputDevice getBacklightOutputDevice() { + // TODO Auto-generated method stub + return null; + } + } diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingEngine.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingEngine.java index 2af34820..16534f99 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingEngine.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingEngine.java @@ -5,7 +5,7 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.util.concurrent.Semaphore; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; @@ -53,7 +53,7 @@ public class SwingEngine implements GraphicEngine { initialized = false; exitSemaphore = new Semaphore(0); INSTANCE = new SwingWindow(this); - setResizable(Engine.getPlatform().getSettings().isDebugEnabled()); + setResizable(WarpPI.getPlatform().getSettings().isDebugEnabled()); setDisplayMode((int) (StaticVars.screenSize[0] / StaticVars.windowZoom.getLastValue()), (int) (StaticVars.screenSize[1] / StaticVars.windowZoom.getLastValue())); INSTANCE.setVisible(true); initialized = true; @@ -112,7 +112,7 @@ public class SwingEngine implements GraphicEngine { @Deprecated() public void refresh() { - if (Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen() == null || Engine.INSTANCE.getHardwareDevice().getDisplayManager().error != null && Engine.INSTANCE.getHardwareDevice().getDisplayManager().error.length() > 0 || Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen() == null || Engine.INSTANCE.getHardwareDevice().getDisplayManager().getScreen().mustBeRefreshed()) + if (WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen() == null || WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error != null && WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().error.length() > 0 || WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen() == null || WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen().mustBeRefreshed()) INSTANCE.c.paintImmediately(0, 0, getWidth(), getHeight()); } diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingFont.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingFont.java index 00266069..e53aa727 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingFont.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingFont.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.gui.graphicengine.impl.swing; import java.io.IOException; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.impl.common.RFTFont; public class SwingFont extends RFTFont { @@ -16,7 +16,7 @@ public class SwingFont extends RFTFont { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { if (d.getRenderer() instanceof SwingRenderer) ((SwingRenderer) d.getRenderer()).currentFont = this; } diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingSkin.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingSkin.java index 9dbddb85..606d27cc 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingSkin.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingSkin.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.gui.graphicengine.impl.swing; import java.io.IOException; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.impl.common.PngSkin; public class SwingSkin extends PngSkin { @@ -12,7 +12,7 @@ public class SwingSkin extends PngSkin { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { if (d.getRenderer() instanceof SwingRenderer) ((SwingRenderer) d.getRenderer()).currentSkin = this; } diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingWindow.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingWindow.java index 76cbd429..f75b0e60 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingWindow.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/swing/SwingWindow.java @@ -27,9 +27,9 @@ import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.TouchEndEvent; import it.cavallium.warppi.event.TouchMoveEvent; import it.cavallium.warppi.event.TouchPoint; @@ -70,7 +70,7 @@ public class SwingWindow extends JFrame { mult = StaticVars.windowZoomFunction.apply(StaticVars.windowZoom.getLastValue()).intValue(); - if (!Engine.getPlatform().getSettings().isDebugEnabled()) { + if (!WarpPI.getPlatform().getSettings().isDebugEnabled()) { // Create a new blank cursor. final Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImg, new Point(0, 0), "blank cursor"); @@ -96,7 +96,7 @@ public class SwingWindow extends JFrame { addComponentListener(new ComponentListener() { @Override public void componentHidden(final ComponentEvent e) { - Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine.destroy(); + WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display.destroy(); } @Override @@ -109,7 +109,7 @@ public class SwingWindow extends JFrame { @Override public void componentShown(final ComponentEvent e) { - if (Engine.getPlatform().getSettings().isDebugEnabled()) + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) SwingWindow.this.centerWindow(); } }); @@ -142,7 +142,7 @@ public class SwingWindow extends JFrame { touches.add(p); changedTouches.add(p); final TouchMoveEvent tse = new TouchMoveEvent(changedTouches, touches); - Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchMove(tse); + WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchMove(tse); } @Override @@ -161,7 +161,7 @@ public class SwingWindow extends JFrame { touches.add(p); changedTouches.add(p); final TouchStartEvent tse = new TouchStartEvent(changedTouches, touches); - Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchStart(tse); + WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchStart(tse); } @Override @@ -172,7 +172,7 @@ public class SwingWindow extends JFrame { final ObjectArrayList changedTouches = new ObjectArrayList<>(); changedTouches.add(p); final TouchEndEvent tse = new TouchEndEvent(changedTouches, touches); - Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchEnd(tse); + WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchEnd(tse); } @Override @@ -185,7 +185,7 @@ public class SwingWindow extends JFrame { if (newZoomValue != mult) { mult = (int) newZoomValue.floatValue(); onResize.onNext(new Integer[] { getWWidth(), getWHeight() }); - Engine.getPlatform().getConsoleUtils().out().println(3, "Engine", "CPU", "Zoom changed"); + WarpPI.getPlatform().getConsoleUtils().out().println(3, "Engine", "CPU", "Zoom changed"); } }); } @@ -234,7 +234,7 @@ public class SwingWindow extends JFrame { } private void createBtn(final int row, final int col) throws IOException, URISyntaxException { - final BufferedImage img = ImageIO.read(Engine.getPlatform().getStorageUtils().getResourceStream("/desktop-buttons.png")); + final BufferedImage img = ImageIO.read(WarpPI.getPlatform().getStorageUtils().getResourceStream("/desktop-buttons.png")); final SwingAdvancedButton b = new SwingAdvancedButton(img, new Dimension((int) (BTN_SIZE * 1.5), BTN_SIZE)); b.drawDefaultComponent = false; b.setText(Keyboard.getKeyName(row, col)); diff --git a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLEngine.java b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLEngine.java index 2b1dd570..b6b1b22e 100644 --- a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLEngine.java +++ b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLEngine.java @@ -11,7 +11,7 @@ import java.util.concurrent.Semaphore; import com.jogamp.opengl.GLProfile; import com.jogamp.opengl.util.texture.Texture; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; @@ -79,7 +79,7 @@ public class JOGLEngine implements GraphicEngine { wnd = new NEWTWindow(this); wnd.create(); setDisplayMode(StaticVars.screenSize[0], StaticVars.screenSize[1]); - setResizable(Engine.getPlatform().getSettings().isDebugEnabled()); + setResizable(WarpPI.getPlatform().getSettings().isDebugEnabled()); initialized = true; wnd.onInitialized = onInitialized; } diff --git a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLFont.java b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLFont.java index 3e02de0d..eed0180c 100644 --- a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLFont.java +++ b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLFont.java @@ -12,9 +12,9 @@ import ar.com.hjg.pngj.ImageInfo; import ar.com.hjg.pngj.ImageLineHelper; import ar.com.hjg.pngj.ImageLineInt; import ar.com.hjg.pngj.PngWriter; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.BinaryFont; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.impl.common.RFTFont; public class JOGLFont implements BinaryFont { @@ -35,11 +35,11 @@ public class JOGLFont implements BinaryFont { private boolean initialized = false; private File tmpFont; - JOGLFont(final GraphicEngine g, final String name) throws IOException { + JOGLFont(final DisplayOutputDevice g, final String name) throws IOException { this(g, null, name); } - public JOGLFont(final GraphicEngine g, final String path, final String name) throws IOException { + public JOGLFont(final DisplayOutputDevice g, final String path, final String name) throws IOException { load(path, name); ((JOGLEngine) g).registerFont(this); } @@ -63,10 +63,10 @@ public class JOGLFont implements BinaryFont { intervalsTotalSize = font.intervalsTotalSize; boolean[][] rawchars = font.rawchars; font = null; - Engine.getPlatform().gc(); + WarpPI.getPlatform().gc(); pregenTexture(rawchars); rawchars = null; - Engine.getPlatform().gc(); + WarpPI.getPlatform().gc(); } public int[] getCharIndexes(final String txt) { @@ -154,7 +154,7 @@ public class JOGLFont implements BinaryFont { } chars = null; png.end(); - Engine.getPlatform().gc(); + WarpPI.getPlatform().gc(); try { memoryWidth = w; @@ -164,7 +164,7 @@ public class JOGLFont implements BinaryFont { textureH = h; outputStream.flush(); outputStream.close(); - Engine.getPlatform().gc(); + WarpPI.getPlatform().gc(); tmpFont = f; } catch (GLException | IOException e) { e.printStackTrace(); @@ -185,14 +185,14 @@ public class JOGLFont implements BinaryFont { } @Override - public void initialize(final GraphicEngine d) { + public void initialize(final DisplayOutputDevice d) { genTexture(); tmpFont = null; initialized = true; } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { if (!initialized) initialize(d); final JOGLRenderer r = (JOGLRenderer) d.getRenderer(); diff --git a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLRenderer.java b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLRenderer.java index 6cdea1f2..db5287c6 100644 --- a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLRenderer.java +++ b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLRenderer.java @@ -17,7 +17,7 @@ import com.jogamp.opengl.util.texture.Texture; import com.jogamp.opengl.util.texture.TextureData; import com.jogamp.opengl.util.texture.TextureIO; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -272,7 +272,7 @@ public class JOGLRenderer implements Renderer { final int imgW = img.getWidth(); final int imgH = img.getHeight(); img = null; - Engine.getPlatform().gc(); + WarpPI.getPlatform().gc(); return new OpenedTextureData(imgW, imgH, f, isResource); } @@ -301,7 +301,7 @@ public class JOGLRenderer implements Renderer { final Texture tex = TextureIO.newTexture(f, false); if (deleteOnExit && f.exists()) try { - if (Engine.getPlatform().getSettings().isDebugEnabled()) + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) throw new IOException("Delete on exit!"); f.delete(); } catch (final Exception ex) { diff --git a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLSkin.java b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLSkin.java index 08e15a86..6fbcfd5a 100644 --- a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLSkin.java +++ b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/JOGLSkin.java @@ -8,8 +8,8 @@ import java.nio.file.Paths; import com.jogamp.opengl.GLException; import com.jogamp.opengl.util.texture.Texture; -import it.cavallium.warppi.Engine; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.Skin; import it.cavallium.warppi.gui.graphicengine.impl.jogl.JOGLRenderer.OpenedTextureData; @@ -23,21 +23,21 @@ public class JOGLSkin implements Skin { private boolean initialized = false; private boolean isResource; - JOGLSkin(final GraphicEngine d, final String file) throws IOException { + JOGLSkin(final DisplayOutputDevice d, final String file) throws IOException { load(file); } @Override public void load(final String file) throws IOException { final boolean isResource = !Files.exists(Paths.get(file)); - if (isResource && Engine.getPlatform().getStorageUtils().getResourceStream(file) == null) + if (isResource && WarpPI.getPlatform().getStorageUtils().getResourceStream(file) == null) throw new IOException("File '" + file + "' not found!"); texturePath = file; this.isResource = isResource; } @Override - public void initialize(final GraphicEngine d) { + public void initialize(final DisplayOutputDevice d) { try { final OpenedTextureData i = JOGLRenderer.openTexture(texturePath, isResource); t = JOGLRenderer.importTexture(i.f, i.deleteOnExit); @@ -52,7 +52,7 @@ public class JOGLSkin implements Skin { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { if (!initialized) initialize(d); final JOGLRenderer r = (JOGLRenderer) d.getRenderer(); diff --git a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/NEWTWindow.java b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/NEWTWindow.java index f574617e..b556d81a 100644 --- a/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/NEWTWindow.java +++ b/engine-jogl/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jogl/NEWTWindow.java @@ -50,9 +50,10 @@ import com.jogamp.opengl.fixedfunc.GLPointerFunc; import com.jogamp.opengl.util.Animator; import com.jogamp.opengl.util.texture.Texture; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.event.TouchEndEvent; import it.cavallium.warppi.event.TouchMoveEvent; @@ -61,7 +62,6 @@ import it.cavallium.warppi.event.TouchStartEvent; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.SimpleSubject; import it.cavallium.warppi.flow.Subject; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** @@ -125,7 +125,7 @@ class NEWTWindow implements GLEventListener { System.err.println("Le OpenGL non sono presenti su questo computer!"); return; } - if (Engine.getPlatform().getSettings().isDebugEnabled()) + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) System.setProperty("jnlp.newt.window.icons", "res/icons/calculator-016.png res/icons/calculator-018.png res/icons/calculator-256.png"); final GLCapabilities caps = new GLCapabilities(GLProfile.get(GLProfile.GL2ES1)); System.out.println("Loaded OpenGL"); @@ -150,7 +150,7 @@ class NEWTWindow implements GLEventListener { @Override public void windowDestroyed(final WindowEvent e) { - final GraphicEngine engine = Engine.INSTANCE.getHardwareDevice().getDisplayManager().engine; + final DisplayOutputDevice engine = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().display; if (engine.isInitialized()) engine.destroy(); } @@ -361,10 +361,10 @@ class NEWTWindow implements GLEventListener { final float[] ps = e.getAllPressures(); final short[] is = e.getAllPointerIDs(); for (int i = 0; i < e.getPointerCount(); i++) - newPoints.add(Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().makePoint(is[i], xs[i], ys[i], disp.getWidth(), disp.getHeight(), 5, 5, ps[i], 0)); + newPoints.add(WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().makePoint(is[i], xs[i], ys[i], disp.getWidth(), disp.getHeight(), 5, 5, ps[i], 0)); changedPoints.add(newPoints.get(0)); touches = newPoints; - Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchStart(new TouchStartEvent(changedPoints, touches)); + WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchStart(new TouchStartEvent(changedPoints, touches)); } @Override @@ -378,11 +378,11 @@ class NEWTWindow implements GLEventListener { final float[] ps = e.getAllPressures(); final short[] is = e.getAllPointerIDs(); for (int i = 0; i < e.getPointerCount(); i++) - newPoints.add(Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().makePoint(is[i], xs[i], ys[i], disp.getWidth(), disp.getHeight(), 5, 5, ps[i], 0)); + newPoints.add(WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().makePoint(is[i], xs[i], ys[i], disp.getWidth(), disp.getHeight(), 5, 5, ps[i], 0)); changedPoints.add(newPoints.get(0)); newPoints.remove(0); touches = newPoints; - Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchEnd(new TouchEndEvent(changedPoints, touches)); + WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchEnd(new TouchEndEvent(changedPoints, touches)); } @Override @@ -403,7 +403,7 @@ class NEWTWindow implements GLEventListener { final float[] ps = e.getAllPressures(); final short[] is = e.getAllPointerIDs(); for (int i = 0; i < e.getPointerCount(); i++) - newPoints.add(Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().makePoint(is[i], xs[i], ys[i], disp.getWidth(), disp.getHeight(), 5, 5, ps[i], 0)); + newPoints.add(WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().makePoint(is[i], xs[i], ys[i], disp.getWidth(), disp.getHeight(), 5, 5, ps[i], 0)); newPoints.forEach((newp) -> { oldPoints.forEach((oldp) -> { if (newp.getID() == oldp.getID()) @@ -412,7 +412,7 @@ class NEWTWindow implements GLEventListener { }); }); touches = newPoints; - Engine.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchMove(new TouchMoveEvent(changedPoints, touches)); + WarpPI.INSTANCE.getHardwareDevice().getInputManager().getTouchDevice().onTouchMove(new TouchMoveEvent(changedPoints, touches)); } } @@ -434,7 +434,7 @@ class NEWTWindow implements GLEventListener { final GL2ES1 gl = drawable.getGL().getGL2ES1(); onGLContext.onNext(gl); - if (Engine.getPlatform().getSettings().isDebugEnabled()) + if (WarpPI.getPlatform().getSettings().isDebugEnabled()) //Vsync gl.setSwapInterval(1); else diff --git a/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBFont.java b/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBFont.java index 115fad26..480cc4b6 100644 --- a/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBFont.java +++ b/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBFont.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.gui.graphicengine.impl.framebuffer; import java.io.IOException; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.impl.common.RFTFont; public class FBFont extends RFTFont { @@ -16,7 +16,7 @@ public class FBFont extends RFTFont { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { @SuppressWarnings("unused") final FBEngine dfb = (FBEngine) d; // TODO: implement diff --git a/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBSkin.java b/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBSkin.java index 4ad36356..919b1c06 100644 --- a/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBSkin.java +++ b/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/framebuffer/FBSkin.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.gui.graphicengine.impl.framebuffer; import java.io.IOException; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.impl.common.PngSkin; public class FBSkin extends PngSkin { @@ -12,7 +12,7 @@ public class FBSkin extends PngSkin { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { @SuppressWarnings("unused") final FBEngine dfb = (FBEngine) d; // TODO: implement diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java index cbbf986d..5fec42f8 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java @@ -8,6 +8,8 @@ import java.util.HashMap; import java.util.Map; import it.cavallium.warppi.Platform; +import it.cavallium.warppi.device.display.DisplayOutputDevice; +import it.cavallium.warppi.device.input.KeyboardInputDevice; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.impl.framebuffer.FBEngine; import it.cavallium.warppi.gui.graphicengine.impl.jogl.JOGLEngine; @@ -20,6 +22,7 @@ public class HardwarePlatform implements Platform { private final HardwareConsoleUtils cu; private final HardwareGpio gi; + private final HardwareKeyboard hk; private final HardwareStorageUtils su; private final ImageUtils pu; private final String on; @@ -30,6 +33,7 @@ public class HardwarePlatform implements Platform { public HardwarePlatform() { cu = new HardwareConsoleUtils(); gi = new HardwareGpio(); + hk = new HardwareKeyboard(); su = new HardwareStorageUtils(); pu = new HardwareImageUtils(); on = System.getProperty("os.name").toLowerCase(); @@ -49,6 +53,11 @@ public class HardwarePlatform implements Platform { return gi; } + @Override + public KeyboardInputDevice getHardwareKeyboard() { + return gi; + } + @Override public StorageUtils getStorageUtils() { return su; @@ -123,12 +132,12 @@ public class HardwarePlatform implements Platform { } @Override - public Map getEnginesList() { + public Map getGraphicEnginesList() { return el; } @Override - public GraphicEngine getEngine(final String string) throws NullPointerException { + public DisplayOutputDevice getGraphicEngine(final String string) throws NullPointerException { return el.get(string); } diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java index 10b18814..a11ca251 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java @@ -16,10 +16,10 @@ import org.teavm.jso.dom.html.HTMLElement; import org.teavm.jso.dom.html.HTMLInputElement; import org.teavm.jso.dom.xml.NodeList; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.Platform.Semaphore; -import it.cavallium.warppi.device.Keyboard; +import it.cavallium.warppi.device.input.Keyboard; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; @@ -86,7 +86,7 @@ public class HtmlEngine implements GraphicEngine { @Override public void create(final Runnable onInitialized) { - exitSemaphore = Engine.getPlatform().newSemaphore(0); + exitSemaphore = WarpPI.getPlatform().newSemaphore(0); width = -1; height = -1; canvas = (HTMLCanvasElement) HtmlEngine.document.createElement("canvas"); @@ -277,8 +277,8 @@ public class HtmlEngine implements GraphicEngine { e.printStackTrace(); } }); - Engine.getPlatform().setThreadName(th, "Canvas rendering thread"); - Engine.getPlatform().setThreadDaemon(th); + WarpPI.getPlatform().setThreadName(th, "Canvas rendering thread"); + WarpPI.getPlatform().setThreadDaemon(th); th.start(); } @@ -316,7 +316,7 @@ public class HtmlEngine implements GraphicEngine { @Override public boolean isSupported() { - return Engine.getPlatform().isJavascript(); + return WarpPI.getPlatform().isJavascript(); } @Override diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java index b66f448d..3b5d6a74 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java @@ -7,7 +7,7 @@ import org.teavm.jso.canvas.CanvasRenderingContext2D; import org.teavm.jso.dom.html.HTMLCanvasElement; import org.teavm.jso.dom.html.HTMLDocument; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.impl.common.RFTFont; public class HtmlFont extends RFTFont { @@ -47,7 +47,7 @@ public class HtmlFont extends RFTFont { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { if (d.getRenderer() instanceof HtmlRenderer) ((HtmlRenderer) d.getRenderer()).f = this; } diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java index 39090002..6d735c52 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java @@ -9,13 +9,13 @@ import org.teavm.jso.dom.events.Event; import org.teavm.jso.dom.html.HTMLDocument; import org.teavm.jso.dom.html.HTMLImageElement; -import it.cavallium.warppi.Engine; +import it.cavallium.warppi.WarpPI; import it.cavallium.warppi.Platform.Semaphore; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.SimpleSubject; import it.cavallium.warppi.flow.Subject; import it.cavallium.warppi.flow.ValueReference; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Skin; public class HtmlSkin implements Skin { @@ -33,7 +33,7 @@ public class HtmlSkin implements Skin { } @Override - public void use(final GraphicEngine d) { + public void use(final DisplayOutputDevice d) { if (d instanceof HtmlEngine) { if (!initd) initialize(d); @@ -43,11 +43,11 @@ public class HtmlSkin implements Skin { @Override public void load(String file) throws IOException { - url = Engine.getPlatform().getStorageUtils().getBasePath() + (!file.startsWith("/") ? "/" : "") + file; + url = WarpPI.getPlatform().getStorageUtils().getBasePath() + (!file.startsWith("/") ? "/" : "") + file; } @Override - public void initialize(final GraphicEngine d) { + public void initialize(final DisplayOutputDevice d) { final HTMLDocument doc = Window.current().getDocument(); ValueReference done = new ValueReference(false); imgEl = doc.createElement("img").cast(); diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java index b60fc0ff..cb734207 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java @@ -9,6 +9,7 @@ import org.teavm.jso.browser.Window; import org.teavm.jso.dom.html.HTMLDocument; import it.cavallium.warppi.Platform; +import it.cavallium.warppi.device.display.DisplayOutputDevice; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.html.HtmlEngine; import it.cavallium.warppi.math.rules.RulesManager; @@ -122,12 +123,12 @@ public class TeaVMPlatform implements Platform { } @Override - public Map getEnginesList() { + public Map getGraphicEnginesList() { return el; } @Override - public GraphicEngine getEngine(final String string) throws NullPointerException { + public DisplayOutputDevice getGraphicEngine(final String string) throws NullPointerException { return el.get(string); }