diff --git a/ntoskrnl/inbv/inbv.c b/ntoskrnl/inbv/inbv.c index 5e96c978c2b..f5cd5652493 100644 --- a/ntoskrnl/inbv/inbv.c +++ b/ntoskrnl/inbv/inbv.c @@ -32,6 +32,27 @@ */ // #define REACTOS_SKUS +typedef struct _INBV_PROGRESS_STATE +{ + ULONG Floor; + ULONG Ceiling; + ULONG Bias; +} INBV_PROGRESS_STATE; + +typedef struct _BT_PROGRESS_INDICATOR +{ + ULONG Count; + ULONG Expected; + ULONG Percentage; +} BT_PROGRESS_INDICATOR, *PBT_PROGRESS_INDICATOR; + +typedef enum _ROT_BAR_TYPE +{ + RB_UNSPECIFIED, + RB_SQUARE_CELLS, + RB_PROGRESS_BAR +} ROT_BAR_TYPE; + /* * Screen resolution (for default VGA) */ @@ -155,8 +176,8 @@ typedef struct tagRGBQUAD static RGBQUAD MainPalette[16]; -#define PALETTE_FADE_STEPS 15 -#define PALETTE_FADE_TIME (20 * 1000) /* 20 ms */ +#define PALETTE_FADE_STEPS 12 +#define PALETTE_FADE_TIME (15 * 1000) /* 15 ms */ /** From bootvid/precomp.h **/ // @@ -1062,7 +1083,7 @@ VOID NTAPI DisplayBootBitmap(IN BOOLEAN TextMode) { - PVOID Header = NULL, Footer = NULL, Screen = NULL; + PVOID BootCopy = NULL, BootProgress = NULL, BootLogo = NULL, Header = NULL, Footer = NULL; #ifdef INBV_ROTBAR_IMPLEMENTED UCHAR Buffer[24 * 9]; @@ -1155,8 +1176,8 @@ DisplayBootBitmap(IN BOOLEAN TextMode) */ MmChangeKernelResourceSectionProtection(MM_READWRITE); - /* Load the standard boot screen */ - Screen = InbvGetResourceAddress(IDB_BOOT_SCREEN); + /* Load boot screen logo */ + BootLogo = InbvGetResourceAddress(IDB_LOGO_DEFAULT); #ifdef REACTOS_SKUS Text = NULL; @@ -1197,15 +1218,19 @@ DisplayBootBitmap(IN BOOLEAN TextMode) #endif /* Make sure we have a logo */ - if (Screen) + if (BootLogo) { /* Save the main image palette for implementing the fade-in effect */ - PBITMAPINFOHEADER BitmapInfoHeader = Screen; - LPRGBQUAD Palette = (LPRGBQUAD)((PUCHAR)Screen + BitmapInfoHeader->biSize); + PBITMAPINFOHEADER BitmapInfoHeader = BootLogo; + LPRGBQUAD Palette = (LPRGBQUAD)((PUCHAR)BootLogo + BitmapInfoHeader->biSize); RtlCopyMemory(MainPalette, Palette, sizeof(MainPalette)); - /* Blit the background */ - BitBltPalette(Screen, TRUE, 0, 0); + /* Draw the logo at the center of the screen */ + BitBltAligned(BootLogo, + TRUE, + AL_HORIZONTAL_CENTER, + AL_VERTICAL_CENTER, + 0, 0, 0, 34); #ifdef INBV_ROTBAR_IMPLEMENTED /* Choose progress bar */ @@ -1230,6 +1255,22 @@ DisplayBootBitmap(IN BOOLEAN TextMode) #endif } + /* Load and draw progress bar bitmap */ + BootProgress = InbvGetResourceAddress(IDB_PROGRESS_BAR); + BitBltAligned(BootProgress, + TRUE, + AL_HORIZONTAL_CENTER, + AL_VERTICAL_CENTER, + 0, 118, 0, 0); + + /* Load and draw copyright text bitmap */ + BootCopy = InbvGetResourceAddress(IDB_COPYRIGHT); + BitBltAligned(BootCopy, + TRUE, + AL_HORIZONTAL_LEFT, + AL_VERTICAL_BOTTOM, + 22, 0, 0, 20); + #ifdef REACTOS_SKUS /* Draw the SKU text if it exits */ if (Text) BitBltPalette(Text, TRUE, 180, 121); @@ -1309,14 +1350,6 @@ DisplayBootBitmap(IN BOOLEAN TextMode) RotBarSelection = TempRotBarSelection; InbvRotBarInit(); InbvReleaseLock(); - - // FIXME: This was added to allow animation start before the processor hangs - if (TempRotBarSelection != RB_UNSPECIFIED) - { - LARGE_INTEGER Delay; - Delay.QuadPart = -3000000; // 300 ms - KeDelayExecutionThread(KernelMode, FALSE, &Delay); - } } #endif } diff --git a/ntoskrnl/inbv/logo/1.bmp b/ntoskrnl/inbv/logo/1.bmp deleted file mode 100644 index dcc0ae71a5555a437d7252ff9d8d743bde413d29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20498 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 SForR3Fj_*-KS0}~#s~ln>@=eQ diff --git a/ntoskrnl/inbv/logo/4.bmp b/ntoskrnl/inbv/resources/barserver.bmp similarity index 100% rename from ntoskrnl/inbv/logo/4.bmp rename to ntoskrnl/inbv/resources/barserver.bmp diff --git a/ntoskrnl/inbv/logo/8.bmp b/ntoskrnl/inbv/resources/barwksta.bmp similarity index 100% rename from ntoskrnl/inbv/logo/8.bmp rename to ntoskrnl/inbv/resources/barwksta.bmp diff --git a/ntoskrnl/inbv/resources/copyright.bmp b/ntoskrnl/inbv/resources/copyright.bmp new file mode 100644 index 0000000000000000000000000000000000000000..080e462c6597ef92abb197f70c1c79acd49f4879 GIT binary patch literal 1712 zcmZ?r-N42G24xHk3>pj!3_BSZ7^D~&7#JB?7?>Cs7_8VB7?kxOSb%|n0fa#s6y&5C zloe$e^!4=^{H+xj(gF+_lH;Qo+DjrCrgxPxtXwjS;mGzy3|CKXWH@`~B*UZIXBb{Q zzQyqE>lX$FBYp-3dxrV{8Tx;o2U8!I*Z*J4@c;i|1`Y-Wxep8soc}*?{GapT0|N-M zF)&2y{GWG#fq{Ac|6>d?{|_*HVBlxy|G>|{@PXmy{{;;Bf9)CiKQNyE!@$qL@c&-| z1K19>51a`M4Byy3gDD34$;|T&7#Qcl?3l*Dz@LzB0J7l&0~-TF&>6w^0t^gxO^mq= zGZ;F-c6p3;OyFl=V_;%q`oO@zz{Ssy&j8{xaQqbbz|Y3O zAo77>B?ANJ0tNKK}oW418e!FnwSG`GyS?I&2IK93R-uB|vR@zyR_Q z!$*dX3=o@UyH!QsjFUx9&vjs1TE$SoX<^Zy@{VPF74QWVyx@81=l=r?96ullUFJVH zSQ+|1FfcIAoH-HX7AbxP{{M%;7!+Py44`!K{{!3mXCPUw4-EhR7%-@V{AB~rJ3j?7 z8TjTw%sj??9u#&A-`E%!1Y{Bzas(I{Kxs=P-++N3-+=9qBsgX9Brq`KCFCW55(5L< zXRwJ(pww*yN>d*g~u4U_8M8 z|NjRD&It@385lo+4CMIV2R82m2Ll7th4PFanLqHul076BurV-beE@3!WvhuYAJ`_! zeBeJQnE*f*+K`XE4r(rg%061`W9TcmxCEWp6P0Ky;*3Ubm6 z%8IfK`uchd{?-Z%X#s`|$?;JP?In>6)4NI;RxX*vaAf-;hN~wxGMqhglHt+qGYl^t z-(vXo^$UYSs6)BKOovqtcOCva+;v#xFw>!2A(VkZA(ScHuAHgTZYI+#yH!kU?d~$& zxBJiZ*X}OUExT1rEA3`7O}8s&DwPXmU{Jzh21J}VGh{*;7*w#B0TCz845?5CMgW+Z BX1)Lb literal 0 HcmV?d00001 diff --git a/ntoskrnl/inbv/resources/logo.bmp b/ntoskrnl/inbv/resources/logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..53ec10c20c43f603044b6d94fa54165d72cc7cf3 GIT binary patch literal 16518 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 aLBkkA# literal 0 HcmV?d00001 diff --git a/ntoskrnl/inbv/resources/progress.bmp b/ntoskrnl/inbv/resources/progress.bmp new file mode 100644 index 0000000000000000000000000000000000000000..35fd20667142ef9c113dadba22ab5bc375e84e73 GIT binary patch literal 358 zcmZ?rO=DyLgE9sN1`P%VhAsvM27U$x21W)J1||juh7Sx349a>CEWp6P0Ky;*3Ubm6 z%8IfK`uchd{?-Z%X#s`|$?;JP?In>6)4NI;RxX*vaAf-;hN~wxGMqhglHt+qGYl^t j-(vXo^$P<7hjPZOb5;KtINq#mGh%@88HO1j=08RN2G3<% literal 0 HcmV?d00001 diff --git a/ntoskrnl/inbv/logo/3.bmp b/ntoskrnl/inbv/resources/shutdown.bmp similarity index 100% rename from ntoskrnl/inbv/logo/3.bmp rename to ntoskrnl/inbv/resources/shutdown.bmp diff --git a/ntoskrnl/include/internal/inbv.h b/ntoskrnl/include/internal/inbv.h index 3fb6669a584..4f9903e2501 100644 --- a/ntoskrnl/include/internal/inbv.h +++ b/ntoskrnl/include/internal/inbv.h @@ -1,26 +1,5 @@ #pragma once -typedef struct _INBV_PROGRESS_STATE -{ - ULONG Floor; - ULONG Ceiling; - ULONG Bias; -} INBV_PROGRESS_STATE; - -typedef struct _BT_PROGRESS_INDICATOR -{ - ULONG Count; - ULONG Expected; - ULONG Percentage; -} BT_PROGRESS_INDICATOR, *PBT_PROGRESS_INDICATOR; - -typedef enum _ROT_BAR_TYPE -{ - RB_UNSPECIFIED, - RB_SQUARE_CELLS, - RB_PROGRESS_BAR -} ROT_BAR_TYPE; - INIT_FUNCTION VOID NTAPI diff --git a/ntoskrnl/include/resource.h b/ntoskrnl/include/resource.h index bb400bb3151..e2537b465f5 100644 --- a/ntoskrnl/include/resource.h +++ b/ntoskrnl/include/resource.h @@ -40,5 +40,7 @@ /* ReactOS additions */ #define IDB_ROTATING_LINE 19 +#define IDB_PROGRESS_BAR 20 +#define IDB_COPYRIGHT 21 -#define IDB_MAX_RESOURCE IDB_ROTATING_LINE +#define IDB_MAX_RESOURCE IDB_COPYRIGHT diff --git a/ntoskrnl/ntoskrnl.rc b/ntoskrnl/ntoskrnl.rc index 0a01fe32228..8f1888516ec 100644 --- a/ntoskrnl/ntoskrnl.rc +++ b/ntoskrnl/ntoskrnl.rc @@ -28,17 +28,18 @@ #include -IDB_BOOT_SCREEN BITMAP "inbv/logo/1.bmp" -IDB_HIBERNATE_BAR BITMAP "inbv/logo/2.bmp" -IDB_SHUTDOWN_MSG BITMAP "inbv/logo/3.bmp" -IDB_BAR_DEFAULT BITMAP "inbv/logo/4.bmp" -IDB_LOGO_DEFAULT BITMAP "inbv/logo/5.bmp" -IDB_WKSTA_HEADER BITMAP "inbv/logo/6.bmp" -IDB_WKSTA_FOOTER BITMAP "inbv/logo/7.bmp" -IDB_BAR_WKSTA BITMAP "inbv/logo/8.bmp" -IDB_SERVER_LOGO BITMAP "inbv/logo/5.bmp" -IDB_SERVER_HEADER BITMAP "inbv/logo/14.bmp" -IDB_SERVER_FOOTER BITMAP "inbv/logo/15.bmp" +IDB_HIBERNATE_BAR BITMAP "inbv/resources/hibernate.bmp" +IDB_SHUTDOWN_MSG BITMAP "inbv/resources/shutdown.bmp" +IDB_BAR_DEFAULT BITMAP "inbv/resources/barserver.bmp" +IDB_LOGO_DEFAULT BITMAP "inbv/resources/logo.bmp" +IDB_WKSTA_HEADER BITMAP "inbv/resources/hwksta.bmp" +IDB_WKSTA_FOOTER BITMAP "inbv/resources/fwksta.bmp" +IDB_BAR_WKSTA BITMAP "inbv/resources/barwksta.bmp" +IDB_SERVER_LOGO BITMAP "inbv/resources/logo.bmp" +IDB_SERVER_HEADER BITMAP "inbv/resources/hserver.bmp" +IDB_SERVER_FOOTER BITMAP "inbv/resources/fserver.bmp" /* ReactOS additions */ -IDB_ROTATING_LINE BITMAP "inbv/logo/line.bmp" +IDB_ROTATING_LINE BITMAP "inbv/resources/line.bmp" +IDB_PROGRESS_BAR BITMAP "inbv/resources/progress.bmp" +IDB_COPYRIGHT BITMAP "inbv/resources/copyright.bmp"