diff --git a/src/libprojectM/MilkdropPreset/CMakeLists.txt b/src/libprojectM/MilkdropPreset/CMakeLists.txt index b52bcca58..089700ea9 100644 --- a/src/libprojectM/MilkdropPreset/CMakeLists.txt +++ b/src/libprojectM/MilkdropPreset/CMakeLists.txt @@ -2,8 +2,8 @@ option(ENABLE_DEBUG_MILKDROP_PRESET "Enable STDERR debug output in Milkdrop preset code (Debug builds only)" OFF) add_library(MilkdropPreset OBJECT - BlurTexture.hpp BlurTexture.cpp + BlurTexture.hpp Border.cpp Border.hpp Constants.hpp @@ -13,8 +13,7 @@ add_library(MilkdropPreset OBJECT CustomWaveform.hpp DarkenCenter.cpp DarkenCenter.hpp - PresetFileParser.cpp - PresetFileParser.hpp + EvalLibMutex.cpp Filters.cpp Filters.hpp IdlePreset.cpp @@ -36,6 +35,8 @@ add_library(MilkdropPreset OBJECT PerPixelContext.hpp PerPixelMesh.cpp PerPixelMesh.hpp + PresetFileParser.cpp + PresetFileParser.hpp PresetFrameIO.cpp PresetFrameIO.hpp PresetState.cpp @@ -51,7 +52,6 @@ add_library(MilkdropPreset OBJECT WaveformPerFrameContext.hpp WaveformPerPointContext.cpp WaveformPerPointContext.hpp - EvalLibMutex.cpp ) target_include_directories(MilkdropPreset diff --git a/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp b/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp index 9b1a8fdcc..98832c609 100755 --- a/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp +++ b/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp @@ -65,7 +65,7 @@ void MilkdropPreset::InitializePreset(PresetFileParser& parsedFile) { auto wave = std::make_unique(m_state); wave->Initialize(parsedFile, i); - m_customWaveforms[0] = std::move(wave); + m_customWaveforms[i] = std::move(wave); } // Custom shapes: @@ -73,7 +73,7 @@ void MilkdropPreset::InitializePreset(PresetFileParser& parsedFile) { auto shape = std::make_unique(m_state); shape->Initialize(parsedFile, i); - m_customShapes[0] = std::move(shape); + m_customShapes[i] = std::move(shape); } CompileCodeAndRunInitExpressions(); @@ -82,6 +82,7 @@ void MilkdropPreset::InitializePreset(PresetFileParser& parsedFile) void MilkdropPreset::CompileCodeAndRunInitExpressions() { // Per-frame init and code + m_perFrameContext.RegisterBuiltinVariables(); m_perFrameContext.LoadStateVariables(m_state); m_perFrameContext.EvaluateInitCode(m_state); m_perFrameContext.CompilePerFrameCode(m_state.perFrameCode); diff --git a/src/libprojectM/MilkdropPreset/ShapePerFrameContext.cpp b/src/libprojectM/MilkdropPreset/ShapePerFrameContext.cpp index 8093f4647..002ee0e1c 100644 --- a/src/libprojectM/MilkdropPreset/ShapePerFrameContext.cpp +++ b/src/libprojectM/MilkdropPreset/ShapePerFrameContext.cpp @@ -43,7 +43,7 @@ void ShapePerFrameContext::RegisterBuiltinVariables() for (int t = 0; t < TVarCount; t++) { std::string tvar = "t" + std::to_string(t + 1); - q_vars[t] = projectm_eval_context_register_variable(perFrameCodeContext, tvar.c_str()); + t_vars[t] = projectm_eval_context_register_variable(perFrameCodeContext, tvar.c_str()); } REG_VAR(bass); @@ -150,6 +150,11 @@ void ShapePerFrameContext::EvaluateInitCode(const std::string& perFrameInitCode, void ShapePerFrameContext::CompilePerFrameCode(const std::string& perFrameCode, const CustomShape& shape) { + if (perFrameCode.empty()) + { + return; + } + perFrameCodeHandle = projectm_eval_code_compile(perFrameCodeContext, perFrameCode.c_str()); if (perFrameCodeHandle == nullptr) { diff --git a/src/libprojectM/MilkdropPreset/WaveformPerFrameContext.cpp b/src/libprojectM/MilkdropPreset/WaveformPerFrameContext.cpp index 6082ff5c7..b584967b3 100644 --- a/src/libprojectM/MilkdropPreset/WaveformPerFrameContext.cpp +++ b/src/libprojectM/MilkdropPreset/WaveformPerFrameContext.cpp @@ -43,7 +43,7 @@ void WaveformPerFrameContext::RegisterBuiltinVariables() for (int t = 0; t < TVarCount; t++) { std::string tvar = "t" + std::to_string(t + 1); - q_vars[t] = projectm_eval_context_register_variable(perFrameCodeContext, tvar.c_str()); + t_vars[t] = projectm_eval_context_register_variable(perFrameCodeContext, tvar.c_str()); } REG_VAR(bass);