diff --git a/src/effect/effecthandler.cpp b/src/effect/effecthandler.cpp index 3fb923a7f5..53e8ee5bf5 100644 --- a/src/effect/effecthandler.cpp +++ b/src/effect/effecthandler.cpp @@ -1571,14 +1571,18 @@ Output *EffectsHandler::findScreen(int screenId) const void EffectsHandler::renderScreen(Output *output) { - RenderTarget renderTarget(GLFramebuffer::currentFramebuffer()); + Q_ASSERT(effects->isOpenGLCompositing()); RenderLayer layer(output->renderLoop()); SceneDelegate delegate(m_scene, output); delegate.setLayer(&layer); m_scene->prePaint(&delegate); + + effects->makeOpenGLContextCurrent(); // TODO: doesn't belong here, but there's no better place atm either + RenderTarget renderTarget(GLFramebuffer::currentFramebuffer()); m_scene->paint(renderTarget, output->geometry()); + m_scene->postPaint(); }