Commit Graph

30 Commits

Author SHA1 Message Date
ccd606df60 Update copyright in API headers 2025-12-07 17:24:48 +01:00
fa532eddc6 Add API function for texture burn-in 2025-12-07 17:23:03 +01:00
15a083751d Set warp texel offset to 0 by default, as 0.5 introduces a drift.
Since this might be vendor-specific behavior, a new API function to configure the X/Y texel offsets has been added.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-12-02 08:50:46 +01:00
6a36b3f5c2 API docs: Clarify usage of projectm_set_window_size()
Calling the function with the same size again and again does not do anything at all - especially not "reset the renderer" as it was previously stated.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-03 16:22:04 +01:00
fa67d837a5 Add user sprite functions to C API. 2025-02-27 16:57:03 +01:00
3eaa733b8b Added the version since each API call is available to Doxygen comments. 2024-12-09 14:29:16 +01:00
7f48e6c3c3 Updated copyright dates and AUTHORS.txt 2024-12-09 13:33:43 +01:00
2914d85ec3 Add API functions to set and retrieve frame times
Setting a custom frame time will result in stable animation speeds if projectM does not render at real-time speeds, e.g. while encoding a video from an audio file as fast as possible.
2024-06-09 12:51:35 +02:00
bd2b1ba9f4 Add API function to enable rendering to custom FBO IDs 2024-06-08 17:22:23 +02:00
d6b6446ac9 Make sure easter egg value is >0.
Gaussian distribution requires the sigma value to be >0. If the value is too small, we just use the default 1.0 value.
2024-02-15 18:11:46 +01:00
ceca33a088 Don't reset presets after changing the mesh size.
The warp mesh is now always resized/recalculated dynamically when a frame is drawn, nothing needs to be reloaded anymore.
2023-10-14 13:52:35 +02:00
51ee60e045 Rename include directory "libprojectM" to "projectM-4" 2023-02-22 16:34:46 +01:00
0940ec9532 Replace "-4.0" by "-4" 2023-02-22 16:34:46 +01:00
0c04a08941 Replace '#include "libprojectM/[..]"' by '#include "projectM-4.0/[..]"'
$ git grep -l 'include "libprojectM/' | xargs sed 's,include "libprojectM/,include "projectM-4.0/,' -i

And then revert for src/libprojectM/*.hpp includes:

$ for i in $( cd src/libprojectM && ls -1 *.hpp ) ; do grep -Rl "#include \"projectM-4.0/${i}\"" | xargs -r sed "s,\"projectM-4.0/${i},\"libprojectM/${i}," -i ; done
2023-02-22 16:34:46 +01:00
46e720a7a7 Removed unused projectm_opengl_init_render_to_texture() API function. 2023-01-25 18:10:26 +01:00
e6b493a270 Removed unused projectm_set_texture_size() API function. 2023-01-25 18:09:02 +01:00
2b41fa256a Let developers provide an optional filename for dumping main texture contents. 2023-01-25 14:22:19 +01:00
45d05b71d0 Fix hard crash if OpenGL wasn't properly initialized on projectM instance creation.
Now projectm_create() will just return a NULL pointer instead of having the runtime library call SIGABRT.

In a later iteration, we may allow creation of the instance and just keep the renderer uninitialized. Users should then call a to-be-introduced renderer reinitialization function.
2023-01-24 20:21:41 +01:00
a88f62360a Add version header and API methods to get build/run time versions of libprojectM. 2023-01-24 20:03:44 +01:00
1f33c810b3 Split up API headers into smaller, categorized files.
Also updated copyright and prefixed the render-related function with "opengl".
2023-01-18 12:57:57 +01:00
c6be80a491 GitHub Actions: Update local package lists before installing dependencies. 2023-01-17 18:58:03 +01:00
48f291b51c Removed config file support and added temp fix for mesh size change.
Mesh size is currently so deeply burrowed in the whole preset structure that changing it on the fly is basically impossible. For now, we'll reload the idle preset and reset the whole preset factory class tree to make sure all classes are properly reinitialized. If apps want to change the mesh size after startup, they need to reload the last played preset after changing the mesh size. This will be fixed in the future after the parser/equation compiler rewrite.
2023-01-07 15:52:50 +01:00
bbfc4f7170 Added API method for (re)setting texture search paths.
Was only possible on startup before, changing the paths required recreating the whole projectM instance. Now, the method will only reset the texture manager, but not the shaders and presets.
2023-01-07 15:52:50 +01:00
e659d862b5 Remove built-in key handler and rename two API functions.
Renamed preset lock functions to be in line with all other getter/setter functions regarding their naming scheme.
2022-12-30 15:14:25 +01:00
94ee2a360b Added remaining API functions and preset change callback. 2022-11-21 19:56:30 +01:00
5fe7e8c3aa Removed rating type enum, reformatted comments for settings struct. 2022-11-21 19:56:30 +01:00
5b47b465f9 Removed more now unused callbacks from the core API. 2022-11-21 19:56:30 +01:00
2b1099a653 Implement external preset switching control and add stream loading support.
Lots of interconnected changes in this commit:
- Removed unnecessary name/author/filename members all over the place.
- Started using exceptions to deliver preset loading and rendering errors to the topmost ProjectM class.
- Added stream loading methods to factories and the base Preset class.
- Added new events for requesting preset switch and telling the user about loading errors.
- Consolidated preset switching logic in ProjectM class a bit.
2022-11-21 19:56:30 +01:00
b23b5ce25c Deleted all playlist-related code from libprojectM.
Note: SDL test UI won't compile after this commit. Will be fixed in a later commit, when the playlist library is done.
2022-11-21 19:56:28 +01:00
b6dfb6e195 Moved public API headers into an INTERFACE library 2022-11-21 19:54:56 +01:00