3 weeks ago
I'm trying to port a game engine from supporting PC VR to Quest. The app has to start out as 2D then transition to 3D when ready to run.
When I use 2D only (hence AndroidManifest Intent group "android.intent.category.LAUNCHER", "com.oculus.intent.category.DEFAULT" and "com.oculus.intent.category.2D") then I can create an OpenXR instance and it transitions from Idle over Ready to Synchronized and I see something rendered in 2D panel mode only.
When I use though VR mode (hence AndroidManigest Intent group "android.intent.category.DEFAULT", "com.oculus.intent.category.VR" and "org.khronos.openxr.intent.category.IMMERSIVE_HMD") then the created OpenXR instance only transitions to Idle but never to Ready nor Synchronized. This of course dead-locks the application since according to OpenXR you can not start rendering nor interacting with OpenXR if it is not in Synchronized state.
What is required to be done to start an application in VR mode AND to get OpenXR to transition to Synchronized state?
3 weeks ago
By the way. In the 2D case I could call eglCreateWindowSurface to obtain a surface and create the OpenGL context. In VR-Mode eglCreateWindowSurface fails and instead I had to use eglCreatePbufferSurface to be able to create a surface. Could it be the problem is already coming from the fact that eglCreateWindowSurface is not usable in VR-Mode?