From d3734dc4c31d79dc759291d7b6382c4fa5b3d921 Mon Sep 17 00:00:00 2001 From: yoyofr Date: Wed, 12 Nov 2025 09:54:47 +0100 Subject: [PATCH] Fix some default waveform rendering bugs All waves were rendered upside-down, breaking presets requiring the wave to be at the top or bottom due to warp movement. Using the flipped transformation matrix for drawing will take care of this globally. Also fixed two small mistakes regarding operators. Signed-off-by: Kai Blaschke --- src/libprojectM/MilkdropPreset/Waveform.cpp | 2 +- src/libprojectM/MilkdropPreset/Waveforms/Line.cpp | 2 +- src/libprojectM/MilkdropPreset/Waveforms/WaveformMath.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libprojectM/MilkdropPreset/Waveform.cpp b/src/libprojectM/MilkdropPreset/Waveform.cpp index 701ed24dc..0277d10c4 100644 --- a/src/libprojectM/MilkdropPreset/Waveform.cpp +++ b/src/libprojectM/MilkdropPreset/Waveform.cpp @@ -41,7 +41,7 @@ void Waveform::Draw(const PerFrameContext& presetPerFrameContext) auto shader = m_presetState.untexturedShader.lock(); shader->Bind(); - shader->SetUniformMat4x4("vertex_transformation", PresetState::orthogonalProjection); + shader->SetUniformMat4x4("vertex_transformation", PresetState::orthogonalProjectionFlipped); shader->SetUniformFloat("vertex_point_size", 1.0f); // Additive wave drawing (vice overwrite) diff --git a/src/libprojectM/MilkdropPreset/Waveforms/Line.cpp b/src/libprojectM/MilkdropPreset/Waveforms/Line.cpp index 01271180a..a180baaeb 100644 --- a/src/libprojectM/MilkdropPreset/Waveforms/Line.cpp +++ b/src/libprojectM/MilkdropPreset/Waveforms/Line.cpp @@ -17,7 +17,7 @@ void Line::GenerateVertices(const PresetState& presetState, const PerFrameContex m_wave1Vertices.resize(m_samples); - ClipWaveformEdges(1.57f + m_mysteryWaveParam); + ClipWaveformEdges(1.57f * m_mysteryWaveParam); for (int i = 0; i < m_samples; i++) { diff --git a/src/libprojectM/MilkdropPreset/Waveforms/WaveformMath.cpp b/src/libprojectM/MilkdropPreset/Waveforms/WaveformMath.cpp index f33e3d1ea..f3e50f211 100644 --- a/src/libprojectM/MilkdropPreset/Waveforms/WaveformMath.cpp +++ b/src/libprojectM/MilkdropPreset/Waveforms/WaveformMath.cpp @@ -71,7 +71,7 @@ auto WaveformMath::GetVertices(const PresetState& presetState, m_mysteryWaveParam = static_cast(*presetPerFrameContext.wave_mystery); - if (UsesNormalizedMysteryParam() && (m_mysteryWaveParam < 1.0f || m_mysteryWaveParam > 1.0f)) + if (UsesNormalizedMysteryParam() && (m_mysteryWaveParam < -1.0f || m_mysteryWaveParam > 1.0f)) { m_mysteryWaveParam = m_mysteryWaveParam * 0.5f + 0.5f; m_mysteryWaveParam -= std::floor(m_mysteryWaveParam);