Prototype running Desktop Firefox with OpenVR
Categories
(Core :: WebVR, enhancement)
Tracking
()
People
(Reporter: thomasmo, Assigned: thomasmo)
References
Details
Attachments
(1 obsolete file)
Some refactoring for initial OpenVR pointer/mouse support
INPUT DOES NOT WORK
fixes after rebase
Hack prototype for virtual keyboard input
- moves overlay creation to main proc
- enables out-of-proc drawing/presenting for gpu proc
- adds -ovroverlay cmd param to pass overlay handle
- created process singleton for OpenVRHelper to make it easier
to hack in the prototype - OpenVRHelper holds pointer to nsWindow to dispatch key events
- note: requires mouse movement to pump events from SteamVR
until mechanism for async operations is used
- note: requires mouse movement to pump events from SteamVR
Build fixes after rebase
Fix merge error that prevented cross-proc rendering
Changes to experiment with Mouse input
- set RECT to map controller input to desktop window coordinates
- try to dispatch mouse event
- try to PostMessage to HWND
Fix crash in SetDrawPID when OpenVRHelper is disabled
Use DispatchMouseEvent instead of PostMessage
Introduce new thread to poll OpenVR for input
- Removes the hack that processed OpenVR overlay input messages by piggy backing
on WM_MOUSEMOVE - Uses vector + critsec to coordinate passing OpenVR input messages from
background thread to be processed on UI thread - Also adds support for MouseMove events
Show virtual keyboard when focused on a control
This change makes the appropriate call to show the virtual keyboard via OpenVR
whenever the caret is drawn in the window.
Content processes do not have the permissions to acces OpenVR, so an IPC call is
made to the Main proc from child content procs to show the keyboard.
Add support for vertical scrolling
This change maps the OpenVR scroll event from a VR controller to the MOUSEWHEEL
event to enable scrolling in a window.
There are multiple code paths to enable this behavior; this changes uses the
SynthesizeEvent for now. More details in the comment of
OpenVRHelper::ProcessOverlayEvents.
Increase the size of the overlay
This change makes the overlay presentation bigger. Combined with the pref
layout.css.devPixelsPerPx = 2,
this makes for easier, less precise interaction by the controller until a VR-
specific UI is available.
Only use the first SwapChain to present to OpenVR
This change stops the bug where other swapchains (i.e., modal dialogs) instead
of instead of the main window's swapchain are unconditionally presented in the
OpenVR overlay.
Fix after rebase
Updated•6 years ago
|
Description
•