commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1966] 2009-02-01 Vesa J?\195?\164?\195?\164skel?\195?\164inen <address@


From: Vesa Jääskeläinen
Subject: [1966] 2009-02-01 Vesa J?\195?\164?\195?\164skel?\195?\164inen <address@hidden .fi>
Date: Sun, 01 Feb 2009 09:33:30 +0000

Revision: 1966
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1966
Author:   chaac
Date:     2009-02-01 09:33:29 +0000 (Sun, 01 Feb 2009)

Log Message:
-----------
2009-02-01  Vesa J?\195?\164?\195?\164skel?\195?\164inen  <address@hidden>

        Base on patch on bug #24154 created by Tomas Tintera
        <address@hidden>.

        * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.

Ticket Links:
:-----------
    http://savannah.gnu.org/bugs/?24154

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/video/i386/pc/vbe.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-02-01 09:03:15 UTC (rev 1965)
+++ trunk/grub2/ChangeLog       2009-02-01 09:33:29 UTC (rev 1966)
@@ -1,5 +1,12 @@
 2009-02-01  Vesa Jääskeläinen  <address@hidden>
 
+       Base on patch on bug #24154 created by Tomas Tintera
+       <address@hidden>.
+
+       * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
+
+2009-02-01  Vesa Jääskeläinen  <address@hidden>
+
        Based on patch on bug #25318 created by Bernhard Rosenkraenzer 
        <address@hidden>.
 

Modified: trunk/grub2/video/i386/pc/vbe.c
===================================================================
--- trunk/grub2/video/i386/pc/vbe.c     2009-02-01 09:03:15 UTC (rev 1965)
+++ trunk/grub2/video/i386/pc/vbe.c     2009-02-01 09:33:29 UTC (rev 1966)
@@ -709,7 +709,7 @@
 
       return minindex;
     }
-  else if ((render_target->mode_info.mode_type 
+  else if ((render_target->mode_info.mode_type
             & GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP) != 0)
     {
        if (red == render_target->mode_info.fg_red
@@ -749,7 +749,7 @@
     /* No alpha available in index color modes, just use
        same value as in only RGB modes.  */
     return grub_video_vbe_map_rgb (red, green, blue);
-  else if ((render_target->mode_info.mode_type 
+  else if ((render_target->mode_info.mode_type
             & GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP) != 0)
     {
       if (red == render_target->mode_info.fg_red
@@ -1399,13 +1399,25 @@
       target.mode_info = &render_target->mode_info;
       target.data = render_target->data;
 
-      for (j = 0; j < height; j++)
-        {
-          dst = grub_video_vbe_get_video_ptr (&target, dst_x, dst_y + j);
-          src = grub_video_vbe_get_video_ptr (&target, src_x, src_y + j);
-          grub_memmove (dst, src,
-                        width * target.mode_info->bytes_per_pixel);
-        }
+      /* Check vertical direction of the move.  */
+      if (dy <= 0)
+       /* 3a. Move data upwards.  */
+       for (j = 0; j < height; j++)
+         {
+           dst = grub_video_vbe_get_video_ptr (&target, dst_x, dst_y + j);
+           src = grub_video_vbe_get_video_ptr (&target, src_x, src_y + j);
+           grub_memmove (dst, src,
+                         width * target.mode_info->bytes_per_pixel);
+         }
+      else
+       /* 3b. Move data downwards.  */
+       for (j = (height - 1); j >= 0; j--)
+         {
+           dst = grub_video_vbe_get_video_ptr (&target, dst_x, dst_y + j);
+           src = grub_video_vbe_get_video_ptr (&target, src_x, src_y + j);
+           grub_memmove (dst, src,
+                         width * target.mode_info->bytes_per_pixel);
+         }
     }
 
   /* 4. Fill empty space with specified color.  In this implementation






reply via email to

[Prev in Thread] Current Thread [Next in Thread]