From e1fcb2fdfb8b94f7baa212031cad25242514ec4e Mon Sep 17 00:00:00 2001
From: Sethpaien <sethpaien@gmail.com>
Date: Thu, 8 May 2014 18:05:30 +0200
Subject: [PATCH] Update FlipFramebuffer

Less calculations + fix
---
 src/video_core/renderer_opengl/renderer_opengl.cpp | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index b63a73d186..24f9a91fdf 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -58,15 +58,14 @@ void RendererOpenGL::SwapBuffers() {
  * @todo Early on hack... I'd like to find a more efficient way of doing this /bunnei
  */
 void RendererOpenGL::FlipFramebuffer(const u8* in, u8* out) {
-    for (int y = 0; y < VideoCore::kScreenTopHeight; y++) {
-        for (int x = 0; x < VideoCore::kScreenTopWidth; x++) {
-            int in_coord = (VideoCore::kScreenTopHeight * 3 * x) + (VideoCore::kScreenTopHeight * 3)
-                - (3 * y + 3);
-            int out_coord = (VideoCore::kScreenTopWidth * y * 3) + (x * 3);
-
-            out[out_coord + 0] = in[in_coord + 0];
+    int in_coord = 0;
+    for (int x = 0; x < VideoCore::kScreenTopWidth; x++) {
+        for (int y = VideoCore::kScreenTopHeight-1; y >= 0; y--) {
+            int out_coord = (x + y * VideoCore::kScreenTopWidth) * 3;
+            out[out_coord] = in[in_coord];
             out[out_coord + 1] = in[in_coord + 1];
             out[out_coord + 2] = in[in_coord + 2];
+            in_coord+=3;
         }
     }
 }