]> code.delx.au - refind/blobdiff - refind/screen.c
Support for loading fonts (as PNG files); new default font.
[refind] / refind / screen.c
index cd2fc861dfe4303a616db1224798841f95284312..fd29f5c8f40d0a7b6c59925e2ed54304cf937472 100644 (file)
@@ -394,7 +394,6 @@ BOOLEAN CheckFatalError(IN EFI_STATUS Status, IN CHAR16 *where)
     if (!EFI_ERROR(Status))
         return FALSE;
 
-//    StatusToString(ErrorName, Status);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_ERROR);
     Print(L"Fatal Error: %r %s\n", Status, where);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_BASIC);
@@ -407,12 +406,9 @@ BOOLEAN CheckFatalError(IN EFI_STATUS Status, IN CHAR16 *where)
 
 BOOLEAN CheckError(IN EFI_STATUS Status, IN CHAR16 *where)
 {
-//    CHAR16 ErrorName[64];
-
     if (!EFI_ERROR(Status))
         return FALSE;
 
-//    StatusToString(ErrorName, Status);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_ERROR);
     Print(L"Error: %r %s\n", Status, where);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_BASIC);
@@ -463,10 +459,10 @@ VOID BltClearScreen(IN BOOLEAN ShowBanner)
         egClearScreen(&MenuBackgroundPixel);
         if (Banner != NULL) {
             BannerPosX = (Banner->Width < UGAWidth) ? ((UGAWidth - Banner->Width) / 2) : 0;
-            BannerPosY = (ComputeRow0PosX() / 2) - Banner->Height;
-//            BannerPosY = ComputeRow0PosX() - Banner->Height - LAYOUT_BANNER_YGAP;
+            BannerPosY = (INTN) (ComputeRow0PosY() / 2) - (INTN) Banner->Height;
             if (BannerPosY < 0)
                BannerPosY = 0;
+            GlobalConfig.BannerBottomEdge = BannerPosY + Banner->Height;
             BltImage(Banner, (UINTN) BannerPosX, (UINTN) BannerPosY);
         }
 
@@ -478,7 +474,7 @@ VOID BltClearScreen(IN BOOLEAN ShowBanner)
     GraphicsScreenDirty = FALSE;
     egFreeImage(GlobalConfig.ScreenBackground);
     GlobalConfig.ScreenBackground = egCopyScreen();
-}
+} /* VOID BltClearScreen() */
 
 VOID BltImage(IN EG_IMAGE *Image, IN UINTN XPos, IN UINTN YPos)
 {
@@ -560,7 +556,10 @@ VOID BltImageCompositeBadge(IN EG_IMAGE *BaseImage, IN EG_IMAGE *TopImage, IN EG
      }
 
      // blit to screen and clean up
-     egDrawImage(CompImage, XPos, YPos);
+     if (CompImage->HasAlpha)
+        egDrawImageWithTransparency(CompImage, NULL, XPos, YPos, CompImage->Width, CompImage->Height);
+     else
+        egDrawImage(CompImage, XPos, YPos);
      egFreeImage(CompImage);
      GraphicsScreenDirty = TRUE;
 }