Commit Graph

26 Commits

Author SHA1 Message Date
882321000b More rendering refactoring.
Continued refactoring work to make Milkdrop preset rendering more self-contained.
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
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
1429b57f87 Build fixes, expose fewer internals in headers by forward-declaring more types. 2022-12-05 11:46:43 +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
d97feb22f6 Entirely removed native presets.
The native presets did not build anymore due to refactorings, cause other build issues on Windows (e.g. require linking to psapi.lib) and would need a complete makeover anyway.
2022-09-18 13:32:58 +02:00
35d3112463 Use correct casing 2022-05-29 15:29:54 +02:00
3ff81ad574 Remove unnecessary dependents 2022-05-29 15:29:54 +02:00
1f2d081f99 Completely skip compiling native preset loading code if disabled. 2021-11-05 23:41:12 +01:00
e49720ecfa Preset subdirs (#385)
Scanning textures/presets dirs for textures and scanning preset dir for presets.
Scanning is now done recursively, so presets and textures can be organized into subdirectories instead of needing to be flattened into a single directory.

On POSIX systems makes use of [ftw](https://linux.die.net/man/3/ftw) which should be relatively efficient. Otherwise falls back to recursing with `dirent` (for windows).

Probably should have made an autoconf check for `ftw` instead of doing `#ifdef WIN32`. 

* Scan subdirectories in presets directory

* remove preset subdir config

* Recursively scan for textures too, add c++-17 compatibility

* Refactor directory scanning code so it's reused by texture loader and preset loader. Make cross-platform (maybe)

* filescanner in makefile

* extension filter for file loader

* make extensions match up'

* need string.h

* Add FileScanner.cpp to win build (maybe)

* scan all dirs

* #ifndef #ifdef is def fun

* bogus comment

* bleh

* bleh

* itunes plugin with c++17

* EyeTunes needs to know about the FileScanner

Co-authored-by: milkdropper.com <milkdropper.com@gmail.com>
Co-authored-by: milkdropper <59471060+milkdropper@users.noreply.github.com>
2020-07-28 22:01:56 +03:00
d4d74f6d05 Build warnings cleanup 2018-11-17 11:42:28 +01:00
8fc719f1d7 remove debugging 2015-10-31 18:56:39 -07:00
d857741e96 emscripten compiles and runs now. doesn't produce any visual output, not sure why not 2014-06-21 23:57:34 -07:00
61404d0777 better error message for file io issues 2012-11-16 23:09:34 -05:00
2d1b7c6d3d safe guard against expressions like x = 2*sin(bas)+5* 2012-11-13 23:26:35 -05:00
b87f1ad8a3 encapsulate factory/preset alloc in one method.
throw typed exception in allocate()
2012-11-11 23:11:21 -05:00
c28c4b9efe playlist file / directory error handling fixes, resize playlist refresh fix
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@1342 6778bc44-b910-0410-a7a0-be141de4315d
2010-07-29 01:46:44 +00:00
07a568dbb4 removed more debugging
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1205 6778bc44-b910-0410-a7a0-be141de4315d
2009-01-22 04:18:40 +00:00
91639a6ff5 carm: memory leak fix when multiple preset extensions exist for same factory pointer.
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1204 6778bc44-b910-0410-a7a0-be141de4315d
2009-01-22 04:15:24 +00:00
71ce48bdcb incrementally closer to buildable system
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1180 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-20 19:21:36 +00:00
ca7cf490d3 compiled preset -> native preset
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1171 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-19 19:18:37 +00:00
cb749dcafa preset loader now has url based preset accessor method.
one of many to come bug fixes in the projectm top level.



git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1165 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-18 08:02:23 +00:00
c60c0d9f35 removed some temp aborts from projectM top level
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1160 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-14 05:22:58 +00:00
d97cff8190 added extensionHandled() check to PresetFactoryManager, now used by PresetLoader
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1151 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-13 04:11:22 +00:00
fdffc84c57 multiple preset file extension support in preset factory abstract class
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1150 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-13 03:51:33 +00:00
6a410275bf Embedded a preset factory manager into preset loader.
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1149 6778bc44-b910-0410-a7a0-be141de4315d
2008-09-13 03:22:11 +00:00