diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index fc7784c1..867c0c2d 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -65,14 +65,16 @@ target_include_directories(android_platform PUBLIC if(USE_XR) if(BUILD_XR_NATIVE) + list(APPEND XR_EXTERNAL_SOURCES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/xr/Xr.h) list(APPEND XR_EXTERNAL_SOURCES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/platform/interfaces/modules/XRCommon.h) + list(APPEND XR_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/xr) list(APPEND XR_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/platform/interfaces/modules) include(${CMAKE_CURRENT_LIST_DIR}/../../../../CCOpenXR/internal/CMakeLists.txt) else() add_library(xr STATIC IMPORTED GLOBAL) set_target_properties(xr PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/xr/${XR_FOLDER}/libxr.a - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/../sources/xr + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/xr ) set_property(TARGET xr APPEND PROPERTY diff --git a/android/arm64-v8a/xr/huaweivr/libxr.a b/android/arm64-v8a/xr/huaweivr/libxr.a index a188d4a6..8eb4c7b2 100644 Binary files a/android/arm64-v8a/xr/huaweivr/libxr.a and b/android/arm64-v8a/xr/huaweivr/libxr.a differ diff --git a/android/arm64-v8a/xr/meta/libxr.a b/android/arm64-v8a/xr/meta/libxr.a index de859c04..9102b913 100644 Binary files a/android/arm64-v8a/xr/meta/libxr.a and b/android/arm64-v8a/xr/meta/libxr.a differ diff --git a/android/arm64-v8a/xr/monado/libxr.a b/android/arm64-v8a/xr/monado/libxr.a index 228940b9..72eea2a6 100644 Binary files a/android/arm64-v8a/xr/monado/libxr.a and b/android/arm64-v8a/xr/monado/libxr.a differ diff --git a/android/arm64-v8a/xr/pico/libopenxr_loader.so b/android/arm64-v8a/xr/pico/libopenxr_loader.so new file mode 100644 index 00000000..784337e6 Binary files /dev/null and b/android/arm64-v8a/xr/pico/libopenxr_loader.so differ diff --git a/android/arm64-v8a/xr/pico/libxr.a b/android/arm64-v8a/xr/pico/libxr.a new file mode 100644 index 00000000..e8588d3e Binary files /dev/null and b/android/arm64-v8a/xr/pico/libxr.a differ diff --git a/android/arm64-v8a/xr/rokid/libxr.a b/android/arm64-v8a/xr/rokid/libxr.a index d7e732c5..379fc6ea 100644 Binary files a/android/arm64-v8a/xr/rokid/libxr.a and b/android/arm64-v8a/xr/rokid/libxr.a differ diff --git a/android/x86_64/xr/monado/libxr.a b/android/x86_64/xr/monado/libxr.a index 26ad6dd7..ec389f48 100644 Binary files a/android/x86_64/xr/monado/libxr.a and b/android/x86_64/xr/monado/libxr.a differ diff --git a/sources/xr/CMakeLists.txt b/sources/xr/CMakeLists.txt index cf308dbc..4e58a89a 100644 --- a/sources/xr/CMakeLists.txt +++ b/sources/xr/CMakeLists.txt @@ -75,10 +75,6 @@ set(XR_EXTERNAL_LIBS) set(XR_EXTERNAL_INCLUDES) set(XR_EXTERNAL_SOURCES) -list(APPEND XR_EXTERNAL_SOURCES - ${CMAKE_CURRENT_LIST_DIR}/Xr.h -) - list(APPEND XR_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR} ) diff --git a/sources/xr/Xr.h b/sources/xr/Xr.h deleted file mode 100644 index d85bc12d..00000000 --- a/sources/xr/Xr.h +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** - Copyright (c) 2022 Xiamen Yaji Software Co., Ltd. - - http://www.cocos.com - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated engine source code (the "Software"), a limited, - worldwide, royalty-free, non-assignable, revocable and non-exclusive license - to use Cocos Creator solely to develop games on your target platforms. You shall - not use Cocos Creator software for developing other software or tools that's - used for developing games. You are not granted to publish, distribute, - sublicense, and/or sell copies of Cocos Creator. - - The software or tools in this License Agreement are licensed, not sold. - Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -****************************************************************************/ - -#ifndef H_XR_H -#define H_XR_H - -#include -#include -#include "XRCommon.h" - -#ifdef XR_USE_GRAPHICS_API_VULKAN - #include "vulkan/vulkan_core.h" -#endif - -namespace cc { -namespace xr { - -class XrEntry { -public: - static XrEntry *getInstance(); - static void destroyInstance(); - - virtual void initPlatformData(void *javaVM, void *activity) = 0; - - virtual void createXrInstance(const char *graphicsName) = 0; - - virtual void pauseXrInstance() = 0; - - virtual void resumeXrInstance() = 0; - - virtual void destroyXrInstance() = 0; - - virtual int getXrViewCount() = 0; - - virtual void initXrSwapchains() = 0; - - virtual bool isCreatedXrInstance() = 0; - -#ifdef XR_USE_GRAPHICS_API_VULKAN - virtual uint32_t getXrVkApiVersion(uint32_t defaultApiVersion) = 0; - - virtual void initXrSession(VkInstance vkInstance, VkPhysicalDevice vkPhyDevice, VkDevice vkDevice, uint32_t familyIndex) = 0; - - virtual void getSwapchainImages(std::vector &vkImages, uint32_t eye) = 0; - - virtual VkInstance xrVkCreateInstance(const VkInstanceCreateInfo &instInfo, const PFN_vkGetInstanceProcAddr &addr) = 0; - - virtual VkPhysicalDevice getXrVkGraphicsDevice(const VkInstance &vkInstance) = 0; - - virtual VkResult xrVkCreateDevice(const VkDeviceCreateInfo *deviceInfo, const PFN_vkGetInstanceProcAddr &addr, const VkPhysicalDevice &vkPhysicalDevice, VkDevice *vkDevice) = 0; -#endif - -#ifdef XR_USE_GRAPHICS_API_OPENGL_ES - virtual void initXrSession(PFNGLES3WLOADPROC gles3wLoadFuncProc, void *eglDisplay, void *eglConfig, void *eglDefaultContext) = 0; - - virtual unsigned int getXrFrameBuffer() = 0; - - virtual void attachXrFramebufferTexture2D() = 0; -#endif - - virtual std::vector &getCocosXrSwapchains() = 0; - - virtual const XRSwapchain getCurrentXrSwapchain() = 0; - - virtual const xr::XRSwapchain &acquireXrSwapchain(uint32_t gfxApi) = 0; - - virtual bool isSessionRunning() = 0; - - virtual bool frameStart() = 0; - - virtual void renderLoopStart(int eye) = 0; - - virtual void renderLoopEnd(int eye) = 0; - - virtual void frameEnd() = 0; - - virtual bool isRenderAllowable() = 0; - - virtual void setGamepadCallback(const cc::xr::XRControllerCallback &xrControllerCallback) = 0; - - virtual void setHandleCallback(const cc::xr::XRControllerCallback &xrControllerCallback) = 0; - - virtual void setHMDCallback(const cc::xr::XRControllerCallback &xrControllerCallback) = 0; - - virtual void setXRConfigCallback(const cc::xr::XRConfigChangeCallback &xrConfigChangeCallback) = 0; - - virtual std::vector computeViewProjection(uint32_t index, float nearZ, float farZ, float scaleF) = 0; - - virtual uint32_t getSwapchainImageIndex() = 0; - - virtual void setMultisamplesRTT(int num) = 0; - - virtual void setRenderingScale(float scale) = 0; - - virtual void setIPDOffset(float offset) = 0; - - virtual void setBaseSpaceType(int type) = 0; - - virtual std::vector getHMDViewPosition(uint32_t index, int trackingType) = 0; - - virtual bool platformLoopStart() = 0; - - virtual bool platformLoopEnd() = 0; - - virtual XRConfigValue getXRConfig(XRConfigKey key) = 0; - - virtual void setXRConfig(XRConfigKey key, XRConfigValue value) = 0; - - virtual void waitFrame() = 0; - - virtual void setXRIntConfig(int key, int value) = 0; - - virtual void setXRBoolConfig(int key, bool value) = 0; - - virtual void setXRFloatConfig(int key, float value) = 0; - - virtual void setXRStringConfig(int key, std::string value) = 0; - - virtual void setXRPointerConfig(int key, void *value) = 0; - - virtual int getXRIntConfig(int key) = 0; - - virtual bool getXRBoolConfig(int key) = 0; - - virtual float getXRFloatConfig(int key) = 0; - - virtual std::string getXRStringConfig(int key) = 0; - - virtual void *getXRPointerConfig(int key) = 0; -}; - -} // namespace xr -} // namespace cc - -#endif // H_XR_H diff --git a/sources/xr/huaweivr/android/java/libs/hvrbridge.jar b/sources/xr/huaweivr/android/java/libs/hvrbridge.jar deleted file mode 100644 index 5ef4641c..00000000 Binary files a/sources/xr/huaweivr/android/java/libs/hvrbridge.jar and /dev/null differ diff --git a/sources/xr/huaweivr/android/java/proguard-rules.pro b/sources/xr/huaweivr/android/java/proguard-rules.pro deleted file mode 100644 index 7a028f2b..00000000 --- a/sources/xr/huaweivr/android/java/proguard-rules.pro +++ /dev/null @@ -1,20 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in Android/Sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# 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 *; -#} - - --keep class com.huawei.hvr.LibUpdateClient {*;}