djdron / foo_vis_projectM

foobar2000 projectM - The most advanced open-source music visualizer
GNU Lesser General Public License v2.1
34 stars 3 forks source link

projectM v4.0.0 #5

Open redactedscribe opened 10 months ago

redactedscribe commented 10 months ago

https://github.com/projectM-visualizer/projectm/releases

Target Audience: Developers

This release is mainly aimed at developers integrating projectM into their applications. The main focus of this major release was to provide a new, stable API based on pure C functions, which will make it easier to create bindings for other languages as well as using it as a shared library. We also fixed many crashes and improved the overall visual quality and compatibility of presets to some degree.

The API will remain stable and forward-compatible until the next major release. Any changes made will only include new functions, so the ABI will always stay forward-compatible. This means an application built and linked against a specific 4.x version will build and run with any libprojectM with a major version of 4 and the same or higher minor version. If an application uses libprojectM as a shared library, no relinking is required at all - simply swap the library file with the new one and it should work.

kblaschke commented 6 months ago

libprojectM 4.1.1 is out, with massive visual upgrades. Now is a good time to update!

Kappa971 commented 1 month ago

@djdron hello? Will projectM for Foobar2000 ever be updated or can we consider this project dead?

djdron commented 1 month ago

@djdron hello? Will projectM for Foobar2000 ever be updated or can we consider this project dead?

Hello @Kappa971 , it will be released after SDL2 frontend repaired & steam version released.

kblaschke commented 1 month ago

Hello @Kappa971 , it will be released after SDL2 frontend repaired & steam version released.

Actually, there's no need to wait for the SDL2 frontend to be done. It's a completely separate project now and has no effect on the Foobar2000 plug-in, except for using it as a reference. libprojectM has a stable API since 4.0.

The only reason to wait a little more might be the additonal render-to-texture functionality we'll be releasing in v4.2 of libprojectM if that's easier than directly rendering to a native surface. It's already in master, so you could easily start using it already if you don't want to wait for the release.

djdron commented 1 month ago

@kblaschke I need a good reference how to use new API)

kblaschke commented 1 month ago

There are plenty of resources, not perfect, but given how simple the API is, it should suffice:

Most API functions are getter/setter functions replacing the previous settings struct.

If there's still something unclear, e.g. regarding OpenGL, just DM me on Discord, I'll surely be able to help.