//\r
EFI_STATUS\r
PlatformBdsShowProgress (\r
- IN EFI_UGA_PIXEL TitleForeground,\r
- IN EFI_UGA_PIXEL TitleBackground,\r
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,\r
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,\r
IN CHAR16 *Title,\r
- IN EFI_UGA_PIXEL ProgressColor,\r
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,\r
IN UINTN Progress,\r
IN UINTN PreviousValue\r
)\r
--*/\r
{\r
EFI_STATUS Status;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
UINT32 SizeOfX;\r
UINT32 SizeOfY;\r
UINT32 ColorDepth;\r
UINT32 RefreshRate;\r
- EFI_UGA_PIXEL Color;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
UINTN BlockHeight;\r
UINTN BlockWidth;\r
UINTN BlockNum;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ UgaDraw = NULL;\r
Status = gBS->HandleProtocol (\r
gST->ConsoleOutHandle,\r
- &gEfiUgaDrawProtocolGuid,\r
- &UgaDraw\r
+ &gEfiGraphicsOutputProtocolGuid,\r
+ &GraphicsOutput\r
);\r
if (EFI_ERROR (Status)) {\r
- return EFI_UNSUPPORTED;\r
+ GraphicsOutput = NULL;\r
+\r
+ Status = gBS->HandleProtocol (\r
+ gST->ConsoleOutHandle,\r
+ &gEfiUgaDrawProtocolGuid,\r
+ &UgaDraw\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
}\r
\r
- Status = UgaDraw->GetMode (\r
- UgaDraw,\r
- &SizeOfX,\r
- &SizeOfY,\r
- &ColorDepth,\r
- &RefreshRate\r
- );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_UNSUPPORTED;\r
+ if (GraphicsOutput != NULL) {\r
+ SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;\r
+ SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;\r
+ } else {\r
+ Status = UgaDraw->GetMode (\r
+ UgaDraw,\r
+ &SizeOfX,\r
+ &SizeOfY,\r
+ &ColorDepth,\r
+ &RefreshRate\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
}\r
\r
BlockWidth = SizeOfX / 100;\r
//\r
// Clear progress area\r
//\r
- SetMem (&Color, sizeof (EFI_UGA_PIXEL), 0x0);\r
-\r
- Status = UgaDraw->Blt (\r
- UgaDraw,\r
- &Color,\r
- EfiUgaVideoFill,\r
- 0,\r
- 0,\r
- 0,\r
- PosY - GLYPH_HEIGHT - 1,\r
- SizeOfX,\r
- SizeOfY - (PosY - GLYPH_HEIGHT - 1),\r
- SizeOfX * sizeof (EFI_UGA_PIXEL)\r
- );\r
+ SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);\r
+\r
+ if (GraphicsOutput != NULL) {\r
+ Status = GraphicsOutput->Blt (\r
+ GraphicsOutput,\r
+ &Color,\r
+ EfiBltVideoFill,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ PosY - GLYPH_HEIGHT - 1,\r
+ SizeOfX,\r
+ SizeOfY - (PosY - GLYPH_HEIGHT - 1),\r
+ SizeOfX * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
+ );\r
+ } else {\r
+ Status = UgaDraw->Blt (\r
+ UgaDraw,\r
+ (EFI_UGA_PIXEL *) &Color,\r
+ EfiUgaVideoFill,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ PosY - GLYPH_HEIGHT - 1,\r
+ SizeOfX,\r
+ SizeOfY - (PosY - GLYPH_HEIGHT - 1),\r
+ SizeOfX * sizeof (EFI_UGA_PIXEL)\r
+ );\r
+ }\r
}\r
//\r
// Show progress by drawing blocks\r
//\r
for (Index = PreviousValue; Index < BlockNum; Index++) {\r
PosX = Index * BlockWidth;\r
- Status = UgaDraw->Blt (\r
- UgaDraw,\r
- &ProgressColor,\r
- EfiUgaVideoFill,\r
- 0,\r
- 0,\r
- PosX,\r
- PosY,\r
- BlockWidth - 1,\r
- BlockHeight,\r
- (BlockWidth) * sizeof (EFI_UGA_PIXEL)\r
- );\r
+ if (GraphicsOutput != NULL) {\r
+ Status = GraphicsOutput->Blt (\r
+ GraphicsOutput,\r
+ &ProgressColor,\r
+ EfiBltVideoFill,\r
+ 0,\r
+ 0,\r
+ PosX,\r
+ PosY,\r
+ BlockWidth - 1,\r
+ BlockHeight,\r
+ (BlockWidth) * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
+ );\r
+ } else {\r
+ Status = UgaDraw->Blt (\r
+ UgaDraw,\r
+ (EFI_UGA_PIXEL *) &ProgressColor,\r
+ EfiUgaVideoFill,\r
+ 0,\r
+ 0,\r
+ PosX,\r
+ PosY,\r
+ BlockWidth - 1,\r
+ BlockHeight,\r
+ (BlockWidth) * sizeof (EFI_UGA_PIXEL)\r
+ );\r
+ }\r
}\r
\r
PrintXY (\r
CHAR16 *StrTotalMemory;\r
CHAR16 *Pos;\r
CHAR16 *TmpStr;\r
- EFI_UGA_PIXEL Foreground;\r
- EFI_UGA_PIXEL Background;\r
- EFI_UGA_PIXEL Color;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
UINT8 Value;\r
UINTN DataSize;\r
- UINT32 Attributes;\r
\r
ReturnStatus = EFI_SUCCESS;\r
ZeroMem (&Key, sizeof (EFI_INPUT_KEY));\r
ErrorOut = FALSE;\r
TestAbort = FALSE;\r
\r
- SetMem (&Foreground, sizeof (EFI_UGA_PIXEL), 0xff);\r
- SetMem (&Background, sizeof (EFI_UGA_PIXEL), 0x0);\r
- SetMem (&Color, sizeof (EFI_UGA_PIXEL), 0xff);\r
+ SetMem (&Foreground, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
+ SetMem (&Background, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);\r
+ SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
\r
RequireSoftECCInit = FALSE;\r
\r
Status = gRT->GetVariable (\r
L"BootState",\r
&gEfiBootStateGuid,\r
- &Attributes,\r
+ NULL,\r
&DataSize,\r
&Value\r
);\r