mirror of
https://github.com/astromaddie/lambda1-vr.git
synced 2026-10-18 12:00:13 +02:00
SteamVR doesn't offer what the Quest and Pico runtimes do, and the frame loop assumed they were there. All of this is behind L1VR_STEAM_FRAME, so the Quest and Pico code paths stay as they were. - Only OpenGL ES is required. Everything else (android create instance, performance settings, refresh rate, the Valve controller extension) is enabled when the runtime lists it. The android create instance struct only goes in the chain if that extension is on. - No Pico or Meta calls on the Frame, and no assuming OPENXR_HMD is set. - The graphics binding gets the EGLConfig instead of the surface. - The eye framebuffers fall back to plain GLES 3 when there's no multisampling, so the runtime doesn't need the EXT extension. - Render at the recommended size, not 1.3x of it. - In standby (shouldRender false) the frame goes in with no layers and the game waits too. Before, the server kept simulating. - SteamVR quitting the app (exiting, loss pending) goes through the normal shutdown instead of spinning on events. - A recentre that takes the head's yaw and floor position, for the controller code to call. It keeps the view yaw and the world position, so nothing jumps. - Log what's going on with an [openxr] prefix: runtime, extensions, swapchain format and size, session state, refresh rates. Builds. Haven't tried it in the headset yet.