~unity-team/unity/unity.lens-bar-glow

Viewing all changes in revision 1816.

Fix bug 868120 and bug 872625

We should use one framebuffer object per screen rather than one per monitor. Using one per monitor leads to all kinds of interesting rendering glitches because the plugins expect that paint is clipped to the entire backbuffer rather than paint being contained in one buffer.

This should also fix crashes on changing resolutions, as we don't have the race condition where a monitor paints and an fbo hasn't been created for it yet.

Also adds a testcase now, its in standalone-tests/TestScreenEffectFramebufferObject.cpp .

The testcase is a little quirky because we're trying to simulate what's going on when unity is actually running embedded in another opengl application, which means that we have to use nux's embedded mode rather than testing BackgroundEffectHelper directly. The testcase shows what happens in cases where parts of the scene are blurred and other parts aren't as well as what happens when some parts need updating and others don't (eg, the framebuffer should unbind). There's no automated test yet, but I imagine we could make one.. Fixes: https://bugs.launchpad.net/bugs/838128, https://bugs.launchpad.net/bugs/864037, https://bugs.launchpad.net/bugs/864784, https://bugs.launchpad.net/bugs/868120, https://bugs.launchpad.net/bugs/872625. Appoved by Jason Smith.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: