Retina flickering MBP, workaround


#1

Hi,

We're currently having an issue with graphics flickering/low framerates on Macbook Pro (retina) and need some kind of workaround. The plug-in has no performance issues what so ever on the same machine in native resolution.

The UI has a lot of drawing going on and when a user moves a slider, a big portion of the screen has to be repainted. Since we're not officially supporting retina (yet) the best way for us would probably be to not support retina, but I can't find any way to do this. Is it possible at all?

Another way would be trying to change the lowlevel renderer to OpenGL and mess around with pixelscaling (or something, it's been a few years since I worked with OpenGL). I've been looking around but can't find any way to do this. 

Any kind of help would be much appreciated!


#2

We have currently the same issue and didn't found good ways to get rid of those.

Try seting some setOpaque(true) when possible to avoid some uneeded redraw.

Switching to an opengl renderer helped us though.

 


#3

Thanks. Does switching to an opengl renderer mean that you have to use re-implement the whole UI drawing parts or is it possible to just globally change renderer? If so, how do I do that? :)


#4

Just switching the default renderer

 

Create an OpenGLContext as a member variable of your main component then do

mOpenGLContext.attachTo(*getTopLevelComponent());

 

and voila !


#5

Aha! :D Thanks. Now things works much better.


#6

Just wanted to mention that this may not be a Retina bug exactly, as I and others have flickering issues in standard resolution as well on 10.10. It may just be that whatever you're doing is not causing enough stress to reproduce the glitch until you start pushing all of those pixels to fill that lovely retina display :)

See this thread: http://www.juce.com/forum/topic/repainting-glitches-mac-os-1010#comment-310588

Anyway, I am also using the OpenGL renderer as a workaround for this, and so far that works just fine here. 

-n