Commit Graph

2540 Commits

Author SHA1 Message Date
95f3cb973b Move BlurTexture to MilkdropPreset. 2023-09-11 10:19:46 +02:00
7c4e0c8d9f Delete MilkdropPresetFactory dir, left over from a previous rebase. 2023-09-11 10:19:46 +02:00
e7094aa190 Remove "Pipeline" classes and temp fix all compilation issues. 2023-09-11 10:19:46 +02:00
922980f1f7 Per-pixel mesh implementation. 2023-09-11 10:19:45 +02:00
74ca378f55 More rendering refactoring.
Continued refactoring work to make Milkdrop preset rendering more self-contained.
2023-09-11 10:19:45 +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
3a0dcffcee Shader refactoring.
Move Milkdrop-specific shader code into MilkdropPreset, only keep generic and potentially reusable stuff in Renderer.

Also adding some abstraction to reduce the number of direct OpenGL calls to make it easier to add other rendering APIs in the future.
2023-09-11 10:19:45 +02:00
b9ef6a3974 Remove old expression parser and add the new projectm-eval lib.
Requires a general rewrite of the Milkdrop preset code. Previous implementation was tightly integrated into the code parser, so reusing this code wasn't possible. Additional refactoring was done, finished converting custom wave/shape implementations to use the new expression parser code.
2023-09-11 10:19:45 +02:00
dfe08a14bb Fix some errors in FileParser 2023-09-11 10:19:45 +02:00
1c436c3277 Format old parser code and fix a linker error. 2023-09-11 10:19:45 +02:00
caee555eed Added missing <functional> include GCC automatically includes for some reason. 2023-09-11 10:19:45 +02:00
41a6342b9e Build and run unit tests from now on. 2023-09-11 10:19:45 +02:00
7b2b60d61f Added a new preset file parser class.
Other changes:
- Renamed Parser to OldParser to make it clear this is going away.
- Removed all the useless "unit tests" which did not actually test anything.
- Added a new GTest-based test executable that can be run with CMake's CTest.
- Added unit tests for the new fileParser class, including test files.
2023-09-11 10:19:40 +02:00
f9d55a3470 GenerateExportHeader.cmake: adjust coding style
Make the coding style inline with upstream CMake, so it is possible to
diff ours vs. upstream. No functional changes, only indenting changes.
2023-07-19 10:59:04 +02:00
91bc04d780 Refactor Windows defines with generator expression 2023-06-11 18:04:13 +02:00
8b67eac528 Scope OpenGL deprecation define to macOS only 2023-06-11 18:04:13 +02:00
69b4c6a8ee Remove obsolete defines from the buildsystem
None of these defines are used anywhere in the code, so they should be
safe to delete.
2023-06-11 18:04:13 +02:00
422af46973 Updated several parts of the ReadMe and added a VLC screenshot.
Users reported broken/empty links for several frontends, added the proper pre-release links until the situation improves. Also replaced the no longer available "SilentRadiance" player with VLC.
v4.0.0
2023-03-23 10:48:12 +01:00
97880cb932 Fix install components for main projectM library.
Allows users to install only runtime libraries OR development files, e.g. to create separate "libprojectM" and "libprojectM-dev" packages on Linux.
2023-03-23 10:48:12 +01:00
c00d469081 Fix crash if playlist sort item count is out of bounds.
API docs say it's safe to pass out-of-bounds values, so it should behave in that way.
2023-03-23 10:48:07 +01:00
b9f1c16f58 Move third-party libraries to "vendor" dir. 2023-03-03 14:30:24 +01:00
94fee67baf Fix unused variable warning in release mode
The assert() is removed in release mode causing unused variable
warning noise.
2023-02-27 23:57:06 +01:00
2d370d3235 CMake: Fix pkg-config entry "Requires:" for projectM-4-playlist-debug.pc 2023-02-22 16:34:46 +01:00
51ee60e045 Rename include directory "libprojectM" to "projectM-4" 2023-02-22 16:34:46 +01:00
221b3cb4b7 Rename .cmake.in files from "libprojectM" to "projectM4" 2023-02-22 16:34:46 +01:00
3f66e184ae CMake: Replace "libprojectM(Playlist)Targets" by "projectM4(Playlist)Targets"
$ git grep -l Targets.cmake | xargs sed 's,libprojectM\(Playlist\)\?Targets\.cmake,projectM4\1Targets.cmake,' -i
2023-02-22 16:34:46 +01:00
37eb503748 CMake: Replace "libprojectM(Playlist)Config" by "projectM4(Playlist)Config"
$ git grep -l configure_package_config_file | xargs sed 's,libprojectM\(Playlist\)\?Config,projectM4\1Config,' -i
2023-02-22 16:34:46 +01:00
35c5246936 CMake: Replace "libprojectM" by "projectM4" in .cmake.in files
$ sed 's,libprojectM,projectM4,' ./src/*/libprojectM*Config.cmake.in -i
2023-02-22 16:34:46 +01:00
ee65fa55fd CMake: Replace "cmake/libprojectM" by "cmake/libprojectM4"
$ git grep -l cmake/libprojectM | xargs sed 's,cmake/libprojectM,cmake/projectM4,' -i
2023-02-22 16:34:46 +01:00
0940ec9532 Replace "-4.0" by "-4" 2023-02-22 16:34:46 +01:00
02c11bc1d7 CMake: Replace "api/libprojectM" by "api/projectM-4.0"
git grep -l 'api/libprojectM' | xargs sed 's,api/libprojectM,api/projectM-4.0,' -i
2023-02-22 16:34:46 +01:00
ede45f2e8c CMake: Replace "api/libprojectM/" by "api/projectM-4.0/" 2023-02-22 16:34:46 +01:00
b46f9002b7 CMake: Replace "include/libprojectM" by "include/projectM-4.0"
$ git grep -l 'include/libprojectM' | xargs sed 's,include/libprojectM,include/projectM-4.0,' -i
2023-02-22 16:34:46 +01:00
139bd350fb Replace "#include <libprojectM/" by "#include <projectM-4.0/"
$ git grep -l 'include <libprojectM/' | xargs sed 's,include <libprojectM/,include <projectM-4.0/,' -i
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
4502f03fd1 CMake: Replace "${PROJECTM_INCLUDE_DIR}/libprojectM" by "${PROJECTM_INCLUDE_DIR}/projectM-4.0" 2023-02-22 16:34:46 +01:00
c9b946be86 CMake: Set OUTPUT NAME to affect .so filenames
Old:
- libprojectM.so
- libprojectM_playlist.so

New:
- libprojectM-4.0.so
- libprojectM-4.0-playlist.so
2023-02-22 16:34:46 +01:00
0ef8e83cd9 CMake: Add "-4.0" and drop "lib" from pkg-config names 2023-02-22 16:34:46 +01:00
a6b4771ad5 Bump libprojectM version to 4.0.0 v4.0.0-rc1 2023-01-25 19:45:37 +01:00
1d55ade17b Update CMake build instructions to match current state of development. 2023-01-25 19:45:08 +01:00
46378e5e43 Clean up some unused CMake options and reorder options. 2023-01-25 19:44:24 +01:00
433ca9f9b5 Bump minimum CMake version to 3.20. 2023-01-25 18:44:15 +01:00
aaeea0b083 Renamed m_textureSizeX/Y to m_mainTextureSizeX/Y in class Renderer. 2023-01-25 18:11:49 +01:00
15cd0612e0 Removed unused textureRenderToTexture member in Renderer. 2023-01-25 18:11:22 +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
13437a5d91 Preset parser: Removed a few commented debug lines and one that wasn't wrapped in the PARSE_DEBUG define. 2023-01-25 15:42:47 +01:00
a4bcee241a Preset parser: Throw exception instead of calling SIGABRT if expression can't be parsed. 2023-01-25 15:42:47 +01:00
bd6d9805fc Preset parser: Return 0.0 constant on empty rvalue if line is terminated properly.
Crashed on presets with expression lines like "val = ;".
2023-01-25 15:42:47 +01:00
8e594bc8e9 Fix index-out-of-bounds crash when getting shader param substring. 2023-01-25 15:42:46 +01:00