Resolve PDF renderer parse issue in preproc.

Resolve moving the PDF renderer information provided in size into settings as part of preproc. Resolves #66.
This commit is contained in:
Sam Pottinger
2020-01-21 17:14:42 -08:00
parent 3b0ff8f70a
commit 6fe274f89b
4 changed files with 79 additions and 6 deletions

View File

@@ -73,8 +73,9 @@ public class PdeParseTreeListener extends ProcessingBaseListener {
private String sketchWidth;
private String sketchHeight;
private String sketchRenderer;
private String pixelDensity;
private String sketchRenderer = null;
private String sketchOutputFilename = null;
private boolean sizeRequiresRewrite = false;
private boolean pixelDensityRequiresRewrite = false;
@@ -627,10 +628,15 @@ public class PdeParseTreeListener extends ProcessingBaseListener {
sketchRenderer.equals("P3D") ||
sketchRenderer.equals("OPENGL") ||
sketchRenderer.equals("JAVA2D") ||
sketchRenderer.equals("PDF") ||
sketchRenderer.equals("FX2D"))) {
thisRequiresRewrite = false;
}
}
if (argsContext.getChildCount() > 5) {
sketchOutputFilename = argsContext.getChild(6).getText();
}
}
if (isFullscreen) {
@@ -1021,12 +1027,12 @@ public class PdeParseTreeListener extends ProcessingBaseListener {
String settingsOuterTemplate = indent1 + "public void settings() { %s }";
StringBuilder settingsInner = new StringBuilder();
StringJoiner settingsInner = new StringJoiner("\n");
if (sizeRequiresRewrite) {
if (sizeIsFullscreen) {
String fullscreenInner = sketchRenderer == null ? "" : sketchRenderer;
settingsInner.append(String.format("fullScreen(%s);", fullscreenInner));
settingsInner.add(String.format("fullScreen(%s);", fullscreenInner));
} else {
if (sketchWidth.isEmpty() || sketchHeight.isEmpty()) {
@@ -1041,13 +1047,16 @@ public class PdeParseTreeListener extends ProcessingBaseListener {
argJoiner.add(sketchRenderer);
}
settingsInner.append(String.format("size(%s);", argJoiner.toString()));
if (sketchOutputFilename != null) {
argJoiner.add(sketchOutputFilename);
}
settingsInner.add(String.format("size(%s);", argJoiner.toString()));
}
}
if (pixelDensityRequiresRewrite) {
settingsInner.append("\n");
settingsInner.append(String.format("pixelDensity(%s);", pixelDensity));
settingsInner.add(String.format("pixelDensity(%s);", pixelDensity));
}