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 <kai.blaschke@kb-dev.net>
This commit is contained in:
yoyofr
2025-11-12 09:54:47 +01:00
committed by Kai Blaschke
parent 614ad90f19
commit d3734dc4c3
3 changed files with 3 additions and 3 deletions

View File

@ -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)

View File

@ -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++)
{

View File

@ -71,7 +71,7 @@ auto WaveformMath::GetVertices(const PresetState& presetState,
m_mysteryWaveParam = static_cast<float>(*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);