169 lines
5.7 KiB
Java
169 lines
5.7 KiB
Java
package it.cavallium.warppi.gui;
|
|
|
|
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.gui.graphicengine.GraphicEngine;
|
|
import it.cavallium.warppi.gui.graphicengine.Renderer;
|
|
import it.cavallium.warppi.gui.graphicengine.Skin;
|
|
import it.cavallium.warppi.gui.screens.Screen;
|
|
import it.cavallium.warppi.util.Utils;
|
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
|
|
|
public class CalculatorHUD extends HUD {
|
|
|
|
@Override
|
|
public void created() throws InterruptedException {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void initialized() throws InterruptedException {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void graphicInitialized() throws InterruptedException {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void render() {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void renderTopmostBackground() {
|
|
final Renderer r = d.renderer;
|
|
final DisplayOutputDevice display = d.display;
|
|
final GraphicEngine engine = display.getGraphicEngine();
|
|
|
|
r.glColor(0xFFc5c2af);
|
|
r.glFillColor(0, 0, engine.getWidth(), 20);
|
|
}
|
|
|
|
@Override
|
|
public void renderTopmost() {
|
|
final Renderer r = d.renderer;
|
|
final DisplayOutputDevice display = d.display;
|
|
final GraphicEngine engine = display.getGraphicEngine();
|
|
final Skin guiSkin = d.guiSkin;
|
|
|
|
//DRAW TOP
|
|
r.glColor3i(0, 0, 0);
|
|
r.glDrawLine(0, 20, engine.getWidth() - 1, 20);
|
|
r.glColor3i(255, 255, 255);
|
|
guiSkin.use(display);
|
|
if (Keyboard.shift) {
|
|
r.glFillRect(2 + 18 * 0, 2, 16, 16, 16 * 2, 16 * 0, 16, 16);
|
|
} else {
|
|
r.glFillRect(2 + 18 * 0, 2, 16, 16, 16 * 3, 16 * 0, 16, 16);
|
|
}
|
|
if (Keyboard.alpha) {
|
|
r.glFillRect(2 + 18 * 1, 2, 16, 16, 16 * 0, 16 * 0, 16, 16);
|
|
} else {
|
|
r.glFillRect(2 + 18 * 1, 2, 16, 16, 16 * 1, 16 * 0, 16, 16);
|
|
}
|
|
|
|
int padding = 2;
|
|
|
|
final int brightness = (int) Math.ceil(WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getBrightness() * 9);
|
|
if (brightness <= 10) {
|
|
r.glFillRect(display.getDisplaySize()[0] - (padding + 16), 2, 16, 16, 16 * brightness, 16 * 1, 16, 16);
|
|
} else {
|
|
WarpPI.getPlatform().getConsoleUtils().out().println(1, "Brightness error");
|
|
}
|
|
|
|
padding += 18 + 6;
|
|
|
|
final boolean canGoBack = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().canGoBack();
|
|
final boolean canGoForward = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().canGoForward();
|
|
|
|
if (WarpPI.getPlatform().getSettings().isDebugEnabled()) {
|
|
r.glFillRect(display.getDisplaySize()[0] - (padding + 16), 2, 16, 16, 16 * 18, 16 * 0, 16, 16);
|
|
padding += 18 + 6;
|
|
}
|
|
|
|
if (canGoBack && canGoForward) {
|
|
r.glFillRect(display.getDisplaySize()[0] - (padding + 16), 2, 16, 16, 16 * 14, 16 * 0, 16, 16);
|
|
} else if (canGoBack) {
|
|
r.glFillRect(display.getDisplaySize()[0] - (padding + 16), 2, 16, 16, 16 * 15, 16 * 0, 16, 16);
|
|
} else if (canGoForward) {
|
|
r.glFillRect(display.getDisplaySize()[0] - (padding + 16), 2, 16, 16, 16 * 16, 16 * 0, 16, 16);
|
|
} else {
|
|
r.glFillRect(display.getDisplaySize()[0] - (padding + 16), 2, 16, 16, 16 * 17, 16 * 0, 16, 16);
|
|
}
|
|
|
|
padding += 18;
|
|
|
|
//DRAW BOTTOM
|
|
r.glDrawStringLeft(2, 90, d.displayDebugString);
|
|
|
|
Utils.getFont(true, false).use(display);
|
|
r.glColor4i(255, 0, 0, 40);
|
|
r.glDrawStringLeft(1 + 1, display.getDisplaySize()[1] - 7 - 7 + 1, "WORK IN");
|
|
r.glColor4i(255, 0, 0, 80);
|
|
r.glDrawStringLeft(1, display.getDisplaySize()[1] - 7 - 7, "WORK IN");
|
|
r.glColor4i(255, 0, 0, 40);
|
|
r.glDrawStringLeft(1 + 1, display.getDisplaySize()[1] - 7 + 1, "PROGRESS.");
|
|
r.glColor4i(255, 0, 0, 80);
|
|
r.glDrawStringLeft(1, display.getDisplaySize()[1] - 7, "PROGRESS.");
|
|
|
|
int currentDebugLine = 2;
|
|
if (WarpPI.getPlatform().getSettings().isDebugEnabled()) {
|
|
ObjectArrayList<Screen> allSessions = new ObjectArrayList<>();
|
|
for (Screen session : WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().sessions) {
|
|
allSessions.add(0, session);
|
|
}
|
|
Screen curScreen = WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen();
|
|
if (curScreen.historyBehavior == HistoryBehavior.DONT_KEEP_IN_HISTORY) {
|
|
allSessions.add(curScreen);
|
|
}
|
|
|
|
for (Screen session : allSessions) {
|
|
if (session != null) {
|
|
String title = session.getSessionTitle();
|
|
if (title != null && title.length() > 0) {
|
|
Utils.getFont(true).use(display);
|
|
if (session.historyBehavior == HistoryBehavior.DONT_KEEP_IN_HISTORY) {
|
|
r.glColor(0xFF3333FF);
|
|
} else if (session.historyBehavior == HistoryBehavior.ALWAYS_KEEP_IN_HISTORY) {
|
|
r.glColor(0xFFFF33FF);
|
|
} else {
|
|
r.glColor(0xFF990000);
|
|
}
|
|
r.glDrawStringLeft(0, display.getDisplaySize()[1] - ((currentDebugLine+1) * (r.getCurrentFont().getCharacterHeight()+1)), "[" + String.format("%1$03d", session.debugScreenID) + "] " + title.toUpperCase());
|
|
if (session == WarpPI.INSTANCE.getHardwareDevice().getDisplayManager().getScreen()) {
|
|
r.glColor(0xFF00CC00);
|
|
} else {
|
|
r.glColor(0xFF990000);
|
|
}
|
|
r.glDrawStringLeft(0, display.getDisplaySize()[1] - ((currentDebugLine+1) * (r.getCurrentFont().getCharacterHeight()+1)), " " + title.toUpperCase());
|
|
}
|
|
currentDebugLine++;
|
|
}
|
|
}
|
|
r.glColor(0xFF000000);
|
|
r.glDrawStringLeft(5, display.getDisplaySize()[1] - ((currentDebugLine+1) * (r.getCurrentFont().getCharacterHeight()+1)), "DEBUG ENABLED");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void beforeRender(final float dt) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void renderBackground() {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
}
|