Fix bug when visualiser opengl context restarts

pre-release-3
James H Ball 2025-01-08 10:43:57 +00:00
rodzic 670ec43b99
commit 85e3f7b4b7
2 zmienionych plików z 4 dodań i 4 usunięć

Wyświetl plik

@ -50,9 +50,6 @@ void SosciPluginEditor::resized() {
visualiserSettings.setSize(settingsArea.getWidth(), 550);
visualiserSettingsWrapper.setBounds(settingsArea);
if (area.getWidth() < 10 || area.getHeight() < 10) {
return;
}
visualiser.setBounds(area);
}
}

Wyświetl plik

@ -607,6 +607,9 @@ void VisualiserComponent::openGLContextClosing() {
wideBlurShader.reset();
lineShader.reset();
outputShader.reset();
// this triggers setupArrays to be called again when the scope next renders
scratchVertices.clear();
}
void VisualiserComponent::handleAsyncUpdate() {
@ -1205,7 +1208,7 @@ void VisualiserComponent::renderScope(const std::vector<float>& xPoints, const s
screenTexture = createScreenTexture();
}
if (sampleRate != oldSampleRate) {
if (sampleRate != oldSampleRate || scratchVertices.empty()) {
oldSampleRate = sampleRate;
setupArrays(RESAMPLE_RATIO * sampleRate / FRAME_RATE);
}