Blame SOURCES/0409-grub-core-video-fb-fbblit.c-grub_video_fbblit_blend_.patch

f96e0b
From c76c33ca623202ad8473fd590e934db4bfa38256 Mon Sep 17 00:00:00 2001
f96e0b
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
f96e0b
Date: Fri, 3 May 2013 14:07:30 +0200
f96e0b
Subject: [PATCH 409/482] 	* grub-core/video/fb/fbblit.c
f96e0b
 (grub_video_fbblit_blend_BGR888_RGBA8888): 	Fix order bug. 
f96e0b
 (grub_video_fbblit_blend_RGB888_RGBA8888): Likewise.
f96e0b
f96e0b
---
f96e0b
 ChangeLog                   |  6 ++++++
f96e0b
 grub-core/video/fb/fbblit.c | 19 +++++++++++++------
f96e0b
 2 files changed, 19 insertions(+), 6 deletions(-)
f96e0b
f96e0b
diff --git a/ChangeLog b/ChangeLog
f96e0b
index 9e8884a..c26b110 100644
f96e0b
--- a/ChangeLog
f96e0b
+++ b/ChangeLog
f96e0b
@@ -1,5 +1,11 @@
f96e0b
 2013-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
 
f96e0b
+	* grub-core/video/fb/fbblit.c (grub_video_fbblit_blend_BGR888_RGBA8888):
f96e0b
+	Fix order bug.
f96e0b
+	(grub_video_fbblit_blend_RGB888_RGBA8888): Likewise.
f96e0b
+
f96e0b
+2013-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
+
f96e0b
 	* include/grub/gui.h (grub_gfxmenu_timeout_unregister): Free cb
f96e0b
 	descriptor.
f96e0b
 
f96e0b
diff --git a/grub-core/video/fb/fbblit.c b/grub-core/video/fb/fbblit.c
f96e0b
index 13e2926..541a0ce 100644
f96e0b
--- a/grub-core/video/fb/fbblit.c
f96e0b
+++ b/grub-core/video/fb/fbblit.c
f96e0b
@@ -986,11 +986,18 @@ grub_video_fbblit_blend_BGR888_RGBA8888 (struct grub_video_fbblit_info *dst,
f96e0b
               /* General pixel color blending.  */
f96e0b
               color = *dstptr;
f96e0b
 
f96e0b
+#ifndef GRUB_CPU_WORDS_BIGENDIAN
f96e0b
               db = dstptr[0];
f96e0b
-              db = (db * (255 - a) + sb * a) / 255;
f96e0b
               dg = dstptr[1];
f96e0b
-              dg = (dg * (255 - a) + sg * a) / 255;
f96e0b
               dr = dstptr[2];
f96e0b
+#else
f96e0b
+              dr = dstptr[0];
f96e0b
+              dg = dstptr[1];
f96e0b
+              db = dstptr[2];
f96e0b
+#endif
f96e0b
+
f96e0b
+              db = (db * (255 - a) + sb * a) / 255;
f96e0b
+              dg = (dg * (255 - a) + sg * a) / 255;
f96e0b
               dr = (dr * (255 - a) + sr * a) / 255;
f96e0b
             }
f96e0b
 
f96e0b
@@ -1145,13 +1152,13 @@ grub_video_fbblit_blend_RGB888_RGBA8888 (struct grub_video_fbblit_info *dst,
f96e0b
             }
f96e0b
 
f96e0b
 #ifndef GRUB_CPU_WORDS_BIGENDIAN
f96e0b
-          db = dstptr[0];
f96e0b
-          dg = dstptr[1];
f96e0b
-          dr = dstptr[2];
f96e0b
-#else
f96e0b
           dr = dstptr[0];
f96e0b
           dg = dstptr[1];
f96e0b
           db = dstptr[2];
f96e0b
+#else
f96e0b
+          db = dstptr[0];
f96e0b
+          dg = dstptr[1];
f96e0b
+          dr = dstptr[2];
f96e0b
 #endif
f96e0b
 
f96e0b
           dr = (dr * (255 - a) + sr * a) / 255;
f96e0b
-- 
f96e0b
1.8.2.1
f96e0b