[ros-diffs] [cgutman] 45618: [NTOSKRNL] - Put back the boot logo from the old bootvid - Rewrite the old broken progress bar code and enable the progress bar - The progress bar works now :) - NOTE: Someone should fix the copyright year on the boot logo

cgutman at svn.reactos.org cgutman at svn.reactos.org
Fri Feb 19 04:16:04 CET 2010


Author: cgutman
Date: Fri Feb 19 04:16:04 2010
New Revision: 45618

URL: http://svn.reactos.org/svn/reactos?rev=45618&view=rev
Log:
[NTOSKRNL]
 - Put back the boot logo from the old bootvid
 - Rewrite the old broken progress bar code and enable the progress bar
 - The progress bar works now :)
 - NOTE: Someone should fix the copyright year on the boot logo

Modified:
    trunk/reactos/ntoskrnl/inbv/inbv.c
    trunk/reactos/ntoskrnl/inbv/logo/5.bmp

Modified: trunk/reactos/ntoskrnl/inbv/inbv.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/inbv.c?rev=45618&r1=45617&r2=45618&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/inbv/inbv.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/inbv/inbv.c [iso-8859-1] Fri Feb 19 04:16:04 2010
@@ -407,38 +407,28 @@
 NTAPI
 InbvUpdateProgressBar(IN ULONG Progress)
 {
-    ULONG FillCount, Left = 0;
+    ULONG FillCount;
 
     /* Make sure the progress bar is enabled, that we own and are installed */
     if ((ShowProgressBar) &&
         (InbvBootDriverInstalled) &&
         (InbvDisplayState == INBV_DISPLAY_STATE_OWNED))
     {
-        /* Calculate the fill count */
-        FillCount = InbvProgressState.Bias * Progress + InbvProgressState.Floor;
-        FillCount *= 18;
-        FillCount /= 10000;
-
-        /* Start fill loop */
-        while (FillCount)
-        {
-            /* Acquire the lock */
-            InbvAcquireLock();
-
-            /* Fill the progress bar */
-            VidSolidColorFill(Left + ProgressBarLeft,
-                              ProgressBarTop,
-                              Left + ProgressBarLeft + 7,
-                              ProgressBarTop + 7,
-                              11);
-
-            /* Release the lock */
-            InbvReleaseLock();
-
-            /* Update the X position */
-            Left += 9;
-            FillCount--;
-        }
+        FillCount = InbvProgressState.Bias * Progress * 121 + InbvProgressState.Floor;
+        FillCount /= 1000000;
+
+        /* Acquire the lock */
+        InbvAcquireLock();
+
+        /* Fill the progress bar */
+        VidSolidColorFill(ProgressBarLeft,
+                          ProgressBarTop,
+                          ProgressBarLeft + FillCount,
+                          ProgressBarTop + 12,
+                          11);
+
+        /* Release the lock */
+        InbvReleaseLock();
     }
 }
 
@@ -613,7 +603,7 @@
         /* Is the boot driver installed? */
         if (!InbvBootDriverInstalled) return;
 
-        /* FIXME: TODO, display full-screen bitmap */
+        /* Display full-screen bitmap */
         Bitmap = InbvGetResourceAddress(5);
         if (Bitmap)
         {
@@ -626,6 +616,9 @@
             else
                 Top = (480 - BitmapInfoHeader->biHeight) / 2;
             InbvBitBlt(Bitmap, Left, Top);
+
+            /* Set progress bar coordinates and display it */
+            InbvSetProgressBarCoordinates(257, 352);
         }
     }
 

Modified: trunk/reactos/ntoskrnl/inbv/logo/5.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/5.bmp?rev=45618&r1=45617&r2=45618&view=diff
==============================================================================
Binary files - no diff available.




More information about the Ros-diffs mailing list