diff --git a/.github/workflows/build-addon-on-push.yml b/.github/workflows/build-addon-on-push.yml
index bcb47904..56b9062b 100644
--- a/.github/workflows/build-addon-on-push.yml
+++ b/.github/workflows/build-addon-on-push.yml
@@ -23,37 +23,37 @@ jobs:
distribution: 'adopt'
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- - name: Create Godot OpenXR loader AARs
+ - name: Create Godot OpenXR Vendors AARs
run: |
cd aar
./gradlew build
cd ..
# GODOT 4.2 ADDON GENERATION SECTION
- - name: Create Godot OpenXR loader Addon
+ - name: Create Godot OpenXR Vendors Addon
run: |
mkdir asset
cp -r aar/demo/addons asset
- cp aar/CHANGES.md asset/addons/godotopenxr/GodotOpenXRLoaders_CHANGES.md
+ cp aar/CHANGES.md asset/addons/godotopenxrvendors/GodotOpenXRVendors_CHANGES.md
- name: Adding vendor licences
run: |
- cp aar/godotopenxrmeta/LICENSE.txt asset/addons/godotopenxr/export/meta/
- cp aar/godotopenxrpico/src/main/jniLibs/arm64-v8a/README.md asset/addons/godotopenxr/export/pico/LICENSE.md
- cp aar/godotopenxrkhr/LICENSE asset/addons/godotopenxr/export/khr/LICENSE
- - name: Create Godot OpenXR loader addon artifact
+ cp aar/godotopenxrmeta/LICENSE.txt asset/addons/godotopenxrvendors/meta/
+ cp aar/godotopenxrpico/src/main/jniLibs/arm64-v8a/README.md asset/addons/godotopenxrvendors/pico/LICENSE.md
+ cp aar/godotopenxrkhronos/LICENSE asset/addons/godotopenxrvendors/khronos/LICENSE
+ - name: Create Godot OpenXR Vendor addon artifact
uses: actions/upload-artifact@v3
with:
- name: GodotOpenXRLoadersAddon
+ name: GodotOpenXRVendorsAddon
path: |
asset
- name: Zip addon
run: |
- zip -qq -r godotopenxrloadersaddon.zip asset
+ zip -qq -r godotopenxrvendorsaddon.zip asset
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
- name: Create and upload asset
uses: ncipollo/release-action@v1
with:
allowUpdates: true
- artifacts: "godotopenxrloadersaddon.zip"
+ artifacts: "godotopenxrvendorsaddon.zip"
omitNameDuringUpdate: true
omitBodyDuringUpdate: true
omitDraftDuringUpdate: true
diff --git a/CHANGES.md b/CHANGES.md
index 3ebf8fb7..6391c2a8 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -11,6 +11,7 @@
- Update the directory structure for the v2 plugin
- Update Meta OpenXR mobile SDK to version 57
- Update the java version to 17
+- Rename the plugin to 'Godot OpenXR Vendors'
## 1.1.0
- Update Meta OpenXR loader to version 54
diff --git a/README.md b/README.md
index 05c7795a..b691ecdd 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-# Godot OpenXR Loaders
+# Godot OpenXR Vendors plugin
-This repository builds the Android plugin addon required for Godot 4.2 (and higher) to export XR
-applications to the Android devices.
+This plugin provides the functionality to support vendor-specific XR
+devices (e.g: Meta, Pico devices) and access vendor-specific OpenXR extensions
**Note:**
@@ -50,6 +50,9 @@ If you have build the asset from source, you need to create the `addons` folder
if it doesn't exist already, and then copy the content of the `demo/addons` folder to `addons`
in your project.
+Once the asset is added to your project, navigate to `Project` -> `Project Settings...` -> `Plugins`
+and enable the plugin.
+
### Configuring your export
Back in Godot open the `Project` menu and select `Export...`:
@@ -57,12 +60,12 @@ Back in Godot open the `Project` menu and select `Export...`:
selecting `Android`
- Tick the `Use Gradle Build` tickbox
- Select `OpenXR` as the **XR Mode** under the **XR Features** section
-- Enable the loader you need to use
+- Enable the XR vendor you need to use
- Scroll down to the bottom to see additional features for specific platforms.
**Note:**
-**Do not** select multiple loaders in the same export template!
-You can instead create multiple export templates, one for each loader.
+**Do not** select multiple vendors in the same export template!
+You can instead create multiple export templates, one for each vendor.
## License
diff --git a/build.gradle b/build.gradle
index 816c0467..510c2d8e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,6 +11,7 @@ buildscript {
dependencies {
classpath "com.android.tools.build:gradle:$versions.gradlePluginVersion"
classpath "io.github.gradle-nexus:publish-plugin:$versions.nexusPublishVersion"
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlinVersion"
}
}
diff --git a/config.gradle b/config.gradle
index 4ed64a2b..1347a7c6 100644
--- a/config.gradle
+++ b/config.gradle
@@ -8,7 +8,9 @@ ext {
minSdk : 21,
targetSdk : 33,
javaVersion : JavaVersion.VERSION_17,
- nexusPublishVersion : '1.3.0'
+ nexusPublishVersion : '1.3.0',
+ kotlinVersion : '1.7.22',
+ coreKtxVersion : '1.12.0',
]
libraries = [
diff --git a/demo/.gitignore b/demo/.gitignore
index 5d90f318..443378c0 100644
--- a/demo/.gitignore
+++ b/demo/.gitignore
@@ -1,4 +1,4 @@
# Godot 4+ specific ignores
.godot/
-/addons/godotopenxr/.bin/**/*.aar
+/addons/godotopenxrvendors/*/.bin
/android/
diff --git a/demo/addons/godotopenxr/export/globals.gd b/demo/addons/godotopenxrvendors/globals.gd
similarity index 91%
rename from demo/addons/godotopenxr/export/globals.gd
rename to demo/addons/godotopenxrvendors/globals.gd
index 241219e8..4964c2f0 100644
--- a/demo/addons/godotopenxr/export/globals.gd
+++ b/demo/addons/godotopenxrvendors/globals.gd
@@ -4,7 +4,7 @@
const META_VENDOR_NAME = "meta"
const PICO_VENDOR_NAME = "pico"
const LYNX_VENDOR_NAME = "lynx"
-const KHRONOS_VENDOR_NAME = "khr"
+const KHRONOS_VENDOR_NAME = "khronos"
const VENDORS_LIST = [
META_VENDOR_NAME,
diff --git a/demo/addons/godotopenxr/export/godot_openxr_export_plugin.gd b/demo/addons/godotopenxrvendors/godot_openxr_export_plugin.gd
similarity index 90%
rename from demo/addons/godotopenxr/export/godot_openxr_export_plugin.gd
rename to demo/addons/godotopenxrvendors/godot_openxr_export_plugin.gd
index c6367ff2..ab35812e 100644
--- a/demo/addons/godotopenxr/export/godot_openxr_export_plugin.gd
+++ b/demo/addons/godotopenxrvendors/godot_openxr_export_plugin.gd
@@ -7,7 +7,7 @@ var globals = preload("globals.gd")
var meta_export_plugin : GodotOpenXREditorExportPlugin
var pico_export_plugin : GodotOpenXREditorExportPlugin
var lynx_export_plugin : GodotOpenXREditorExportPlugin
-var khr_export_plugin : GodotOpenXREditorExportPlugin
+var khronos_export_plugin : GodotOpenXREditorExportPlugin
func _enter_tree():
@@ -23,13 +23,13 @@ func _enter_tree():
lynx_export_plugin = preload("lynx/godot_openxr_lynx_editor_export_plugin.gd").new()
lynx_export_plugin._setup(globals.LYNX_VENDOR_NAME, plugin_version)
- khr_export_plugin = preload("khr/godot_openxr_khr_editor_export_plugin.gd").new()
- khr_export_plugin._setup(globals.KHRONOS_VENDOR_NAME, plugin_version)
+ khronos_export_plugin = preload("khronos/godot_openxr_khronos_editor_export_plugin.gd").new()
+ khronos_export_plugin._setup(globals.KHRONOS_VENDOR_NAME, plugin_version)
add_export_plugin(meta_export_plugin)
add_export_plugin(pico_export_plugin)
add_export_plugin(lynx_export_plugin)
- add_export_plugin(khr_export_plugin)
+ add_export_plugin(khronos_export_plugin)
func _exit_tree():
@@ -37,12 +37,12 @@ func _exit_tree():
remove_export_plugin(meta_export_plugin)
remove_export_plugin(pico_export_plugin)
remove_export_plugin(lynx_export_plugin)
- remove_export_plugin(khr_export_plugin)
+ remove_export_plugin(khronos_export_plugin)
meta_export_plugin = null
pico_export_plugin = null
lynx_export_plugin = null
- khr_export_plugin = null
+ khronos_export_plugin = null
class GodotOpenXREditorExportPlugin extends EditorExportPlugin:
@@ -67,12 +67,12 @@ class GodotOpenXREditorExportPlugin extends EditorExportPlugin:
# If this is not available, we fall back to the maven central dependency
func _get_android_aar_file_path(debug: bool) -> String:
var debug_label = "debug" if debug else "release"
- return "res://addons/godotopenxr/.bin/" + _vendor + "/" + debug_label + "/godotopenxr" + _vendor + "-" + debug_label + ".aar"
+ return "res://addons/godotopenxrvendors/" + _vendor + "/.bin/" + debug_label + "/godotopenxr" + _vendor + "-" + debug_label + ".aar"
# Maven central dependency used as fall back when the Android library aar file is not available
func _get_android_maven_central_dependency() -> String:
- return "org.godotengine:godot-openxr-loaders-" + _vendor + ":" + _plugin_version
+ return "org.godotengine:godot-openxr-vendors-" + _vendor + ":" + _plugin_version
func _get_vendor_toggle_option_name(vendor_name: String = _vendor) -> String:
diff --git a/demo/addons/godotopenxr/export/khr/godot_openxr_khr_editor_export_plugin.gd b/demo/addons/godotopenxrvendors/khronos/godot_openxr_khronos_editor_export_plugin.gd
similarity index 100%
rename from demo/addons/godotopenxr/export/khr/godot_openxr_khr_editor_export_plugin.gd
rename to demo/addons/godotopenxrvendors/khronos/godot_openxr_khronos_editor_export_plugin.gd
diff --git a/demo/addons/godotopenxr/export/lynx/godot_openxr_lynx_editor_export_plugin.gd b/demo/addons/godotopenxrvendors/lynx/godot_openxr_lynx_editor_export_plugin.gd
similarity index 100%
rename from demo/addons/godotopenxr/export/lynx/godot_openxr_lynx_editor_export_plugin.gd
rename to demo/addons/godotopenxrvendors/lynx/godot_openxr_lynx_editor_export_plugin.gd
diff --git a/demo/addons/godotopenxr/export/meta/godot_openxr_meta_editor_export_plugin.gd b/demo/addons/godotopenxrvendors/meta/godot_openxr_meta_editor_export_plugin.gd
similarity index 100%
rename from demo/addons/godotopenxr/export/meta/godot_openxr_meta_editor_export_plugin.gd
rename to demo/addons/godotopenxrvendors/meta/godot_openxr_meta_editor_export_plugin.gd
diff --git a/demo/addons/godotopenxr/export/pico/godot_openxr_pico_editor_export_plugin.gd b/demo/addons/godotopenxrvendors/pico/godot_openxr_pico_editor_export_plugin.gd
similarity index 100%
rename from demo/addons/godotopenxr/export/pico/godot_openxr_pico_editor_export_plugin.gd
rename to demo/addons/godotopenxrvendors/pico/godot_openxr_pico_editor_export_plugin.gd
diff --git a/demo/addons/godotopenxr/plugin.cfg b/demo/addons/godotopenxrvendors/plugin.cfg
similarity index 53%
rename from demo/addons/godotopenxr/plugin.cfg
rename to demo/addons/godotopenxrvendors/plugin.cfg
index f2da796d..a9bfa7b5 100644
--- a/demo/addons/godotopenxr/plugin.cfg
+++ b/demo/addons/godotopenxrvendors/plugin.cfg
@@ -1,7 +1,7 @@
[plugin]
-name="GodotOpenXR"
-description="Godot OpenXR loader plugin"
+name="GodotOpenXRVendors"
+description="Godot OpenXR Vendors plugin"
author="https://github.com/GodotVR/godot_openxr_loaders/blob/master/CONTRIBUTORS.md"
version="2.0.0-dev-SNAPSHOT"
-script="export/godot_openxr_export_plugin.gd"
+script="godot_openxr_export_plugin.gd"
diff --git a/demo/export_presets.cfg b/demo/export_presets.cfg
index f64039b0..bb1e9003 100644
--- a/demo/export_presets.cfg
+++ b/demo/export_presets.cfg
@@ -28,7 +28,7 @@ architectures/x86=false
architectures/x86_64=false
version/code=1
version/name="1.0"
-package/unique_name="org.godotengine.openxr.demo"
+package/unique_name="org.godotengine.openxr.vendors.demo"
package/name=""
package/signed=true
package/app_category=2
@@ -201,11 +201,11 @@ permissions/write_sync_settings=false
permissions/write_user_dictionary=false
xr_features/enable_meta_plugin=true
meta_xr_features/hand_tracking=1
-meta_xr_features/hand_tracking_frequency=0
-meta_xr_features/passthrough=1
+meta_xr_features/hand_tracking_frequency=1
+meta_xr_features/passthrough=0
xr_features/enable_pico_plugin=false
xr_features/enable_lynx_plugin=false
-xr_features/enable_khr_plugin=false
+xr_features/enable_khronos_plugin=false
meta_xr_features/eye_tracking=1
meta_xr_features/quest_1_support=false
meta_xr_features/quest_2_support=true
diff --git a/demo/project.godot b/demo/project.godot
index 9372835e..abb4d381 100644
--- a/demo/project.godot
+++ b/demo/project.godot
@@ -21,7 +21,7 @@ settings/stdout/verbose_stdout=true
[editor_plugins]
-enabled=PackedStringArray("res://addons/godotopenxr/plugin.cfg")
+enabled=PackedStringArray("res://addons/godotopenxrvendors/plugin.cfg")
[rendering]
diff --git a/godotopenxrkhr/proguard-rules.pro b/godotopenxrkhr/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/godotopenxrkhr/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/godotopenxrkhr/src/main/java/org/godotengine/openxrloaders/khr/GodotOpenXRKHR.java b/godotopenxrkhr/src/main/java/org/godotengine/openxrloaders/khr/GodotOpenXRKHR.java
deleted file mode 100644
index 2c49bc4b..00000000
--- a/godotopenxrkhr/src/main/java/org/godotengine/openxrloaders/khr/GodotOpenXRKHR.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.godotengine.openxrloaders.khr;
-
-import org.godotengine.godot.Godot;
-import org.godotengine.godot.plugin.GodotPlugin;
-
-/**
- * \brief GodotOpenXRKHR is the OpenXR KHR loader plugin for Godot.
- *
- * When using OpenXR for your application on Android make sure that
- * the IMMERSIVE_HMD category is added to your activities intent-filter.
- *
- *
- *
- *
- *
- *
- *
- * more details can be found here:
- * https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category
- *
- */
-public class GodotOpenXRKHR extends GodotPlugin {
-
- public GodotOpenXRKHR(Godot godot) {
- super(godot);
- }
-
- @Override
- public String getPluginName() {
- return "GodotOpenXRKHR";
- }
-}
diff --git a/godotopenxrkhr/.gitignore b/godotopenxrkhronos/.gitignore
similarity index 100%
rename from godotopenxrkhr/.gitignore
rename to godotopenxrkhronos/.gitignore
diff --git a/godotopenxrkhr/LICENSE b/godotopenxrkhronos/LICENSE
similarity index 100%
rename from godotopenxrkhr/LICENSE
rename to godotopenxrkhronos/LICENSE
diff --git a/godotopenxrkhr/README.md b/godotopenxrkhronos/README.md
similarity index 95%
rename from godotopenxrkhr/README.md
rename to godotopenxrkhronos/README.md
index 9052b232..2678dfd5 100644
--- a/godotopenxrkhr/README.md
+++ b/godotopenxrkhronos/README.md
@@ -1,4 +1,4 @@
-# Godot OpenXR KHR Android loader
+# Godot OpenXR Khronos Android plugin
Binaries taken from the Official OpenXR working group repo at:
https://github.com/KhronosGroup/OpenXR-SDK-Source/releases/download/release-1.0.26/openxr_loader_for_android-1.0.26.aar
diff --git a/godotopenxrkhr/build.gradle b/godotopenxrkhronos/build.gradle
similarity index 66%
rename from godotopenxrkhr/build.gradle
rename to godotopenxrkhronos/build.gradle
index 79490af7..bf340285 100644
--- a/godotopenxrkhr/build.gradle
+++ b/godotopenxrkhronos/build.gradle
@@ -1,10 +1,11 @@
plugins {
id 'com.android.library'
+ id 'org.jetbrains.kotlin.android'
}
ext {
- PUBLISH_ARTIFACT_ID = 'godot-openxr-loaders-khr'
+ PUBLISH_ARTIFACT_ID = 'godot-openxr-vendors-khronos'
}
apply from: "../scripts/publish-module.gradle"
@@ -22,14 +23,7 @@ android {
}
}
- namespace = "org.godotengine.openxrloaders.khr"
-
- buildTypes {
- debug {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
+ namespace = "org.godotengine.openxr.vendors.khronos"
packagingOptions {
doNotStrip '**/*.so'
@@ -40,6 +34,10 @@ android {
targetCompatibility versions.javaVersion
}
+ kotlinOptions {
+ jvmTarget = versions.javaVersion
+ }
+
publishing {
singleVariant("release") {
withSourcesJar()
@@ -49,19 +47,20 @@ android {
}
dependencies {
+ implementation "androidx.core:core-ktx:$versions.coreKtxVersion"
compileOnly libraries.godotAndroidLib
}
task copyDebugAARToAddons(type: Copy) {
from 'build/outputs/aar'
- include 'godotopenxrkhr-debug.aar'
- into '../demo/addons/godotopenxr/.bin/khr/debug'
+ include 'godotopenxrkhronos-debug.aar'
+ into '../demo/addons/godotopenxrvendors/khronos/.bin/debug'
}
task copyReleaseAARToAddons(type: Copy) {
from 'build/outputs/aar'
- include 'godotopenxrkhr-release.aar'
- into '../demo/addons/godotopenxr/.bin/khr/release'
+ include 'godotopenxrkhronos-release.aar'
+ into '../demo/addons/godotopenxrvendors/khronos/.bin/release'
}
assemble.finalizedBy(copyDebugAARToAddons)
diff --git a/godotopenxrkhr/src/main/AndroidManifest.xml b/godotopenxrkhronos/src/main/AndroidManifest.xml
similarity index 86%
rename from godotopenxrkhr/src/main/AndroidManifest.xml
rename to godotopenxrkhronos/src/main/AndroidManifest.xml
index d9c7423e..ddce2f56 100644
--- a/godotopenxrkhr/src/main/AndroidManifest.xml
+++ b/godotopenxrkhronos/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
+
+ android:name="org.godotengine.plugin.v2.GodotOpenXRKhronos"
+ android:value="org.godotengine.openxr.vendors.khronos.GodotOpenXRKhronos" />
diff --git a/godotopenxrkhronos/src/main/java/org/godotengine/openxr/vendors/khronos/GodotOpenXRKhronos.kt b/godotopenxrkhronos/src/main/java/org/godotengine/openxr/vendors/khronos/GodotOpenXRKhronos.kt
new file mode 100644
index 00000000..0e220cca
--- /dev/null
+++ b/godotopenxrkhronos/src/main/java/org/godotengine/openxr/vendors/khronos/GodotOpenXRKhronos.kt
@@ -0,0 +1,26 @@
+package org.godotengine.openxr.vendors.khronos
+
+import org.godotengine.godot.Godot
+import org.godotengine.godot.plugin.GodotPlugin
+
+/**
+ * \brief GodotOpenXRKhronos is the OpenXR Khronos plugin for Godot.
+ *
+ * When using OpenXR for your application on Android make sure that
+ * the IMMERSIVE_HMD category is added to your activities intent-filter.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * more details can be found here:
+ * https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category
+ *
+ */
+class GodotOpenXRKhronos(godot: Godot?) : GodotPlugin(godot) {
+ override fun getPluginName(): String {
+ return "GodotOpenXRKhronos"
+ }
+}
diff --git a/godotopenxrkhr/src/main/jniLibs/arm64-v8a/abi.json b/godotopenxrkhronos/src/main/jniLibs/arm64-v8a/abi.json
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/arm64-v8a/abi.json
rename to godotopenxrkhronos/src/main/jniLibs/arm64-v8a/abi.json
diff --git a/godotopenxrkhr/src/main/jniLibs/arm64-v8a/libopenxr_loader.so b/godotopenxrkhronos/src/main/jniLibs/arm64-v8a/libopenxr_loader.so
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/arm64-v8a/libopenxr_loader.so
rename to godotopenxrkhronos/src/main/jniLibs/arm64-v8a/libopenxr_loader.so
diff --git a/godotopenxrkhr/src/main/jniLibs/armeabi-v7a/abi.json b/godotopenxrkhronos/src/main/jniLibs/armeabi-v7a/abi.json
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/armeabi-v7a/abi.json
rename to godotopenxrkhronos/src/main/jniLibs/armeabi-v7a/abi.json
diff --git a/godotopenxrkhr/src/main/jniLibs/armeabi-v7a/libopenxr_loader.so b/godotopenxrkhronos/src/main/jniLibs/armeabi-v7a/libopenxr_loader.so
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/armeabi-v7a/libopenxr_loader.so
rename to godotopenxrkhronos/src/main/jniLibs/armeabi-v7a/libopenxr_loader.so
diff --git a/godotopenxrkhr/src/main/jniLibs/x86/abi.json b/godotopenxrkhronos/src/main/jniLibs/x86/abi.json
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/x86/abi.json
rename to godotopenxrkhronos/src/main/jniLibs/x86/abi.json
diff --git a/godotopenxrkhr/src/main/jniLibs/x86/libopenxr_loader.so b/godotopenxrkhronos/src/main/jniLibs/x86/libopenxr_loader.so
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/x86/libopenxr_loader.so
rename to godotopenxrkhronos/src/main/jniLibs/x86/libopenxr_loader.so
diff --git a/godotopenxrkhr/src/main/jniLibs/x86_64/abi.json b/godotopenxrkhronos/src/main/jniLibs/x86_64/abi.json
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/x86_64/abi.json
rename to godotopenxrkhronos/src/main/jniLibs/x86_64/abi.json
diff --git a/godotopenxrkhr/src/main/jniLibs/x86_64/libopenxr_loader.so b/godotopenxrkhronos/src/main/jniLibs/x86_64/libopenxr_loader.so
similarity index 100%
rename from godotopenxrkhr/src/main/jniLibs/x86_64/libopenxr_loader.so
rename to godotopenxrkhronos/src/main/jniLibs/x86_64/libopenxr_loader.so
diff --git a/godotopenxrlynx/README.md b/godotopenxrlynx/README.md
index 31d5b4bd..99600489 100644
--- a/godotopenxrlynx/README.md
+++ b/godotopenxrlynx/README.md
@@ -1,4 +1,4 @@
-# Godot OpenXR Lynx Android loader
+# Godot OpenXR Lynx Android plugin
Binaries taken from Lynx at:
-https://portal.lynx-r.com/downloads/item/1/download/latest
\ No newline at end of file
+https://portal.lynx-r.com/downloads/item/1/download/latest
diff --git a/godotopenxrlynx/build.gradle b/godotopenxrlynx/build.gradle
index d517c80d..14cbf8d4 100644
--- a/godotopenxrlynx/build.gradle
+++ b/godotopenxrlynx/build.gradle
@@ -1,9 +1,10 @@
plugins {
id 'com.android.library'
+ id 'org.jetbrains.kotlin.android'
}
ext {
- PUBLISH_ARTIFACT_ID = 'godot-openxr-loaders-lynx'
+ PUBLISH_ARTIFACT_ID = 'godot-openxr-vendors-lynx'
}
apply from: "../scripts/publish-module.gradle"
@@ -22,14 +23,7 @@ android {
}
}
- namespace = "org.godotengine.openxrloaders.lynx"
-
- buildTypes {
- debug {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
+ namespace = "org.godotengine.openxr.vendors.lynx"
packagingOptions {
doNotStrip '**/*.so'
@@ -40,6 +34,10 @@ android {
targetCompatibility versions.javaVersion
}
+ kotlinOptions {
+ jvmTarget = versions.javaVersion
+ }
+
publishing {
singleVariant("release") {
withSourcesJar()
@@ -49,19 +47,20 @@ android {
}
dependencies {
+ implementation "androidx.core:core-ktx:$versions.coreKtxVersion"
compileOnly libraries.godotAndroidLib
}
task copyDebugAARToAddons(type: Copy) {
from 'build/outputs/aar'
include 'godotopenxrlynx-debug.aar'
- into '../demo/addons/godotopenxr/.bin/lynx/debug'
+ into '../demo/addons/godotopenxrvendors/lynx/.bin/debug'
}
task copyReleaseAARToAddons(type: Copy) {
from 'build/outputs/aar'
include 'godotopenxrlynx-release.aar'
- into '../demo/addons/godotopenxr/.bin/lynx/release'
+ into '../demo/addons/godotopenxrvendors/lynx/.bin/release'
}
assemble.finalizedBy(copyDebugAARToAddons)
diff --git a/godotopenxrlynx/proguard-rules.pro b/godotopenxrlynx/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/godotopenxrlynx/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/godotopenxrlynx/src/main/AndroidManifest.xml b/godotopenxrlynx/src/main/AndroidManifest.xml
index 81a3fc6e..83ade431 100644
--- a/godotopenxrlynx/src/main/AndroidManifest.xml
+++ b/godotopenxrlynx/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
+
@@ -19,7 +18,7 @@
+ android:value="org.godotengine.openxr.vendors.lynx.GodotOpenXRLynx" />
diff --git a/godotopenxrlynx/src/main/java/org/godotengine/openxr/vendors/lynx/GodotOpenXRLynx.kt b/godotopenxrlynx/src/main/java/org/godotengine/openxr/vendors/lynx/GodotOpenXRLynx.kt
new file mode 100644
index 00000000..87e74c31
--- /dev/null
+++ b/godotopenxrlynx/src/main/java/org/godotengine/openxr/vendors/lynx/GodotOpenXRLynx.kt
@@ -0,0 +1,13 @@
+package org.godotengine.openxr.vendors.lynx
+
+import org.godotengine.godot.Godot
+import org.godotengine.godot.plugin.GodotPlugin
+
+/**
+ * \brief GodotOpenXRLynx is the OpenXR Lynx plugin for Godot.
+ */
+class GodotOpenXRLynx(godot: Godot?) : GodotPlugin(godot) {
+ override fun getPluginName(): String {
+ return "GodotOpenXRLynx"
+ }
+}
diff --git a/godotopenxrlynx/src/main/java/org/godotengine/openxrloaders/lynx/GodotOpenXRLynx.java b/godotopenxrlynx/src/main/java/org/godotengine/openxrloaders/lynx/GodotOpenXRLynx.java
deleted file mode 100644
index 9e62f558..00000000
--- a/godotopenxrlynx/src/main/java/org/godotengine/openxrloaders/lynx/GodotOpenXRLynx.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.godotengine.openxrloaders.lynx;
-
-import org.godotengine.godot.Godot;
-import org.godotengine.godot.plugin.GodotPlugin;
-
-/**
- * \brief GodotOpenXRLynx is the OpenXR Lynx loader plugin for Godot.
- */
-public class GodotOpenXRLynx extends GodotPlugin {
-
- public GodotOpenXRLynx(Godot godot) {
- super(godot);
- }
-
- @Override
- public String getPluginName() {
- return "GodotOpenXRLynx";
- }
-}
diff --git a/godotopenxrmeta/README.md b/godotopenxrmeta/README.md
index 34a7be6b..8a65e955 100644
--- a/godotopenxrmeta/README.md
+++ b/godotopenxrmeta/README.md
@@ -1,3 +1,3 @@
-# Godot OpenXR Meta Android loader
+# Godot OpenXR Meta plugin
Based off version 57 of the Meta OpenXR Mobile SDK from https://developer.oculus.com/downloads/package/oculus-openxr-mobile-sdk/57.0
diff --git a/godotopenxrmeta/build.gradle b/godotopenxrmeta/build.gradle
index 2bb15f8f..f5f94687 100644
--- a/godotopenxrmeta/build.gradle
+++ b/godotopenxrmeta/build.gradle
@@ -1,9 +1,10 @@
plugins {
id 'com.android.library'
+ id 'org.jetbrains.kotlin.android'
}
ext {
- PUBLISH_ARTIFACT_ID = 'godot-openxr-loaders-meta'
+ PUBLISH_ARTIFACT_ID = 'godot-openxr-vendors-meta'
}
apply from: "../scripts/publish-module.gradle"
@@ -22,14 +23,7 @@ android {
}
}
- namespace = "org.godotengine.openxrloaders.meta"
-
- buildTypes {
- debug {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
+ namespace = "org.godotengine.openxr.vendors.meta"
packagingOptions {
doNotStrip '**/*.so'
@@ -40,6 +34,10 @@ android {
targetCompatibility versions.javaVersion
}
+ kotlinOptions {
+ jvmTarget = versions.javaVersion
+ }
+
publishing {
singleVariant("release") {
withSourcesJar()
@@ -49,19 +47,20 @@ android {
}
dependencies {
+ implementation "androidx.core:core-ktx:$versions.coreKtxVersion"
compileOnly libraries.godotAndroidLib
}
task copyDebugAARToAddons(type: Copy) {
from 'build/outputs/aar'
include 'godotopenxrmeta-debug.aar'
- into '../demo/addons/godotopenxr/.bin/meta/debug'
+ into '../demo/addons/godotopenxrvendors/meta/.bin/debug'
}
task copyReleaseAARToAddons(type: Copy) {
from 'build/outputs/aar'
include 'godotopenxrmeta-release.aar'
- into '../demo/addons/godotopenxr/.bin/meta/release'
+ into '../demo/addons/godotopenxrvendors/meta/.bin/release'
}
assemble.finalizedBy(copyDebugAARToAddons)
diff --git a/godotopenxrmeta/proguard-rules.pro b/godotopenxrmeta/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/godotopenxrmeta/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/godotopenxrmeta/src/main/AndroidManifest.xml b/godotopenxrmeta/src/main/AndroidManifest.xml
index 00d3ee9b..a3dc5ac6 100644
--- a/godotopenxrmeta/src/main/AndroidManifest.xml
+++ b/godotopenxrmeta/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
+
+ android:value="org.godotengine.openxr.vendors.meta.GodotOpenXRMeta" />
-
+
+ android:value="org.godotengine.openxr.vendors.pico.GodotOpenXRPico" />
diff --git a/godotopenxrpico/src/main/java/org/godotengine/openxr/vendors/pico/GodotOpenXRPico.kt b/godotopenxrpico/src/main/java/org/godotengine/openxr/vendors/pico/GodotOpenXRPico.kt
new file mode 100644
index 00000000..144bb45f
--- /dev/null
+++ b/godotopenxrpico/src/main/java/org/godotengine/openxr/vendors/pico/GodotOpenXRPico.kt
@@ -0,0 +1,13 @@
+package org.godotengine.openxr.vendors.pico
+
+import org.godotengine.godot.Godot
+import org.godotengine.godot.plugin.GodotPlugin
+
+/**
+ * Godot plugin for the Pico OpenXR loader.
+ */
+class GodotOpenXRPico(godot: Godot?) : GodotPlugin(godot) {
+ override fun getPluginName(): String {
+ return "GodotOpenXRPico"
+ }
+}
diff --git a/godotopenxrpico/src/main/java/org/godotengine/openxrloaders/pico/GodotOpenXRPico.java b/godotopenxrpico/src/main/java/org/godotengine/openxrloaders/pico/GodotOpenXRPico.java
deleted file mode 100644
index 6a85d757..00000000
--- a/godotopenxrpico/src/main/java/org/godotengine/openxrloaders/pico/GodotOpenXRPico.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.godotengine.openxrloaders.pico;
-
-import org.godotengine.godot.Godot;
-import org.godotengine.godot.plugin.GodotPlugin;
-
-/**
- * Godot plugin for the Pico OpenXR loader.
- */
-public class GodotOpenXRPico extends GodotPlugin {
-
- public GodotOpenXRPico(Godot godot) {
- super(godot);
- }
-
- @Override
- public String getPluginName() {
- return "GodotOpenXRPico";
- }
-}
diff --git a/scripts/publish-module.gradle b/scripts/publish-module.gradle
index 9f1ecd62..9b910156 100644
--- a/scripts/publish-module.gradle
+++ b/scripts/publish-module.gradle
@@ -18,7 +18,7 @@ afterEvaluate {
// Mostly self-explanatory metadata
pom {
name = PUBLISH_ARTIFACT_ID
- description = 'Godot OpenXR Loaders'
+ description = 'Godot OpenXR Vendors'
url = 'https://github.com/GodotVR/godot_openxr_loaders#readme'
licenses {
license {
diff --git a/settings.gradle b/settings.gradle
index af4a2f0e..14dd0197 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -3,6 +3,8 @@ pluginManagement {
plugins {
id 'io.github.gradle-nexus.publish-plugin' version versions.nexusPublishVersion
+ id 'com.android.library' version versions.gradlePluginVersion
+ id 'org.jetbrains.kotlin.android' version versions.kotlinVersion
}
repositories {
gradlePluginPortal()
@@ -19,5 +21,5 @@ dependencyResolutionManagement {
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/"}
}
}
-rootProject.name = "GodotOpenXRLoaders"
-include ':godotopenxrmeta', ':godotopenxrpico', ':godotopenxrkhr', ':godotopenxrlynx'
+rootProject.name = "GodotOpenXRVendors"
+include ':godotopenxrmeta', ':godotopenxrpico', ':godotopenxrkhronos', ':godotopenxrlynx'