Commit Graph

34 Commits

Author SHA1 Message Date
4b3226ac3a Added projectM-Eval as submodule, flipped rendering stuff around a bit more. 2023-09-11 10:19:48 +02:00
882321000b More rendering refactoring.
Continued refactoring work to make Milkdrop preset rendering more self-contained.
2023-09-11 10:19:45 +02: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
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
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
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
18b032a8ef API: Add missing setter for FPS value.
Also make sure to propagate the changed value to the preset code via the PipelineContext class. Keeping it in the settings struct for now. Storing a dynamic value in settings makes no sense, so it will be removed later.
2022-11-20 16:53:25 +01:00
003e45e9d9 API: Add missing getter for preset duration value. 2022-11-20 16:53:25 +01:00
6991953a4e Add get and set for beat sensitivy value to API 2022-10-29 23:00:45 +02:00
dbbbc3e591 Added API function for dumping the next frame. 2022-10-23 18:08:53 +02:00
cb0bbfa860 Removed all text-related code from the core lib.
This removes:
- "Toast" messages
- The help text
- Statistics
- Preset name and (unimplemented) song title display
- Preset selection list and search menu

Some of the above functionality might later be added as an optional library, in a separate repository and with proper UTF-8 support.
2022-09-20 22:46:03 +02:00
60dd295ee6 Expose texture path in the public API, removed unused font settings. 2022-09-09 00:45:58 +02:00
73c6d2793c Fixed member casing in ProjectM class. 2022-06-06 18:50:50 +02:00
5e5b35fdb8 Replaced behaviour FLAG_* constants with an enum. 2022-06-06 18:50:50 +02:00
3cc3667347 Moved class members to bottom, replaced some types and added default initializers.
Mostly replaced raw pointers with std::unique_ptr for easier memory management. Probably not needed for many of those classes, but was the least intrusive change for now.
2022-06-06 18:50:50 +02:00
f2b04480c0 Renamed projectM class to ProjectM 2022-06-06 18:50:50 +02:00
4c597da56a Change API for adding to Pcm 2022-04-06 14:33:19 +02:00
5d80bf9f57 Fix casing (PCM.hpp) 2022-04-06 14:33:19 +02:00
27798317ee Give uncased variables a casing
Picked camelCase.
These variables will now be picked up on if we standardize our casing.
2022-03-28 12:22:54 +02:00
0a4cf9fa49 Added getters and setters for all settings values and renamed some members.
Some members and functions were named in different ways, now the naming scheme is a bit more unified. Also changed some types to size_t where negative values don't make sense.
2021-08-23 18:37:57 +02:00
d8f9f6ebe1 Removed an export macro that slipped into the implementation. 2021-08-23 18:37:57 +02:00
8a1b57aa80 Added context data to event callbacks, re-enabling SDL window title change on preset switch. 2021-08-23 18:37:57 +02:00
4091cbd76b Fixed a few definitions and types in the C API.
Also added missing projectm_is_preset_locked() and projectm_pcm_get_max_samples() functions.
2021-08-23 18:37:57 +02:00
14f4bcac65 Added a C-style interface header and wrapper for projectM.
This will make it easier to integrate projectM into C applications and also removes potential issues of STL/C++ version differences between host and library.

Changed visibility of all symbols except the C API to "hidden". This effectively prevents the C++ API from being used in the shared library.

Added an option "ENABLE_CXX_INTERFACE" to re-enable the old export behaviour, displaying a prominent author warning after configuring the build if enabled.
2021-08-23 18:37:57 +02:00