39
39
import processing .app .exec .ProcessResult ;
40
40
import processing .core .PApplet ;
41
41
import processing .mode .java .JavaBuild ;
42
+ import processing .mode .java .preproc .SurfaceInfo ;
42
43
43
44
import java .io .*;
44
45
import java .security .Permission ;
@@ -175,7 +176,7 @@ public File createProject() throws IOException, SketchException {
175
176
// build the preproc and get to work
176
177
AndroidPreprocessor preproc = new AndroidPreprocessor (sketch , getPackageName ());
177
178
// On Android, this init will throw a SketchException if there's a problem with size()
178
- preproc .initSketchSize (sketch .getMainProgram ());
179
+ SurfaceInfo info = preproc .initSketchSize (sketch .getMainProgram ());
179
180
preproc .initSketchSmooth (sketch .getMainProgram ());
180
181
181
182
sketchClassName = preprocess (srcFolder , manifest .getPackageName (), preproc , false );
@@ -192,9 +193,7 @@ public File createProject() throws IOException, SketchException {
192
193
final File resFolder = new File (tmpFolder , "res" );
193
194
writeRes (resFolder , sketchClassName );
194
195
195
-
196
- writeMainClass (srcFolder );
197
-
196
+ writeMainClass (srcFolder , preproc .getRenderer (info .getSettings ()));
198
197
199
198
// new location for SDK Tools 17: /opt/android/tools/proguard/proguard-android.txt
200
199
// File proguardSrc = new File(sdk.getSdkFolder(), "tools/lib/proguard.cfg");
@@ -969,13 +968,18 @@ private File mkdirs(final File parent, final String name) throws SketchException
969
968
}
970
969
971
970
972
- private void writeMainClass (final File srcDirectory ) {
971
+ private void writeMainClass (final File srcDirectory , String renderer ) {
972
+ System .out .println ("---------------> RENDERER: " + renderer );
973
973
if (publishOption == FRAGMENT ) {
974
974
writeFragmentActivity (srcDirectory );
975
975
} else if (publishOption == WALLPAPER ) {
976
976
writeWallpaperService (srcDirectory );
977
977
} else if (publishOption == WATCHFACE ) {
978
- writeWatchfaceService (srcDirectory );
978
+ if (renderer != null && (renderer .equals ("P2D" ) || renderer .equals ("P3D" ))) {
979
+ writeWatchFaceGLESService (srcDirectory );
980
+ } else {
981
+ writeWatchFaceCanvasService (srcDirectory );
982
+ }
979
983
} else if (publishOption == CARDBOARD ) {
980
984
writeCardboardActivity (srcDirectory );
981
985
}
@@ -1047,7 +1051,7 @@ private void writeWallpaperService(final File srcDirectory) {
1047
1051
}
1048
1052
1049
1053
1050
- private void writeWatchfaceService (final File srcDirectory ) {
1054
+ private void writeWatchFaceGLESService (final File srcDirectory ) {
1051
1055
File mainServiceFile = new File (new File (srcDirectory , manifest .getPackageName ().replace ("." , "/" )),
1052
1056
"MainService.java" );
1053
1057
final PrintWriter writer = PApplet .createWriter (mainServiceFile );
@@ -1064,6 +1068,25 @@ private void writeWatchfaceService(final File srcDirectory) {
1064
1068
writer .flush ();
1065
1069
writer .close ();
1066
1070
}
1071
+
1072
+
1073
+ private void writeWatchFaceCanvasService (final File srcDirectory ) {
1074
+ File mainServiceFile = new File (new File (srcDirectory , manifest .getPackageName ().replace ("." , "/" )),
1075
+ "MainService.java" );
1076
+ final PrintWriter writer = PApplet .createWriter (mainServiceFile );
1077
+ writer .println ("package " + manifest .getPackageName () +";" );
1078
+ writer .println ("import processing.android.PWatchFaceCanvas;" );
1079
+ writer .println ("import processing.core.PApplet;" );
1080
+ writer .println ("public class MainService extends PWatchFaceCanvas {" );
1081
+ writer .println (" public MainService() {" );
1082
+ writer .println (" super();" );
1083
+ writer .println (" PApplet sketch = new " + sketchClassName + "();" );
1084
+ writer .println (" setSketch(sketch);" );
1085
+ writer .println (" }" );
1086
+ writer .println ("}" );
1087
+ writer .flush ();
1088
+ writer .close ();
1089
+ }
1067
1090
1068
1091
1069
1092
private void writeCardboardActivity (final File srcDirectory ) {
0 commit comments