From ae59fcd112ef6ae323c7b72b50a01c8d78085306 Mon Sep 17 00:00:00 2001
From: Jonas Kulla <Nyocurio@gmail.com>
Date: Mon, 21 May 2018 12:15:05 +0200
Subject: [PATCH] Graphics: Fix transition when new scene has gray tone effect

Rendering the scene may cause PingPong swaps of front / backbuffer,
so don't take references to those buffers until after rendering.

Fixes #199
---
 src/graphics.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/graphics.cpp b/src/graphics.cpp
index 6a12cb3..c53fe0e 100644
--- a/src/graphics.cpp
+++ b/src/graphics.cpp
@@ -708,6 +708,9 @@ void Graphics::transition(int duration,
 
 	setBrightness(255);
 
+	/* Capture new scene */
+	p->screen.composite();
+
 	/* The PP frontbuffer will hold the current scene after the
 	 * composition step. Since the backbuffer is unused during
 	 * the transition, we can reuse it as the target buffer for
@@ -715,9 +718,6 @@ void Graphics::transition(int duration,
 	TEXFBO &currentScene = p->screen.getPP().frontBuffer();
 	TEXFBO &transBuffer  = p->screen.getPP().backBuffer();
 
-	/* Capture new scene */
-	p->screen.composite();
-
 	/* If no transition bitmap is provided,
 	 * we can use a simplified shader */
 	TransShader &transShader = shState->shaders().trans;