mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 06:22:58 +00:00
[NTOS:INBV] Code refactoring: Move all the boot animation-specific code out of inbv.c and into the new bootanim.c file.
- inbv.c now only contains the Inbv-specific API and nothing else. - It will make easier for people to write their own boot themes & animations, by just copying/adapting the bootanim.c file (and the resources). - Add SAL annotations. - All INBV progress bar functions (except for InbvIndicateProgress()) should not be INIT-only functions, since they can be (not yet in ROS) used at later times -- namely, for feedback during hibernation.
This commit is contained in:
parent
17bd71b570
commit
f7e8214b55
7 changed files with 362 additions and 1682 deletions
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
#include <reactos/buildno.h>
|
#include <reactos/buildno.h>
|
||||||
|
#include "inbv/logo.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,10 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS Kernel
|
||||||
|
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||||
|
* PURPOSE: Boot Theme & Animation header
|
||||||
|
* COPYRIGHT: Copyright 2020 Dmitry Borisov (di.sean@protonmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -32,3 +39,36 @@
|
||||||
#define VID_SKU_TEXT_TOP 121
|
#define VID_SKU_TEXT_TOP 121
|
||||||
|
|
||||||
#define VID_FOOTER_BG_TOP (SCREEN_HEIGHT - 59)
|
#define VID_FOOTER_BG_TOP (SCREEN_HEIGHT - 59)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Boot Splash-Screen Functions
|
||||||
|
//
|
||||||
|
|
||||||
|
CODE_SEG("INIT")
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
BootAnimInitialize(
|
||||||
|
_In_ PLOADER_PARAMETER_BLOCK LoaderBlock,
|
||||||
|
_In_ ULONG Count);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
BootAnimTickProgressBar(
|
||||||
|
_In_ ULONG SubPercentTimes100);
|
||||||
|
|
||||||
|
CODE_SEG("INIT")
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
InbvRotBarInit(VOID);
|
||||||
|
|
||||||
|
CODE_SEG("INIT")
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
DisplayBootBitmap(
|
||||||
|
_In_ BOOLEAN TextMode);
|
||||||
|
|
||||||
|
CODE_SEG("INIT")
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
FinalizeBootLogo(VOID);
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS Kernel
|
||||||
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
|
* PURPOSE: Boot Video Driver support header
|
||||||
|
* COPYRIGHT: Copyright 2007 Alex Ionescu (alex.ionescu@reactos.org)
|
||||||
|
* Copyright 2019-2022 Hermès Bélusca-Maïto
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// Native definitions from BOOTVID (Boot Video Driver).
|
/* Native definitions from BOOTVID (Boot Video Driver) */
|
||||||
#include "bootvid/bootvid.h"
|
#include "bootvid/bootvid.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -10,35 +18,78 @@ CODE_SEG("INIT")
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
InbvDriverInitialize(
|
InbvDriverInitialize(
|
||||||
IN PLOADER_PARAMETER_BLOCK LoaderBlock,
|
_In_ PLOADER_PARAMETER_BLOCK LoaderBlock,
|
||||||
IN ULONG Count
|
_In_ ULONG Count
|
||||||
);
|
);
|
||||||
|
|
||||||
extern BOOLEAN InbvBootDriverInstalled;
|
extern BOOLEAN InbvBootDriverInstalled;
|
||||||
|
|
||||||
|
INBV_DISPLAY_STATE
|
||||||
|
NTAPI
|
||||||
|
InbvGetDisplayState(VOID);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
InbvAcquireLock(VOID);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
InbvReleaseLock(VOID);
|
||||||
|
|
||||||
PUCHAR
|
PUCHAR
|
||||||
NTAPI
|
NTAPI
|
||||||
InbvGetResourceAddress(
|
InbvGetResourceAddress(
|
||||||
IN ULONG ResourceNumber
|
_In_ ULONG ResourceNumber
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Display Functions
|
||||||
|
//
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
InbvBitBlt(
|
||||||
|
_In_ PUCHAR Buffer,
|
||||||
|
_In_ ULONG X,
|
||||||
|
_In_ ULONG Y
|
||||||
);
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
InbvBitBlt(
|
InbvBufferToScreenBlt(
|
||||||
IN PUCHAR Buffer,
|
_In_ PUCHAR Buffer,
|
||||||
IN ULONG X,
|
_In_ ULONG X,
|
||||||
IN ULONG Y
|
_In_ ULONG Y,
|
||||||
|
_In_ ULONG Width,
|
||||||
|
_In_ ULONG Height,
|
||||||
|
_In_ ULONG Delta
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
InbvScreenToBufferBlt(
|
||||||
|
_Out_ PUCHAR Buffer,
|
||||||
|
_In_ ULONG X,
|
||||||
|
_In_ ULONG Y,
|
||||||
|
_In_ ULONG Width,
|
||||||
|
_In_ ULONG Height,
|
||||||
|
_In_ ULONG Delta
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Progress-Bar Functions
|
// Progress-Bar Functions
|
||||||
//
|
//
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
InbvSetProgressBarCoordinates(
|
||||||
|
_In_ ULONG Left,
|
||||||
|
_In_ ULONG Top
|
||||||
|
);
|
||||||
|
|
||||||
CODE_SEG("INIT")
|
CODE_SEG("INIT")
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
InbvIndicateProgress(VOID);
|
InbvIndicateProgress(VOID);
|
||||||
|
|
||||||
CODE_SEG("INIT")
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
InbvSetProgressBarSubset(
|
InbvSetProgressBarSubset(
|
||||||
|
@ -46,44 +97,12 @@ InbvSetProgressBarSubset(
|
||||||
_In_ ULONG Ceiling
|
_In_ ULONG Ceiling
|
||||||
);
|
);
|
||||||
|
|
||||||
CODE_SEG("INIT")
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
InbvUpdateProgressBar(
|
InbvUpdateProgressBar(
|
||||||
_In_ ULONG Percentage
|
_In_ ULONG Percentage
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
|
||||||
// Boot Splash-Screen Functions
|
|
||||||
//
|
|
||||||
CODE_SEG("INIT")
|
|
||||||
VOID
|
|
||||||
NTAPI
|
|
||||||
InbvRotBarInit(
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
CODE_SEG("INIT")
|
|
||||||
VOID
|
|
||||||
NTAPI
|
|
||||||
DisplayBootBitmap(
|
|
||||||
IN BOOLEAN TextMode
|
|
||||||
);
|
|
||||||
|
|
||||||
CODE_SEG("INIT")
|
|
||||||
VOID
|
|
||||||
NTAPI
|
|
||||||
DisplayFilter(
|
|
||||||
IN PCHAR *String
|
|
||||||
);
|
|
||||||
|
|
||||||
CODE_SEG("INIT")
|
|
||||||
VOID
|
|
||||||
NTAPI
|
|
||||||
FinalizeBootLogo(
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Headless Terminal Support Functions
|
// Headless Terminal Support Functions
|
||||||
//
|
//
|
||||||
|
|
|
@ -124,6 +124,7 @@ list(APPEND SOURCE
|
||||||
${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/fstubex.c
|
${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/fstubex.c
|
||||||
${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/halstub.c
|
${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/halstub.c
|
||||||
${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/translate.c
|
${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/translate.c
|
||||||
|
${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/bootanim.c
|
||||||
${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/inbv.c
|
${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/inbv.c
|
||||||
${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/inbvport.c
|
${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/inbvport.c
|
||||||
${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/adapter.c
|
${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/adapter.c
|
||||||
|
|
|
@ -41,14 +41,14 @@ typedef enum _INBV_DISPLAY_STATE
|
||||||
typedef
|
typedef
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
(NTAPI *INBV_RESET_DISPLAY_PARAMETERS)(
|
(NTAPI *INBV_RESET_DISPLAY_PARAMETERS)(
|
||||||
ULONG Cols,
|
_In_ ULONG Cols,
|
||||||
ULONG Rows
|
_In_ ULONG Rows
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
VOID
|
VOID
|
||||||
(NTAPI *INBV_DISPLAY_STRING_FILTER)(
|
(NTAPI *INBV_DISPLAY_STRING_FILTER)(
|
||||||
PCHAR *Str
|
_Inout_ PCHAR* String
|
||||||
);
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue