Skip to content

OpenVRDesktopDisplayPortal-v1.0.5-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@Hotrian Hotrian released this 10 Aug 08:07
· 44 commits to master since this release

This update features a few different things, most importantly Click support which allows you to aim at an overlay and Click the target application with the desktop cursor. This update also adds the ability to move, rotate, and scale the overlay by putting the controller into the overlay and holding the trigger down. Scale by "grabbing" the overlay and then holding the trigger on the other controller, moving the controllers together or apart, and releasing the trigger on that controller. Some tooltips might be incorrect or missing, but I believe all the important ones are correct.

Please see the Readme for more details!

Special thanks to judah4 for the base Color Picker script! Also thanks to the other contributors of that repo!

Changes:

  • Added Mouse support.
    • Added "Full Interaction", "Window Top", "Send Clicks Only", and "Disabled" modes.
      • Full Interaction: Attempts to bring the window to the top and click on it.
      • Window Top: Attempts to bring the window to the top and send a click message (this is slightly different).
      • Send Clicks Only: Only sends click messages and works on background windows.
      • Disabled: Disables mouse interaction, but moving/rotating/scaling still works as detailed below.
      • More information can be found by hovering your mouse over the Interaction Dropdown on the top left.
    • Only World and Controller based Overlays can be clicked.
      • When attached to a controller, only the other controller can send clicks. It wouldn't be useful for the attached controller to send clicks because you couldn't move the cursor anyway.
    • Currently supports left click, double click, and right click only.
      • Left/double click by aiming at the overlay and pulling the trigger (fully press and release rapidly).
      • Right click by aiming at the overlay and click the trackpad. Depending on the application and capture mode, right click menus might not be visible.
      • Mouse Wheel and hopefully Click+Drag coming in a future release.
    • Not all applications will accept simulated input. The one I found that didn't was MSPaint... Some applications also will only accept mouse simulation if OVRDDP is run as Admin. TaskManager for instance, you cannot click unless OVRDDP is run as Admin. It's a minor annoyance but worth noting.
  • Changes to the way Capture Mode/FPS are selected and handled.
  • Added a Cursor Sprite so you know where you're aiming on the overlay. Request other sprites here.
    • Planning to grab the current desktop cursor sprite through the Win32 API in a future version.
  • Added Lock Resolution toggle. This attempts to lock the Target Application at a certain size.
  • Added an "Additional Settings" panel. Currently this only has settings for Outline color but other settings will be added in the future. Click the "Additional Settings" button in the top left to open or close it.
  • Added an Outline to indicate when the Overlay is being aimed at, as well as when it is close enough to grab.
    • Added a color selector for the outline (Thanks judah4 for the base code!)
      • To open the color selectors, Click "Additional Settings" on the top left panel.
      • Click the color next to the setting you want to change, a color selector will pop up.
      • Select the color you want.
        • You can edit Red, Green, Blue, or Hue, Saturation, Value, in addition to Alpha. It isn't required to use all of the sliders, they are just there for convenience. You can choose to use RGB or HSV, or the color box and slider at the top, or any combination of these.
        • You can also use the input box on the top to copy/paste the color in HEX format.
      • When you are finished, click "Accept" to apply or "Cancel" to discard your changes.
      • To close the Additional Settings panel, click the "Additional Settings" button again.
  • Added the ability to "grab" the overlays. Allows for Moving/Rotating/Scaling the Overlay.
    • Only World Overlays can be grabbed right now.
    • Can only be grabbed from the front side (controller facing into the overlay).
    • Grab the overlay by bringing your controller near it and pressing the trigger all the way down.
      • Depending on your settings, the Outline should change color when you are close enough to Grab.
    • Move/Rotate the overlay by moving/rotating the controller that is grabbing it.
      • Rotation might seem bugged right now, but it's actually mapped to the exact rotation of the grabbing controller.
      • Grab near the center of the overlay for more accurate rotation.
    • Scale the overlay by:
      • Grab the Overlay, and keep the trigger held down.
      • Hold the second controller's trigger down also.
      • Move the controllers closer together or further apart.
      • Release the second controller's trigger.
      • If it needs to be bigger or smaller, hold the second controllers trigger down again and repeat the steps from there.
      • You can also change the Overlay's "On Gaze" scale. Only works if the Gaze setting in the bottom right is set to Scale or AlphaAndScale. To do so, Stare at the overlay, start the scaling process (holding down both triggers), and you can now look away as long as you keep both triggers held down. Release the trigger to complete the gesture, and repeat it if necessary to get the Overlay just how big/small you want it.
  • FPS should now default to 24 which should be enough for almost any purpose.
  • Added a Dropdown on the very top left to allow other modes to be added later. No additional modes are included yet.
  • Added another Hotkey. Pressing Spacebar will toggle the Overlay On and Off. There is a slight lag spike when you turn the Overlay back on (as resources are being regenerated), but this shouldn't be a huge issue.

Bug Fixes:

  • Overlay hides when Target Application closes.
  • Device Manager no longer spams the log file when only one controller is detected.
  • Capture Mode/FPS now correctly saved on a per application basis.
  • World and Screen overlays were being offset by +1 on the Z axis internally. This has been changed so the offset is exposed. Screen Overlays now start at (0, 0, 1) and old profiles will be shifted by +1 on the Z axis automatically. Please see #25 for more info.

Known Issues:

  • Certain situations will break Controller Interaction, please see the compatibility article for more details.
  • Overlay "grab" rotation is incorrect, but good enough that you can move and rotate the Overlay from VR now.
  • Seems like Tron Mode breaks overlay interaction, certain games probably do as well.
  • Color Selector is a bit finicky. You must Click+Drag or Click Twice for the color to take effect. Click just once doesn't seem to work :P. Although after the second click, the third, fourth, etc all seem to work fine.
  • Cursor position is incorrect with GDI Indirect. I haven't gotten around to fixing this but for now it still functions correctly, but is offset slightly. Sorry!
  • Some applications cannot be clicked. Try launching as Admin to fix this. Some applications are protected from being clicked directly otherwise.
  • Seems like a window can only be brought to the top by an application that is currently on top? "Full Interaction" may not work properly. Should be fixed in v1.0.5.1.
  • Window settings can sometimes be lost. Still looking into the cause.
  • Sometimes when selecting certain settings nothing changes, you must select a different setting and then select the first setting again to fix this, sometimes more than once (rarely). Still looking into the cause.
  • Other issues in the issue tracker.