VOID NTAPI InbvSolidColorFill(IN ULONG Left, IN ULONG Top, IN ULONG Right, IN ULONG Bottom, IN ULONG Color) { /* Make sure we own it */ if (InbvDisplayState == INBV_DISPLAY_STATE_OWNED) { /* Acquire the lock */ InbvAcquireLock(); /* Check if we're installed */ if (InbvBootDriverInstalled) { /* Call bootvid */ VidSolidColorFill(Left, Top, Right, Bottom, (UCHAR)Color); } /* FIXME: Headless */ /* Release the lock */ InbvReleaseLock(); } }
VOID NTAPI INIT_FUNCTION InbvUpdateProgressBar(IN ULONG Progress) { ULONG FillCount, BoundedProgress; /* Make sure the progress bar is enabled, that we own and are installed */ if ((ShowProgressBar) && (InbvBootDriverInstalled) && (InbvDisplayState == INBV_DISPLAY_STATE_OWNED)) { /* Compute fill count */ BoundedProgress = (InbvProgressState.Floor / 100) + Progress; FillCount = 121 * (InbvProgressState.Bias * BoundedProgress) / 1000000; /* Acquire the lock */ InbvAcquireLock(); /* Fill the progress bar */ VidSolidColorFill(ProgressBarLeft, ProgressBarTop, ProgressBarLeft + FillCount, ProgressBarTop + 12, 15); /* Release the lock */ InbvReleaseLock(); } }
VOID NTAPI INIT_FUNCTION FinalizeBootLogo(VOID) { /* Acquire lock and check the display state */ InbvAcquireLock(); if (InbvGetDisplayState() == INBV_DISPLAY_STATE_OWNED) { /* Clear the screen */ VidSolidColorFill(0, 0, 639, 479, 0); } /* Reset progress bar and lock */ PltRotBarStatus = 3; InbvReleaseLock(); }
/* * @implemented */ VOID NTAPI VidResetDisplay(IN BOOLEAN HalReset) { /* Clear the current position */ curr_x = 0; curr_y = 0; /* Clear the screen with HAL if we were asked to */ if (HalReset) HalResetDisplay(); /* Re-initialize the VGA Display */ VgaInterpretCmdStream(AT_Initialization); /* Re-initialize the palette and fill the screen black */ InitializePalette(); VidSolidColorFill(0, 0, 639, 479, 0); }