Completely redesigned and rewrote the HUD
The HUD used to be just a single line at the bottom of the screen aligned to the left. It looked pretty bad, but it did tell the user everything they needed to know. [picture 1]
First, I added model name sanitization, so models with control bytes like newline (\n), line feed or other symbols like emojis can’t break the whole program when trying to display them in the HUD.
Then, I completely redesigned the whole HUD to look better and be more robust, while still telling the user everything they need to know.
I went with this design [picture 2]:
- On the left, you only have the model name.
- In the middle, first you have the current shading mode (highlighted in cyan), then the lighting mode in plain white and then the background color in gray.
- All three middle indicators are separated with a dot and are different colors, so nobody can confuse them.
- On the right, there’s 3 boolean indicators: spin (if the model spin is on), backface cull (if it’s currently culling backfaces) and texture (if it’s showing the texture, isn’t there at all on models without a texture).
- They are gray if inactive and cyan if active.
- The last thing on the right is just the fps number.
There can also be optional indicators:
- Wireframe color (in the middle, after the shading mode) which only shows up in wireframe mode. [picture 3]
- First person speed multiplier (on the right, between the bools and the fps number) which shows up only in first person mode. [picture 4]
I also made each “island” cleanly disappear when the terminal’s width is too low instead of just slowly getting cut off letter by letter.
I think this design looks better, less cluttered and is pretty easy to understand at a glance.
I would very much appreciate a star on GitHub!
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.