SimulaVR / Simula

Linux VR Desktop
MIT License
2.97k stars 90 forks source link

Add HUD to display Workspace, battery life, etc. #153

Open georgewsinger opened 3 years ago

georgewsinger commented 3 years ago

:heavy_check_mark: Rudimentary HUD demo. https://www.youtube.com/watch?v=9DYX6aqUKDo&ab_channel=GeorgeSinger

I pushed some code to dev which adds a rudimentary HUD to the pancake view. It only shows the current workspace in the top-left corner. https://github.com/SimulaVR/Simula/commit/9cb4da816b1ff6783fce8561e0a7c06818a8c6e3

Remaining HUD TODOs:

CaydenPierce commented 3 years ago

The first step outlined is to get this working in the VR view. I'll try to do that now.

I assume that the pancake view is one Godot ViewPort, and the 3D/VR view is another Godot ViewPort?

You commented this:

G.set_custom_viewport viewportNode -- To be used for affecting the VR viewport

Does this work for changing the viewport to VR view (as described here: https://docs.godotengine.org/en/stable/classes/class_canvaslayer.html)? Where do we get the VR ViewPort?

Also here:

type HUD = (GodotCanvasLayer, GodotLabel)

That label ends up being the workspace location. So as we add elements to the HUD/status-bar in a row, we will continue add to this tuple? For example we may add a GodotImage to display the WiFi state.

Just waiting on build and will try to get this going and answer above questions if no one knows.

CaydenPierce commented 3 years ago

"Add dummy HUD elements for battery life, Bluetooh connectivity, WiFi strength, etc (basically everything that shows up on an Android status bar) This will require importing images for these symbols"

Once we are able to display text and images in a row, adding more and more info should become trivial. Therefore will aim to get a WiFi indicator image alongside the workspace ID displaying in HUD status-bar as MVP.

georgewsinger commented 3 years ago

type HUD = (GodotCanvasLayer, GodotLabel)

That label ends up being the workspace location. So as we add elements to the HUD/status-bar in a row, we will continue add to this tuple? For example we may add a GodotImage to display the WiFi state.

We'll have to augment this datatype into something more sophisticated. As a rough approximation, something like:

data HUD = HUD GodotCanvasLayer (WorkspaceNumber, BatteryLife, WiFiStrength, ...)

Not sure about the VR viewport stuff yet.

georgewsinger commented 3 years ago

https://github.com/SimulaVR/Simula/commit/a81c59c1b4098d4156a9efd498d6a3a60b7ca3f1 switches us from GodotLabel to GodotRichTextLabel, which we can use to add images to the HUD: