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