This commit is contained in:
Andrea Cavalli 2018-03-31 18:02:36 +02:00
parent d5b34941bd
commit 6e7631eb08
9 changed files with 58 additions and 24 deletions

View File

@ -54,11 +54,6 @@ public class Main {
if (Utils.isRunningOnRaspberry() && !Utils.isInArray("-noraspi", args) && isRaspi) {
Gpio.wiringPiSetupPhys();
Gpio.pinMode(12, Gpio.PWM_OUTPUT);
try {
Files.createFile(Paths.get("/boot/warppi_loaded"));
} catch (IOException e) {
e.printStackTrace();
}
} else {
StaticVars.screenPos = new int[] { 0, 0 };
StaticVars.debugOn = true;

View File

@ -13,8 +13,17 @@ public class StaticVars {
public static int outputLevel = 0;
public static boolean debugWindow2x = false;
public static Class<?> classLoader;
public static float windowZoom = 2;
private StaticVars() {
}
public static float getCurrentZoomValue() {
if (StaticVars.debugOn & StaticVars.debugWindow2x) {
return 2;
} else {
return StaticVars.windowZoom;
}
}
}

View File

@ -8,5 +8,5 @@ public enum Key {
PLUS, MINUS, PLUS_MINUS, MULTIPLY, DIVIDE, EQUAL, DELETE, RESET, LEFT, RIGHT,
UP, DOWN, OK, debug1, debug2, debug3, debug4, debug5, SQRT, ROOT, POWER_OF_2,
POWER_OF_x, SINE, COSINE, TANGENT, ARCSINE, ARCCOSINE, ARCTANGENT, PI, SETTINGS,
F1, F2, F3, F4, BACK
F1, F2, F3, F4, BACK, ZOOM_MODE
}

View File

@ -178,7 +178,7 @@ public class Keyboard {
} else if (!Keyboard.shift && !Keyboard.alpha) {
Keyboard.keyPressed(Key.BRIGHTNESS_CYCLE);
} else {
Keyboard.keyPressed(Key.NONE);
Keyboard.keyPressed(Key.ZOOM_MODE);
}
break;
case com.jogamp.newt.event.KeyEvent.VK_ENTER:
@ -463,7 +463,7 @@ public class Keyboard {
{Key.NONE, Key.NONE, Key.NONE}, /* 0,3 */
{Key.NONE, Key.NONE, Key.NONE}, /* 0,4 */
{Key.SETTINGS, Key.NONE, Key.NONE}, /* 0,5 */
{Key.BRIGHTNESS_CYCLE, Key.BRIGHTNESS_CYCLE_REVERSE, Key.NONE}, /* 0,6 */
{Key.BRIGHTNESS_CYCLE, Key.BRIGHTNESS_CYCLE_REVERSE, Key.ZOOM_MODE}, /* 0,6 */
{Key.SIMPLIFY, Key.STEP, Key.NONE} /* 0,7 */
},
{ /* ROW 1 */
@ -603,6 +603,9 @@ public class Keyboard {
DisplayManager.INSTANCE.cycleBrightness(true);
refresh = true;
break;
case ZOOM_MODE:
StaticVars.windowZoom = ((StaticVars.windowZoom - 0.5f) % 2f) + 1f;
refresh = true;
case HISTORY_BACK:
DisplayManager.INSTANCE.goBack();
refresh = true;
@ -704,7 +707,7 @@ Keyboard:
|0,0-----|0,1-----|########|0,3-----|########|0,5-----|0,6-----|
| SHIFT | ALPHA |########| ^ |########|SETTINGS|+BRIGHT |
| NORMAL | ALPHA |########| |########| |-BRIGHT |
| SHIFT | NORMAL |########| |########| | |
| SHIFT | NORMAL |########| |########| |ZOOMMODE|
|1,0-----|1,1-----|1,2-----|1,3-----|1,4-----|1,5-----|1,6-----|
| F_4 | | < | OK | > | Back | Fwd |
| F_4 | | | | | | |

View File

@ -39,8 +39,8 @@ public class SwingWindow extends JFrame {
// Transparent 16 x 16 pixel cursor image.
final BufferedImage cursorImg = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
if ((StaticVars.windowZoom != 1) | (StaticVars.debugOn & StaticVars.debugWindow2x)) mult = 2;
if (StaticVars.debugOn) {
if (StaticVars.debugWindow2x) mult = 2;
if (Utils.debugThirdScreen) {
this.setLocation(2880, 900);
setResizable(false);

View File

@ -57,7 +57,7 @@ public class GPUEngine implements GraphicEngine {
public void setDisplayMode(int ww, int wh) {
size[0] = ww;
size[1] = wh;
wnd.window.setSize((StaticVars.debugOn & StaticVars.debugWindow2x) ? ww * 2 : ww, (StaticVars.debugOn & StaticVars.debugWindow2x) ? wh * 2 : wh);
wnd.window.setSize(ww, wh);
}
@Override

View File

@ -28,6 +28,10 @@
package org.warp.picalculator.gui.graphicengine.gpu;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.warp.picalculator.StaticVars;
import org.warp.picalculator.device.Key;
import org.warp.picalculator.device.Keyboard;
@ -60,11 +64,14 @@ class NEWTWindow implements GLEventListener {
private final GPUEngine disp;
private final GPURenderer renderer;
public float windowZoom;
public int[] realWindowSize;
public Runnable onInitialized;
public NEWTWindow(GPUEngine disp) {
this.disp = disp;
renderer = disp.getRenderer();
realWindowSize = new int[] {1,1};
}
public GLWindow window;
@ -173,7 +180,7 @@ class NEWTWindow implements GLEventListener {
} else if (!Keyboard.shift && !Keyboard.alpha) {
Keyboard.keyReleased(Key.BRIGHTNESS_CYCLE);
} else {
Keyboard.keyReleased(Key.NONE);
Keyboard.keyReleased(Key.ZOOM_MODE);
}
break;
case KeyEvent.VK_ENTER:
@ -284,7 +291,7 @@ class NEWTWindow implements GLEventListener {
final GL2ES1 gl = drawable.getGL().getGL2ES1();
//Vsync
gl.setSwapInterval(2);
gl.setSwapInterval(1);
//Textures
gl.glEnable(GL.GL_TEXTURE_2D);
@ -313,33 +320,47 @@ class NEWTWindow implements GLEventListener {
@Override
public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {
disp.size[0] = (StaticVars.debugOn & StaticVars.debugWindow2x) ? width / 2 : width;
disp.size[1] = (StaticVars.debugOn & StaticVars.debugWindow2x) ? height / 2 : height;
realWindowSize[0] = width;
realWindowSize[1] = height;
disp.size[0] = width;
disp.size[1] = height;
final GL2ES1 gl = glad.getGL().getGL2ES1();
if (width == 0) {
width = 1;
}
if (height == 0) {
height = 1;
}
onZoomChanged(gl, true);
}
private void onZoomChanged(GL2ES1 gl, boolean sizeChanged) {
float precWindowZoom = windowZoom;
windowZoom = StaticVars.getCurrentZoomValue();
System.out.println("sizechange" + windowZoom);
final int width = realWindowSize[0];
final int height = realWindowSize[1];
disp.size[0] = (int) (realWindowSize[0] / windowZoom);
disp.size[1] = (int) (realWindowSize[1] / windowZoom);
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrtho(0.0, (StaticVars.debugOn & StaticVars.debugWindow2x) ? width / 2 : width, (StaticVars.debugOn & StaticVars.debugWindow2x) ? height / 2 : height, 0.0, -1, 1);
gl.glOrtho(0.0, disp.size[0], disp.size[1], 0.0, -1, 1);
gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
gl.glLoadIdentity();
}
@Override
public void display(GLAutoDrawable glad) {
final GL2ES1 gl = glad.getGL().getGL2ES1();
GPURenderer.gl = gl;
if (windowZoom != StaticVars.getCurrentZoomValue()) {
onZoomChanged(gl, false);
}
gl.glEnableClientState(GLPointerFunc.GL_COLOR_ARRAY);
gl.glEnableClientState(GLPointerFunc.GL_VERTEX_ARRAY);
gl.glEnableClientState(GLPointerFunc.GL_TEXTURE_COORD_ARRAY);

View File

@ -37,6 +37,7 @@ public class NoGuiEngine implements GraphicEngine {
public void setDisplayMode(int ww, int wh) {
}
@Override
public void create(Runnable onInitialized) {
initialized = true;

View File

@ -11,6 +11,7 @@ public class LoadingScreen extends Screen {
boolean mustRefresh = true;
public float loadingTextTranslation = 0.0f;
public boolean loaded = false;
private float previousZoomValue = 1;
public LoadingScreen() {
super();
@ -23,7 +24,10 @@ public class LoadingScreen extends Screen {
}
@Override
public void initialized() throws InterruptedException {}
public void initialized() throws InterruptedException {
previousZoomValue = StaticVars.getCurrentZoomValue();
StaticVars.windowZoom = 1;
}
@Override
public void beforeRender(float dt) {
@ -31,6 +35,7 @@ public class LoadingScreen extends Screen {
endLoading += dt;
if (loaded && (StaticVars.debugOn || endLoading >= 3.5f)) {
StaticVars.windowZoom = previousZoomValue;
DisplayManager.INSTANCE.setScreen(new MathInputScreen());
}
mustRefresh = true;