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 329f1032..02a748d6 100644
--- a/core/src/main/java/it/cavallium/warppi/boot/Boot.java
+++ b/core/src/main/java/it/cavallium/warppi/boot/Boot.java
@@ -34,7 +34,6 @@ public class Boot {
public static StartupArguments parseStartupArguments(final String[] a) {
final StartupArgumentsImpl args = new StartupArgumentsImpl();
Arrays.asList(a).stream().parallel().map(String::toLowerCase).forEach(arg -> Boot.parseArgument(args, arg));
- args.setHeadlessEngineForced(args.isHeadlessEngineForced() || args.isHeadless8EngineForced() || args.isHeadless256EngineForced() || args.isHeadless24bitEngineForced());
return args;
}
@@ -55,18 +54,6 @@ public class Boot {
case "ms-dos":
args.setMSDOSModeEnabled(true);
break;
- case "headless-8":
- args.setHeadless8EngineForced(true);
- break;
- case "headless-256":
- args.setHeadless256EngineForced(true);
- break;
- case "headless-24bit":
- args.setHeadless24bitEngineForced(true);
- break;
- case "-headless":
- args.setHeadlessEngineForced(true);
- break;
case "html":
args.setHTMLEngineForced(true);
break;
diff --git a/core/src/main/java/it/cavallium/warppi/boot/StartupArguments.java b/core/src/main/java/it/cavallium/warppi/boot/StartupArguments.java
index 9cbc7039..9b9a6f57 100644
--- a/core/src/main/java/it/cavallium/warppi/boot/StartupArguments.java
+++ b/core/src/main/java/it/cavallium/warppi/boot/StartupArguments.java
@@ -5,14 +5,6 @@ public interface StartupArguments {
boolean isZoomed();
- boolean isHeadlessEngineForced();
-
- boolean isHeadless8EngineForced();
-
- boolean isHeadless256EngineForced();
-
- boolean isHeadless24bitEngineForced();
-
boolean isCPUEngineForced();
boolean isGPUEngineForced();
diff --git a/core/src/main/java/it/cavallium/warppi/boot/StartupArgumentsImpl.java b/core/src/main/java/it/cavallium/warppi/boot/StartupArgumentsImpl.java
index f8feb508..42254e11 100644
--- a/core/src/main/java/it/cavallium/warppi/boot/StartupArgumentsImpl.java
+++ b/core/src/main/java/it/cavallium/warppi/boot/StartupArgumentsImpl.java
@@ -8,10 +8,6 @@ public class StartupArgumentsImpl implements StartupArguments {
private boolean isRaspberryModeAllowed;
private boolean isZoomed;
- private boolean isHeadlessEngineForced;
- private boolean isHeadless8EngineForced;
- private boolean isHeadless256EngineForced;
- private boolean isHeadless24bitEngineForced;
private boolean isCPUEngineForced;
private boolean isGPUEngineForced;
private boolean isFrameBufferEngineForced;
@@ -32,26 +28,6 @@ public class StartupArgumentsImpl implements StartupArguments {
return isZoomed;
}
- @Override
- public boolean isHeadlessEngineForced() {
- return isHeadlessEngineForced || isHeadless8EngineForced || isHeadless256EngineForced || isHeadless24bitEngineForced;
- }
-
- @Override
- public boolean isHeadless8EngineForced() {
- return isHeadless8EngineForced;
- }
-
- @Override
- public boolean isHeadless256EngineForced() {
- return isHeadless256EngineForced;
- }
-
- @Override
- public boolean isHeadless24bitEngineForced() {
- return isHeadless24bitEngineForced;
- }
-
@Override
public boolean isCPUEngineForced() {
return isCPUEngineForced;
@@ -99,7 +75,7 @@ public class StartupArgumentsImpl implements StartupArguments {
@Override
public boolean isEngineForced() {
- return isCPUEngineForced || isFrameBufferEngineForced || isGPUEngineForced || isHeadless24bitEngineForced || isHeadless256EngineForced || isHeadless8EngineForced || isHTMLEngineForced || isNoGUIEngineForced;
+ return isCPUEngineForced || isFrameBufferEngineForced || isGPUEngineForced || isHTMLEngineForced || isNoGUIEngineForced;
}
void setRaspberryModeAllowed(final boolean isRaspberryModeAllowed) {
@@ -109,27 +85,11 @@ public class StartupArgumentsImpl implements StartupArguments {
void setZoomed(final boolean isZoomed) {
this.isZoomed = isZoomed;
}
-
- void setHeadlessEngineForced(final boolean isHeadlessEngineForced) {
- this.isHeadlessEngineForced = isHeadlessEngineForced;
- }
-
- void setHeadless8EngineForced(final boolean isHeadless8EngineForced) {
- this.isHeadless8EngineForced = isHeadless8EngineForced;
- }
-
- void setHeadless256EngineForced(final boolean isHeadless256EngineForced) {
- this.isHeadless256EngineForced = isHeadless256EngineForced;
- }
-
- void setHeadless24bitEngineForced(final boolean isHeadless24bitEngineForced) {
- this.isHeadless24bitEngineForced = isHeadless24bitEngineForced;
- }
-
+
void setCPUEngineForced(final boolean isCPUEngineForced) {
this.isCPUEngineForced = isCPUEngineForced;
}
-
+
void setGPUEngineForced(final boolean isGPUEngineForced) {
this.isGPUEngineForced = isGPUEngineForced;
}
@@ -164,7 +124,12 @@ public class StartupArgumentsImpl implements StartupArguments {
@Override
public String toString() {
- return "StartupArguments = {\n\t\"isRaspberryModeAllowed\": \"" + isRaspberryModeAllowed + "\",\n\tisZoomed\": \"" + isZoomed + "\",\n\tisHeadlessEngineForced\": \"" + isHeadlessEngineForced + "\",\n\tisHeadless8EngineForced\": \"" + isHeadless8EngineForced + "\",\n\tisHeadless256EngineForced\": \"" + isHeadless256EngineForced + "\",\n\tisHeadless24bitEngineForced\": \"" + isHeadless24bitEngineForced + "\",\n\tisCPUEngineForced\": \"" + isCPUEngineForced + "\",\n\tisGPUEngineForced\": \"" + isGPUEngineForced + "\",\n\tisFrameBufferEngineForced\": \"" + isFrameBufferEngineForced + "\",\n\tisNoGUIEngineForced\": \"" + isNoGUIEngineForced + "\",\n\tisHTMLEngineForced\": \"" + isHTMLEngineForced + "\",\n\tisMSDOSModeEnabled\": \"" + isMSDOSModeEnabled + "\",\n\tisVerboseLoggingEnabled\": \"" + isVerboseLoggingEnabled + "\",\n\tisDebugEnabled\": \"" + isDebugEnabled + "\",\n\tisUncached\": \"" + isUncached + "\"\n}";
+ return "StartupArgumentsImpl [isRaspberryModeAllowed=" + isRaspberryModeAllowed + ", isZoomed=" + isZoomed
+ + ", isCPUEngineForced=" + isCPUEngineForced + ", isGPUEngineForced=" + isGPUEngineForced
+ + ", isFrameBufferEngineForced=" + isFrameBufferEngineForced + ", isNoGUIEngineForced="
+ + isNoGUIEngineForced + ", isHTMLEngineForced=" + isHTMLEngineForced + ", isMSDOSModeEnabled="
+ + isMSDOSModeEnabled + ", isVerboseLoggingEnabled=" + isVerboseLoggingEnabled + ", isDebugEnabled="
+ + isDebugEnabled + ", isUncached=" + isUncached + "]";
}
-
+
}
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 49419856..43b01a82 100644
--- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java
+++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java
@@ -13,9 +13,6 @@ import org.apache.commons.io.FileUtils;
import it.cavallium.warppi.Engine;
import it.cavallium.warppi.Platform;
import it.cavallium.warppi.gui.graphicengine.GraphicEngine;
-import it.cavallium.warppi.gui.graphicengine.impl.jansi24bitcolors.JAnsi24bitEngine;
-import it.cavallium.warppi.gui.graphicengine.impl.jansi256colors.JAnsi256Engine;
-import it.cavallium.warppi.gui.graphicengine.impl.jansi8colors.JAnsi8Engine;
import it.cavallium.warppi.gui.graphicengine.impl.jogl.JOGLEngine;
import it.cavallium.warppi.gui.graphicengine.impl.swing.SwingEngine;
import it.cavallium.warppi.util.CacheUtils;
@@ -43,9 +40,6 @@ public class DesktopPlatform implements Platform {
el = new HashMap<>();
el.put("CPU engine", new SwingEngine());
el.put("GPU engine", new JOGLEngine());
- el.put("headless 24 bit engine", new JAnsi24bitEngine());
- el.put("headless 256 colors engine", new JAnsi256Engine());
- el.put("headless 8 colors engine", new JAnsi8Engine());
settings = new DesktopSettings();
}
diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jansi24bitcolors/JAnsi24bitEngine.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jansi24bitcolors/JAnsi24bitEngine.java
deleted file mode 100644
index 2c894b7f..00000000
--- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/impl/jansi24bitcolors/JAnsi24bitEngine.java
+++ /dev/null
@@ -1,329 +0,0 @@
-package it.cavallium.warppi.gui.graphicengine.impl.jansi24bitcolors;
-
-import java.io.IOException;
-import java.util.logging.ConsoleHandler;
-
-import org.fusesource.jansi.AnsiConsole;
-import org.fusesource.jansi.internal.WindowsSupport;
-
-import it.cavallium.warppi.Engine;
-import it.cavallium.warppi.StaticVars;
-import it.cavallium.warppi.device.Keyboard;
-import it.cavallium.warppi.event.Key;
-import it.cavallium.warppi.flow.Observable;
-import it.cavallium.warppi.gui.graphicengine.Renderer;
-import it.cavallium.warppi.gui.graphicengine.RenderingLoop;
-import it.cavallium.warppi.util.Utils;
-
-public class JAnsi24bitEngine implements it.cavallium.warppi.gui.graphicengine.GraphicEngine {
-
- private JAnsi24bitRenderer r;
- private boolean stopped = true;
- private RenderingLoop renderLoop;
- public static final int C_MUL_X = 4;//8;
- public static final int C_MUL_Y = 8;//8;
- protected static int C_WIDTH;
- protected static int C_HEIGHT;
- private String title;
- private boolean win = false;
- private Key precKey = null;
-
- public JAnsi24bitEngine() {}
-
- @Override
- public int[] getSize() {
- new ConsoleHandler();
- return new int[] { r.size[0], r.size[1] };
- }
-
- @Override
- public boolean isInitialized() {
- return !stopped;
- }
-
- @Override
- public void setTitle(final String title) {
- this.title = title;
- }
-
- @Override
- public void setResizable(final boolean r) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setDisplayMode(final int ww, final int wh) {
- // TODO Auto-generated method stub
-
- }
-
- @SuppressWarnings("unused")
- private long outHandle;
-
- @Override
- public void create() {
- this.create(null);
- }
-
- @Override
- public void create(final Runnable onInitialized) {
- title = Engine.getPlatform().getSettings().getCalculatorName();
- r = new JAnsi24bitRenderer();
- JAnsi24bitEngine.C_WIDTH = StaticVars.screenSize[0] / JAnsi24bitEngine.C_MUL_X;
- JAnsi24bitEngine.C_HEIGHT = StaticVars.screenSize[1] / JAnsi24bitEngine.C_MUL_Y;
- StaticVars.outputLevel = -1;
- AnsiConsole.systemInstall();
- if (Utils.isWindows() && !StaticVars.startupArguments.isMSDOSModeEnabled()) {
- win = true;
- WindowsSupport.setConsoleMode(0x0200);
- final Thread t = new Thread(() -> {
- int ch = -1;
- while (true) {
- if (precKey != null) {
- Keyboard.keyReleased(precKey);
- precKey = null;
- }
- ch = WindowsSupport.readByte();
- Key key = null;
- switch (ch) {
- case 72: { // UP
- key = Key.UP;
- break;
- }
- case 80: { // DOWN
- key = Key.DOWN;
- break;
- }
- case 77: { // RIGHT
- key = Key.RIGHT;
- break;
- }
- case 75: { // LEFT
- key = Key.LEFT;
- break;
- }
- case 49: { // 1
- key = Key.NUM1;
- break;
- }
- case 50: { // 2
- key = Key.NUM2;
- break;
- }
- case 51: { // 3
- key = Key.NUM3;
- break;
- }
- case 52: { // 4
- key = Key.NUM4;
- break;
- }
- case 53: { // 5
- key = Key.NUM5;
- break;
- }
- case 54: { // 6
- key = Key.NUM6;
- break;
- }
- default: {
- key = Key.NONE;
- break;
- }
- }
- if (key != null)
- Keyboard.keyPressed(key);
-
- }
- });
- t.setDaemon(true);
- t.start();
- }
- stopped = false;
- if (onInitialized != null)
- onInitialized.run();
- }
-
- @Override
- public Observable
+Contains the code related to chunk management for the PNGJ library.
+Only needed by client code if some special chunk handling is required.
+
+PNGJ main package
+
+Users of this library should rarely need more than the public members of this package.
+Example of use: this code reads a true colour PNG image (RGB8 or RGBA8)
+and reduces the red channel by half, increasing the green by 20.
+It copies all the "safe" metadata from the original image, and adds a textual metadata.
+
+
+Newcomers: start with PngReader and PngWriter.
+
+ public static void convert(String origFilename, String destFilename) {
+ // you can also use PngReader (esentially the same) or PngReaderByte
+ PngReaderInt pngr = new PngReaderInt(new File(origFilename));
+ System.out.println(pngr.toString());
+ int channels = pngr.imgInfo.channels;
+ if (channels < 3 || pngr.imgInfo.bitDepth != 8)
+ throw new RuntimeException("For simplicity this supports only RGB8/RGBA8 images");
+ // writer with same image properties as original
+ PngWriter pngw = new PngWriter(new File(destFilename), pngr.imgInfo, true);
+ // instruct the writer to grab all ancillary chunks from the original
+ pngw.copyChunksFrom(pngr.getChunksList(), ChunkCopyBehaviour.COPY_ALL_SAFE);
+ // add a textual chunk to writer
+ pngw.getMetadata().setText(PngChunkTextVar.KEY_Description, "Decreased red and increased green");
+ // also: while(pngr.hasMoreRows())
+ for (int row = 0; row < pngr.imgInfo.rows; row++) {
+ ImageLineInt l1 = pngr.readRowInt(); // each element is a sample
+ int[] scanline = l1.getScanline(); // to save typing
+ for (int j = 0; j < pngr.imgInfo.cols; j++) {
+ scanline[j * channels] /= 2;
+ scanline[j * channels + 1] = ImageLineHelper.clampTo_0_255(scanline[j * channels + 1] + 20);
+ }
+ pngw.writeRow(l1);
+ }
+ pngr.end(); // it's recommended to end the reader first, in case there are trailing chunks to read
+ pngw.end();
+ }
+
+
+
+For more examples, see the tests and samples.
+
+
+Mostly related with logic specific to reading/writing pixels. +
++Includes ImageLine related classes, and rows filtering +
++Some classes like ImageLineInt should belong here, but we keep them in the main package for backward compatibility. + +
+ + diff --git a/rules/teavm/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/rules/teavm/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml new file mode 100644 index 00000000..8b89c977 --- /dev/null +++ b/rules/teavm/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml @@ -0,0 +1,10 @@ + +=p[0]){e=(p[0]-a|0)+g|0;}if((b+m|0)>=p[1]){f=(p[1]-b|0)+h|0;}if(a<0){if(n!= -1){g=g-a|0;}else{e=e+(a+1|0)|0;}a=0;}if(b<0){if(l!= -1){h=h-b|0;}else{f=f+(b+1|0)|0;}b=0;}XOb($t.c1,
+!!0);q=$t.c1;r=Erc($t.LT);s=g;t=h;k=e-g|0;u=f-h|0;v=a*$t.b1.nT|0;w=b*$t.b1.nT|0;x=(c-a|0)*$t.b1.nT|0;y=(d-b|0)*$t.b1.nT|0;q.drawImage(r,s,t,k,u,v,w,x,y);return;}}
+function U8b($t,a,b,c,d){var e,f,g,h,i,j,k;Ec_$callClinit();e=a+X3c.data[0];b=b+X3c.data[1];f=$t.c1;g=$rt_ustr($t.kZ);f.fillStyle=g;f=$t.c1;g=$t.b1;Gm_$callClinit();h=e*g.nT;i=b*$t.b1.nT;j=c*$t.b1.nT;k=d*$t.b1.nT;f.fillRect(h,i,j,k);}
+function XAc($t,a,b,c){Qhb($t,a-FGc($t.d1,c),b,c);}
+function Qhb($t,a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;Ec_$callClinit();a=a+X3c.data[0];d=b+X3c.data[1];e=$t.d1;e=e.Zo;f="source-in";e.globalCompositeOperation=f;e=$t.d1.Zo;f=$rt_ustr($t.kZ);e.fillStyle=f;e=$t.d1.Zo;g=0.0;h=0.0;i=$t.d1.Kg.width;j=$t.d1.Kg.height;e.fillRect(g,h,i,j);k=YGb($t.d1,c).data;l=k.length;m=0;while(m