projectM-visualizer / frontend-sdl-cpp

Standalone application based on libSDL that turns your desktop audio into awesome visuals. Available on most platforms supported by both libprojectM and libSDL.
GNU General Public License v3.0
66 stars 35 forks source link

Add a new UI based on Dear ImGui, allow more window settings #76

Closed kblaschke closed 7 months ago

kblaschke commented 8 months ago

Added a whole new UI making use of the awesome Dear ImGui framework. This UI is rendered on top of the projectM output, and thus makes it completely OS-independent, so we don't have to either write OS-specific UIs or pull in huge framework dependencies like Qt or GTK, which would also add a lot more complexity into the application. The UI is also used to display "toast" messages, e.g. when changing the audio input device, to give the user some feedback. ImGui also supports Unicode, and thus works fine with non-latin character sets as well.

In the Help menu, there are links to the projectM Wiki, the source code and our OpenCollective sponsoring page as well. The links will open in the system default browser on Windows, Linux and macOS using the respective platform-specific APIs.

In addition to the new UI, there were a few improvements in configuration handling and some additional settings regarding rendering and window features, e.g. the user can now fully control where and how the window appears on startup, including borderless mode and using adaptive vertical sync of the hardware supports it.

The preset playlist editor and a playlist search feature are still missing, and will follow a bit later. The UI is polished enough though to be ready for general use and testing, so I'll merge the current state to make it more visible to other users/devs.

kblaschke commented 8 months ago

Fixed all build failures I could, but the Windows one is something on GitHub's side, there's an issue with the MSVC build tools they need to fix first. See this thread.

kblaschke commented 7 months ago

Found a workaround for the Windows Actions runner issue, added binary caching to the workflow vcpkg config to speed up future builds and also fixed other build issues as well. In retrospect, I should've done this before opening the PR, but well... now it's done.

kblaschke commented 7 months ago

Windows build fails again, this time because sourceware.org is apparently down. Builds & runs on Windows though, so I'll merge it.