Major Release v4.0.0 #712
kblaschke
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is the final 4.0 release of libprojectM.
It's been about two years after the last 3.1 release, but the projectM core team and community worked hard to make projectM better for both end users and developers integrating the library into their own applications.
Since this release is mainly aimed at developers, we will only attach source packages to this release. If you want pre-built libraries, please download the latest artifacts from the automated GitHub Actions builds.
As always, if you find bugs or have feature suggestions or requests, please feel free to create an issue or post in the discussions board. We're also available for chat on our Discrod server, which is linked on the project page.
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.
What About Users?
If you are an end user looking for the standalone visualizer or the Apple Music plug-in, this release isn't very useful as it only contains the projectM development libraries and headers, but no frontend or executable you can run.
Since modernizing the projectM ecosystem is a big undertaking, we've decided to postpone the major visual and UI improvements to a later point, first releasing the core library so developers can adopt the new programming interface.
You can expect a new frontend application and great Milkdrop compatibility improvements on the upcoming minor 4.1 release, which we will make available together with the updated frontends. Until then, you can use these development releases, which contain most of the changes in this 4.0 release:
Changes Since 3.1.12
To better distiguish what's part of this release and what's not, we have compiled a changelog and a list with issues that will not be fixed or implemented in the initial 4.0 version:
User-Related Changes
Developer-Related Changes
projectm_create()
will now simply return NULL in this case.Issues Remaining Unresolved in the 4.0.0 Release
These issues will be fixed or implemented after the 4.0 release, as they don't affect the API backward compatibility:
megabuf
andloop
.This discussion was created from the release Major Release v4.0.0.
Beta Was this translation helpful? Give feedback.
All reactions