5 Months Ago
Move from SteamVR over to Facepunch.XR Remove direct OpenXR bindings Pass debug callback to Facepunch.XR, make a session Move OpenXR requirements into Facepunch.XR Requirements are done automatically now, make instance/device extension format consistent Hack around extension-related crash for now Events Pass vulkan-related stuff in as structure Fetch rendering recommendations from fpxr Remove silly hack hard-coding all our extensions, fetch them properly Bind fpxr compositor and add everything we should need to start submitting FPXR: Session now handled by Compositor, Instance is now a class Delete all OpenVR files & references, stub out anything that required them Initial FPXR presentation logic Fetch display info from compositor Submit texture, render loop, etc. Use Facepunch.XR provided logging levels Pass bounds to texture submit info Default IPD (for testing with null driver) Facepunch.XR works out bounds for us, gives us full render target size separately from eye render target size Do BeginFrame() and EndFrame() on render thread Native to managed bindings cleanup, sync manually Sync cleanup, fpxr update Update fpxr FPXR returns error codes for various functions now, doesn't use builder pattern for instances FPXR enum update Initial XR input support Port SteamVR actions over to Facepunch.XR format, update fpxr lib Clean up When fetching extensions, check if we want to initialise rather than if we have initialised Clean up structs Digital, float, vector2 input state fetching DigitalAction -> BooleanAction, strip down input stuff, remove unnecessary refresh rate calculations Strip down input stuff, we can just do everything by path New actions manifest format FPXR update, new actions manifest path format, temporarily remove knuckles bindings Remove references to menu chord We don't have to worry about action sets right now Store controller bindings in separate files Rebase fixes Use input sources for controller differentiation Fetch controller poses (position & orientation) InputSource as enum, only include public fpxr headers Coordinate system fixes Remove openvr_api.lib dep, unused preprocessor definitions Facepunch.XR update Add openxr_loader pdb and dll Forgot to change these, oops Refactor VR input to work better for us, remove stubs Minor cleanup & fpxr update Fetch view info Use fpxr.h instead of old fpxr_public.h Remove unused native -> managed GetHmdMatrix function Implement world scale, tracked object list Only init with a debug messenger if launched with -vrdebug, remove some unused stuff Go through VR performance stats, obsolete everything we can't fetch (not sure there's much point keeping this at this stage 😅) Implement functions for Facepunch.XR get instance properties `vr_info` concommand cleanup, uses tracked objects from Input.VR Remove refs to obsolete VR performance stats Projection matrix calculation tweaks - need to figure out why we're getting squares (most likely incorrect frustum) Calculate our own proj matrix from scratch No more WaitGetPoses Input cleanup Vibrations fpxr update Obsolete VROverlay / VROverlayPanel (openxr has no direct concept) - we could re-implement these ourselves at a later date if we want to Re-implement or remove stubbed functions FPXR update Convert tracked object positions to world Delete SteamVR bindings and actions Valve knuckles bindings Update Facepunch.XR library