From 8e45e74937cbfea93eb864647b27f5e0445a48d2 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Mon, 30 Sep 2019 00:35:51 +0300 Subject: [PATCH] Update Android sample, make it sim-friendly. --- samples/androidNativeActivity/README.md | 4 +- .../androidNativeActivity/build.gradle.kts | 18 +++--- .../AndroidManifest.xml | 1 + .../assets/kotlin_logo.bmp | Bin .../kotlin/BMPHeader.kt | 0 .../kotlin/Disposable.kt | 0 .../{arm32Main => x86Main}/kotlin/Engine.kt | 0 .../kotlin/JniBridge.kt | 0 .../kotlin/Polyhedra.kt | 0 .../{arm32Main => x86Main}/kotlin/Renderer.kt | 57 ++++++------------ .../{arm32Main => x86Main}/kotlin/Vectors.kt | 0 .../src/{arm32Main => x86Main}/kotlin/main.kt | 0 .../res/mipmap-hdpi/konan_activity.png | Bin .../res/mipmap-mdpi/konan_activity.png | Bin .../res/mipmap-xhdpi/konan_activity.png | Bin .../res/mipmap-xxhdpi/konan_activity.png | Bin .../res/values/strings.xml | 0 17 files changed, 32 insertions(+), 48 deletions(-) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/AndroidManifest.xml (94%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/assets/kotlin_logo.bmp (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/BMPHeader.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/Disposable.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/Engine.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/JniBridge.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/Polyhedra.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/Renderer.kt (87%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/Vectors.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/kotlin/main.kt (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/res/mipmap-hdpi/konan_activity.png (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/res/mipmap-mdpi/konan_activity.png (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/res/mipmap-xhdpi/konan_activity.png (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/res/mipmap-xxhdpi/konan_activity.png (100%) rename samples/androidNativeActivity/src/{arm32Main => x86Main}/res/values/strings.xml (100%) diff --git a/samples/androidNativeActivity/README.md b/samples/androidNativeActivity/README.md index b6ab01e619c..8ac2551781c 100644 --- a/samples/androidNativeActivity/README.md +++ b/samples/androidNativeActivity/README.md @@ -12,7 +12,9 @@ We use JniBridge to call vibration service on the Java side for short tremble on To build use `ANDROID_HOME= ../gradlew assemble`. Run `$ANDROID_HOME/platform-tools/adb install -r build/outputs/apk/debug/androidNativeActivity-debug.apk` -to deploy the apk on the Android device or emulator (note that only ARM-based devices are currently supported). +to deploy the apk on the Android device or emulator. + +Note that "Emulated Performance - Graphics" in AVD manager must be set to "Software - GLES 2.0". Note: If you are importing project to IDEA for the first time, you might need to put `local.properties` file with the following content: diff --git a/samples/androidNativeActivity/build.gradle.kts b/samples/androidNativeActivity/build.gradle.kts index c32dd854660..7ff9469655e 100644 --- a/samples/androidNativeActivity/build.gradle.kts +++ b/samples/androidNativeActivity/build.gradle.kts @@ -17,6 +17,8 @@ plugins { val appDir = buildDir.resolve("Polyhedron") val libsDir = appDir.resolve("libs") +// Set to true to build only for the simulator. +val simulatorOnly = true val androidPresets = mapOf( "arm32" to ("androidNativeArm32" to "$libsDir/armeabi-v7a"), @@ -40,7 +42,7 @@ android { sourceSets { val main by getting { - setRoot("src/arm32Main") + setRoot("src/x86Main") jniLibs.srcDir(libsDir) } } @@ -63,13 +65,15 @@ kotlin { } sourceSets { - val arm32Main by getting - val arm64Main by getting val x86Main by getting - val x64Main by getting - arm64Main.dependsOn(arm32Main) - x86Main.dependsOn(arm32Main) - x64Main.dependsOn(arm32Main) + if (!simulatorOnly) { + val x64Main by getting + val arm32Main by getting + val arm64Main by getting + arm32Main.dependsOn(x86Main) + arm64Main.dependsOn(x86Main) + x64Main.dependsOn(x86Main) + } } } diff --git a/samples/androidNativeActivity/src/arm32Main/AndroidManifest.xml b/samples/androidNativeActivity/src/x86Main/AndroidManifest.xml similarity index 94% rename from samples/androidNativeActivity/src/arm32Main/AndroidManifest.xml rename to samples/androidNativeActivity/src/x86Main/AndroidManifest.xml index d369e33a24f..2b7d60ee29b 100644 --- a/samples/androidNativeActivity/src/arm32Main/AndroidManifest.xml +++ b/samples/androidNativeActivity/src/x86Main/AndroidManifest.xml @@ -6,6 +6,7 @@ android:versionName="1.0"> + (length) @@ -209,6 +184,7 @@ class Renderer(val container: DisposableContainer, data[i] = data[i + 2] data[i + 2] = t } + println("loaded texture ${width}x${height}") glBindTexture(GL_TEXTURE_2D, 1) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) @@ -234,6 +210,7 @@ class Renderer(val container: DisposableContainer, glPushMatrix() glMatrixMode(GL_MODELVIEW) + checkErrors() glMultMatrixf(matrix) @@ -294,7 +271,7 @@ class Renderer(val container: DisposableContainer, } fun start() { - logInfo("Starting renderer..") + logInfo("Starting renderer.") if (initialized) { if (eglMakeCurrent(display, surface, surface, context) == 0u) { throw Error("eglMakeCurrent() returned error ${eglGetError()}") diff --git a/samples/androidNativeActivity/src/arm32Main/kotlin/Vectors.kt b/samples/androidNativeActivity/src/x86Main/kotlin/Vectors.kt similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/kotlin/Vectors.kt rename to samples/androidNativeActivity/src/x86Main/kotlin/Vectors.kt diff --git a/samples/androidNativeActivity/src/arm32Main/kotlin/main.kt b/samples/androidNativeActivity/src/x86Main/kotlin/main.kt similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/kotlin/main.kt rename to samples/androidNativeActivity/src/x86Main/kotlin/main.kt diff --git a/samples/androidNativeActivity/src/arm32Main/res/mipmap-hdpi/konan_activity.png b/samples/androidNativeActivity/src/x86Main/res/mipmap-hdpi/konan_activity.png similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/res/mipmap-hdpi/konan_activity.png rename to samples/androidNativeActivity/src/x86Main/res/mipmap-hdpi/konan_activity.png diff --git a/samples/androidNativeActivity/src/arm32Main/res/mipmap-mdpi/konan_activity.png b/samples/androidNativeActivity/src/x86Main/res/mipmap-mdpi/konan_activity.png similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/res/mipmap-mdpi/konan_activity.png rename to samples/androidNativeActivity/src/x86Main/res/mipmap-mdpi/konan_activity.png diff --git a/samples/androidNativeActivity/src/arm32Main/res/mipmap-xhdpi/konan_activity.png b/samples/androidNativeActivity/src/x86Main/res/mipmap-xhdpi/konan_activity.png similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/res/mipmap-xhdpi/konan_activity.png rename to samples/androidNativeActivity/src/x86Main/res/mipmap-xhdpi/konan_activity.png diff --git a/samples/androidNativeActivity/src/arm32Main/res/mipmap-xxhdpi/konan_activity.png b/samples/androidNativeActivity/src/x86Main/res/mipmap-xxhdpi/konan_activity.png similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/res/mipmap-xxhdpi/konan_activity.png rename to samples/androidNativeActivity/src/x86Main/res/mipmap-xxhdpi/konan_activity.png diff --git a/samples/androidNativeActivity/src/arm32Main/res/values/strings.xml b/samples/androidNativeActivity/src/x86Main/res/values/strings.xml similarity index 100% rename from samples/androidNativeActivity/src/arm32Main/res/values/strings.xml rename to samples/androidNativeActivity/src/x86Main/res/values/strings.xml