* Mac installer now contains both the app and Music plugin
* Major xcode projects cleanup
* Working universal binary build with xcode and installer (needs universal sdl2 to link against)
* Fix#460 - texture2D is renamed texture (#462)
* Fix: Parser can blow up if no [preset00] header
* fix no debug mode
* Remove assert that is blowing up because it looks like this is sort of handled.
* Only do rdft() on powers of 2 samples
* Only do rdft() on powers of 2 samples
* Revert changes to PCM.cpp sampling, needs more thoughtful fixing
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>
* Param refactor
collected all the code that reached inside Param (InitCond, Per*Eqn, Expr, Parser) to read/write and stuffed it all back into Param.cpp
made Param extend Expr to avoid any perf penalty (I actually think eval() is a tiny bit faster now)
* presets/tests
* ALWAYS_MATRIX is used with PER_POINT
* use SSE2 to impove initialize_PerPixelMeshes() performance
* TestRunner
very, very simple test framework, but it's better than no framework
(consider investigating adopting something)
* ProgramExpr
created matching allocate/release methods for PresetOutput, so there is no implicit dependency on behavior between projectM::switchPreset() and MilkdropPresetFactory::allocate()