From adf8ba52511a0ad4360c0c3afdec6326c4550136 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Tue, 10 Feb 2015 23:49:34 -0500 Subject: [PATCH] OSX 1/2 refresh frame-limiting hack --- src/visual/MeterCanvas.cpp | 3 +++ src/visual/ModeSelectorCanvas.cpp | 5 ++++- src/visual/ScopeCanvas.cpp | 3 +++ src/visual/SpectrumCanvas.cpp | 3 +++ src/visual/TuningCanvas.cpp | 3 +++ src/visual/WaterfallCanvas.cpp | 4 ++++ 6 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/visual/MeterCanvas.cpp b/src/visual/MeterCanvas.cpp index 3014f8f..bb3c20b 100644 --- a/src/visual/MeterCanvas.cpp +++ b/src/visual/MeterCanvas.cpp @@ -60,6 +60,9 @@ float MeterCanvas::getInputValue() { void MeterCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); +#ifdef __APPLE__ // force half-rate? + glFinish(); +#endif const wxSize ClientSize = GetClientSize(); glContext->SetCurrent(*this); diff --git a/src/visual/ModeSelectorCanvas.cpp b/src/visual/ModeSelectorCanvas.cpp index f067d6d..52637ba 100644 --- a/src/visual/ModeSelectorCanvas.cpp +++ b/src/visual/ModeSelectorCanvas.cpp @@ -47,7 +47,10 @@ int ModeSelectorCanvas::getHoveredSelection() { void ModeSelectorCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); - const wxSize ClientSize = GetClientSize(); +#ifdef __APPLE__ // force half-rate? + glFinish(); +#endif + const wxSize ClientSize = GetClientSize(); glContext->SetCurrent(*this); initGLExtensions(); diff --git a/src/visual/ScopeCanvas.cpp b/src/visual/ScopeCanvas.cpp index dc2a972..cc8c000 100644 --- a/src/visual/ScopeCanvas.cpp +++ b/src/visual/ScopeCanvas.cpp @@ -45,6 +45,9 @@ void ScopeCanvas::setDeviceName(std::string device_name) { void ScopeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); +#ifdef __APPLE__ // force half-rate? + glFinish(); +#endif const wxSize ClientSize = GetClientSize(); if (!wxGetApp().getAudioVisualQueue()->empty()) { diff --git a/src/visual/SpectrumCanvas.cpp b/src/visual/SpectrumCanvas.cpp index f894f0f..e88733a 100644 --- a/src/visual/SpectrumCanvas.cpp +++ b/src/visual/SpectrumCanvas.cpp @@ -67,6 +67,9 @@ SpectrumCanvas::~SpectrumCanvas() { void SpectrumCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); +#ifdef __APPLE__ // force half-rate? + glFinish(); +#endif const wxSize ClientSize = GetClientSize(); glContext->SetCurrent(*this); diff --git a/src/visual/TuningCanvas.cpp b/src/visual/TuningCanvas.cpp index dab1aaf..8a2574f 100644 --- a/src/visual/TuningCanvas.cpp +++ b/src/visual/TuningCanvas.cpp @@ -36,6 +36,9 @@ TuningCanvas::~TuningCanvas() { void TuningCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); +#ifdef __APPLE__ // force half-rate? + glFinish(); +#endif const wxSize ClientSize = GetClientSize(); glContext->SetCurrent(*this); diff --git a/src/visual/WaterfallCanvas.cpp b/src/visual/WaterfallCanvas.cpp index 10e0fcc..8669667 100644 --- a/src/visual/WaterfallCanvas.cpp +++ b/src/visual/WaterfallCanvas.cpp @@ -98,6 +98,10 @@ void WaterfallCanvas::attachSpectrumCanvas(SpectrumCanvas *canvas_in) { void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); +#ifdef __APPLE__ // force half-rate? + glFinish(); +#endif + const wxSize ClientSize = GetClientSize();