diff options
author | gramanas <anastasis.gramm2@gmail.com> | 2024-06-05 19:04:25 +0300 |
---|---|---|
committer | gramanas <anastasis.gramm2@gmail.com> | 2024-06-05 19:04:25 +0300 |
commit | a6501b5d7ad204c3b998c843c7ed68ef7be323ba (patch) | |
tree | 1a442e6095abf160e36baa31a319858774cd1178 /lib/imgui-1.90.7/examples/example_android_opengl3/android/app | |
parent | 6af7e785890a322f60c21a51e3d41cd9015e6773 (diff) | |
download | cgame-a6501b5d7ad204c3b998c843c7ed68ef7be323ba.tar.gz cgame-a6501b5d7ad204c3b998c843c7ed68ef7be323ba.tar.bz2 cgame-a6501b5d7ad204c3b998c843c7ed68ef7be323ba.zip |
more vks, stupid mutlistep build, and imgui
Diffstat (limited to 'lib/imgui-1.90.7/examples/example_android_opengl3/android/app')
3 files changed, 110 insertions, 0 deletions
diff --git a/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/build.gradle b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/build.gradle new file mode 100644 index 0000000..53181ba --- /dev/null +++ b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/build.gradle @@ -0,0 +1,46 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 33 + buildToolsVersion "33.0.2" + ndkVersion "25.2.9519653" + + defaultConfig { + applicationId "imgui.example.android" + namespace "imgui.example.android" + minSdkVersion 24 + targetSdkVersion 33 + versionCode 1 + versionName "1.0" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget="11" + } + + externalNativeBuild { + cmake { + path "../../CMakeLists.txt" + version '3.22.1' + } + } +} +repositories { + mavenCentral() +} +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a87b95b --- /dev/null +++ b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> + + <application + android:label="ImGuiExample" + android:allowBackup="false" + android:fullBackupContent="false" + android:hasCode="true"> + + <activity + android:name="imgui.example.android.MainActivity" + android:theme="@android:style/Theme.NoTitleBar.Fullscreen" + android:configChanges="orientation|keyboardHidden|screenSize" + android:exported="false"> + <meta-data android:name="android.app.lib_name" + android:value="ImGuiExample" /> + + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> +</manifest> diff --git a/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt new file mode 100644 index 0000000..896a88c --- /dev/null +++ b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt @@ -0,0 +1,40 @@ +package imgui.example.android + +import android.app.NativeActivity +import android.os.Bundle +import android.content.Context +import android.view.inputmethod.InputMethodManager +import android.view.KeyEvent +import java.util.concurrent.LinkedBlockingQueue + +class MainActivity : NativeActivity() { + public override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } + + fun showSoftInput() { + val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + inputMethodManager.showSoftInput(this.window.decorView, 0) + } + + fun hideSoftInput() { + val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + inputMethodManager.hideSoftInputFromWindow(this.window.decorView.windowToken, 0) + } + + // Queue for the Unicode characters to be polled from native code (via pollUnicodeChar()) + private var unicodeCharacterQueue: LinkedBlockingQueue<Int> = LinkedBlockingQueue() + + // We assume dispatchKeyEvent() of the NativeActivity is actually called for every + // KeyEvent and not consumed by any View before it reaches here + override fun dispatchKeyEvent(event: KeyEvent): Boolean { + if (event.action == KeyEvent.ACTION_DOWN) { + unicodeCharacterQueue.offer(event.getUnicodeChar(event.metaState)) + } + return super.dispatchKeyEvent(event) + } + + fun pollUnicodeChar(): Int { + return unicodeCharacterQueue.poll() ?: 0 + } +} |