From 77ac0e403b2a7ce96609f90ebd0b63289f3384cd Mon Sep 17 00:00:00 2001 From: "lllucius@gmail.com" Date: Tue, 7 Oct 2014 23:23:40 +0000 Subject: [PATCH] Fix the bad rendering of text on OSX The problem was because I added double buffering to reduce flicker on Windows. But, OSX already does its own buffering and adding more causes text to be rendered incorrectly. This happened a long time ago on the track panel and when Bill gave the screenshot, my aging brain slowly remembered the cause. --- src/widgets/Meter.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/widgets/Meter.cpp b/src/widgets/Meter.cpp index 445709753..dc331906e 100644 --- a/src/widgets/Meter.cpp +++ b/src/widgets/Meter.cpp @@ -1125,11 +1125,19 @@ void Meter::RepaintBarsNow() { if (mLayoutValid) { - wxClientDC dc(this); - wxBufferedDC bufDC(&dc, *mBitmap); + wxDC *dc; + wxClientDC clientDC(this); +#if defined(__WXMAC__) + // OSX is already double buffered and using our own buffer + // will cause text to be rendered incorrectly. + dc = &clientDC; +#else + wxBufferedDC bufDC(&clientDC, *mBitmap); + dc = &bufDC +#endif for (int i = 0; i < mNumBars; i++) { - DrawMeterBar(bufDC, &mBar[i]); + DrawMeterBar(*dc, &mBar[i]); } } }