Closed
Conversation
When building for GLES platforms, SOIL2 uses eglGetProcAddress but the EGL library wasn't being linked, causing undefined symbol errors at runtime on systems like Raspberry Pi OS. Fixes #926
Adds projectm_set_preset_start_clean() and projectm_get_preset_start_clean() functions to control whether new presets start with a black canvas or inherit the previous preset's last frame. Default behavior remains unchanged (copy previous frame), but applications can now opt-in to clean starts by setting this flag to true. Fixes #298
Adds projectm_playlist_set_preset_load_event_callback() to allow applications to handle preset loading themselves. This enables loading presets from: - Archives (ZIP files) - Network sources (HTTP) - Custom storage solutions - Asynchronous loading patterns When the callback is set and returns true, the playlist library skips its default filesystem-based loading. If the callback returns false or isn't set, the default behavior is used. Fixes #946
Adds a callback that allows applications to provide textures from non-filesystem sources like archives, network, or procedurally generated content. The callback receives the texture name and can return either raw pixel data or an existing OpenGL texture ID. Fixes #870
Adds ENABLE_MACOS_FRAMEWORK cmake option to build projectM-4.framework and projectM-4-playlist.framework bundles instead of plain dylibs. Only available on macOS with shared library builds. The frameworks include all public headers in the Headers/ directory and use standard macOS framework versioning (Version A). Fixes #924
d6a0440 to
48a60d2
Compare
Move TextureLoadData and TextureLoadCallback from TextureManager.hpp to a separate TextureTypes.hpp header. This allows ProjectM.hpp to include only the necessary types without pulling in internal dependencies that aren't installed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements several features targeted for the 4.2 release:
Bug fixes:
New API features:
projectm_set_preset_start_cleanto start presets with a black canvas ([FEATURE] Add flag to C API to start newly loaded presets with a clean canvas if set #298)projectm_set_texture_load_event_callbackfor custom texture sources ([FEATURE] Add callback to API to support loading textures from non-filesystem sources #870)projectm_playlist_set_preset_load_event_callbackto handle preset loading from non-filesystem sources ([FEATURE] Add callback to playlist library to handle preset loading in the application #946)Build improvements:
ENABLE_MACOS_FRAMEWORKoption to build as macOS Framework bundles ([FEATURE] Build ProjectM.framework for MacOS #924)The variable monitoring feature (#664) is not included as it requires deeper architectural changes to the expression evaluation system.