MdeModulePkg/GraphicsConsoleDxe UGA
The Universal Graphics Adapter (UGA) is a graphic abstraction. The UGA I/O and Draw protocols are deprecated since UEFI 2.0 was introduced. Cf. the UEFI spec v2.9: "Appendix L - EFI 1.10 Protocol Changes and Deprecation List" section L.2 "Deprecated Protocols" Remove the UGA support. Signed-off-by: GuoMinJ <newexplorerj@gmail.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
This commit is contained in:
@@ -14,7 +14,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate = {
|
||||
GRAPHICS_CONSOLE_DEV_SIGNATURE,
|
||||
(EFI_GRAPHICS_OUTPUT_PROTOCOL *)NULL,
|
||||
(EFI_UGA_DRAW_PROTOCOL *)NULL,
|
||||
{
|
||||
GraphicsConsoleConOutReset,
|
||||
GraphicsConsoleConOutOutputString,
|
||||
@@ -104,9 +103,8 @@ EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {
|
||||
/**
|
||||
Test to see if Graphics Console could be supported on the Controller.
|
||||
|
||||
Graphics Console could be supported if Graphics Output Protocol or UGA Draw
|
||||
Protocol exists on the Controller. (UGA Draw Protocol could be skipped
|
||||
if PcdUgaConsumeSupport is set to FALSE.)
|
||||
Graphics Console could be supported if Graphics Output Protocol
|
||||
exists on the Controller.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param Controller Handle of device to test.
|
||||
@@ -127,11 +125,9 @@ GraphicsConsoleControllerDriverSupported (
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
|
||||
GraphicsOutput = NULL;
|
||||
UgaDraw = NULL;
|
||||
//
|
||||
// Open the IO Abstraction(s) needed to perform the supported test
|
||||
//
|
||||
@@ -143,21 +139,6 @@ GraphicsConsoleControllerDriverSupported (
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
);
|
||||
|
||||
if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
//
|
||||
// Open Graphics Output Protocol failed, try to open UGA Draw Protocol
|
||||
//
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiUgaDrawProtocolGuid,
|
||||
(VOID **)&UgaDraw,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
@@ -202,13 +183,6 @@ Error:
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
gBS->CloseProtocol (
|
||||
Controller,
|
||||
&gEfiUgaDrawProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
return Status;
|
||||
@@ -369,9 +343,8 @@ InitializeGraphicsConsoleTextMode (
|
||||
}
|
||||
|
||||
/**
|
||||
Start this driver on Controller by opening Graphics Output protocol or
|
||||
UGA Draw protocol, and installing Simple Text Out protocol on Controller.
|
||||
(UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)
|
||||
Start this driver on Controller by opening Graphics Output protocol
|
||||
and installing Simple Text Out protocol on Controller.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param Controller Handle of device to bind driver to
|
||||
@@ -394,8 +367,6 @@ GraphicsConsoleControllerDriverStart (
|
||||
GRAPHICS_CONSOLE_DEV *Private;
|
||||
UINT32 HorizontalResolution;
|
||||
UINT32 VerticalResolution;
|
||||
UINT32 ColorDepth;
|
||||
UINT32 RefreshRate;
|
||||
UINT32 ModeIndex;
|
||||
UINTN MaxMode;
|
||||
UINT32 ModeNumber;
|
||||
@@ -432,18 +403,6 @@ GraphicsConsoleControllerDriverStart (
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
);
|
||||
|
||||
if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiUgaDrawProtocolGuid,
|
||||
(VOID **)&Private->UgaDraw,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Error;
|
||||
}
|
||||
@@ -534,43 +493,6 @@ GraphicsConsoleControllerDriverStart (
|
||||
goto Error;
|
||||
}
|
||||
}
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
//
|
||||
// At first try to set user-defined resolution
|
||||
//
|
||||
ColorDepth = 32;
|
||||
RefreshRate = 60;
|
||||
Status = Private->UgaDraw->SetMode (
|
||||
Private->UgaDraw,
|
||||
HorizontalResolution,
|
||||
VerticalResolution,
|
||||
ColorDepth,
|
||||
RefreshRate
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// Try to set 800*600 which is required by UEFI/EFI spec
|
||||
//
|
||||
Status = Private->UgaDraw->SetMode (
|
||||
Private->UgaDraw,
|
||||
800,
|
||||
600,
|
||||
ColorDepth,
|
||||
RefreshRate
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status = Private->UgaDraw->GetMode (
|
||||
Private->UgaDraw,
|
||||
&HorizontalResolution,
|
||||
&VerticalResolution,
|
||||
&ColorDepth,
|
||||
&RefreshRate
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Error;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG ((DEBUG_INFO, "GraphicsConsole video resolution %d x %d\n", HorizontalResolution, VerticalResolution));
|
||||
@@ -638,7 +560,7 @@ GraphicsConsoleControllerDriverStart (
|
||||
Error:
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// Close the GOP and UGA Draw Protocol
|
||||
// Close the GOP
|
||||
//
|
||||
if (Private->GraphicsOutput != NULL) {
|
||||
gBS->CloseProtocol (
|
||||
@@ -647,13 +569,6 @@ Error:
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
gBS->CloseProtocol (
|
||||
Controller,
|
||||
&gEfiUgaDrawProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
if (Private->LineBuffer != NULL) {
|
||||
@@ -675,9 +590,7 @@ Error:
|
||||
|
||||
/**
|
||||
Stop this driver on Controller by removing Simple Text Out protocol
|
||||
and closing the Graphics Output Protocol or UGA Draw protocol on Controller.
|
||||
(UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)
|
||||
|
||||
and closing the Graphics Output Protocol on Controller.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param Controller Handle of device to stop driver on
|
||||
@@ -726,7 +639,7 @@ GraphicsConsoleControllerDriverStop (
|
||||
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Close the GOP or UGA IO Protocol
|
||||
// Close the GOP Protocol
|
||||
//
|
||||
if (Private->GraphicsOutput != NULL) {
|
||||
gBS->CloseProtocol (
|
||||
@@ -735,13 +648,6 @@ GraphicsConsoleControllerDriverStop (
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
gBS->CloseProtocol (
|
||||
Controller,
|
||||
&gEfiUgaDrawProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
if (Private->LineBuffer != NULL) {
|
||||
@@ -933,7 +839,6 @@ GraphicsConsoleConOutOutputString (
|
||||
{
|
||||
GRAPHICS_CONSOLE_DEV *Private;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
INTN Mode;
|
||||
UINTN MaxColumn;
|
||||
UINTN MaxRow;
|
||||
@@ -967,7 +872,6 @@ GraphicsConsoleConOutOutputString (
|
||||
Mode = This->Mode->Mode;
|
||||
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
|
||||
GraphicsOutput = Private->GraphicsOutput;
|
||||
UgaDraw = Private->UgaDraw;
|
||||
|
||||
MaxColumn = Private->ModeData[Mode].Columns;
|
||||
MaxRow = Private->ModeData[Mode].Rows;
|
||||
@@ -1055,38 +959,6 @@ GraphicsConsoleConOutOutputString (
|
||||
EFI_GLYPH_HEIGHT,
|
||||
Delta
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
//
|
||||
// Scroll Screen Up One Row
|
||||
//
|
||||
UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
NULL,
|
||||
EfiUgaVideoToVideo,
|
||||
DeltaX,
|
||||
DeltaY + EFI_GLYPH_HEIGHT,
|
||||
DeltaX,
|
||||
DeltaY,
|
||||
Width,
|
||||
Height,
|
||||
Delta
|
||||
);
|
||||
|
||||
//
|
||||
// Print Blank Line at last line
|
||||
//
|
||||
UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
(EFI_UGA_PIXEL *)(UINTN)&Background,
|
||||
EfiUgaVideoFill,
|
||||
0,
|
||||
0,
|
||||
DeltaX,
|
||||
DeltaY + Height,
|
||||
Width,
|
||||
EFI_GLYPH_HEIGHT,
|
||||
Delta
|
||||
);
|
||||
}
|
||||
} else {
|
||||
This->Mode->CursorRow++;
|
||||
@@ -1320,19 +1192,13 @@ GraphicsConsoleConOutSetMode (
|
||||
GRAPHICS_CONSOLE_DEV *Private;
|
||||
GRAPHICS_CONSOLE_MODE_DATA *ModeData;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL *NewLineBuffer;
|
||||
UINT32 HorizontalResolution;
|
||||
UINT32 VerticalResolution;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
UINT32 ColorDepth;
|
||||
UINT32 RefreshRate;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
|
||||
|
||||
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
|
||||
GraphicsOutput = Private->GraphicsOutput;
|
||||
UgaDraw = Private->UgaDraw;
|
||||
|
||||
//
|
||||
// Make sure the requested mode number is supported
|
||||
@@ -1366,7 +1232,7 @@ GraphicsConsoleConOutSetMode (
|
||||
}
|
||||
|
||||
//
|
||||
// Otherwise, the size of the text console and/or the GOP/UGA mode will be changed,
|
||||
// Otherwise, the size of the text console and/or the GOP mode will be changed,
|
||||
// so erase the cursor, and free the LineBuffer for the current mode
|
||||
//
|
||||
FlushCursor (This);
|
||||
@@ -1422,51 +1288,6 @@ GraphicsConsoleConOutSetMode (
|
||||
0
|
||||
);
|
||||
}
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
//
|
||||
// Get the current UGA Draw mode information
|
||||
//
|
||||
Status = UgaDraw->GetMode (
|
||||
UgaDraw,
|
||||
&HorizontalResolution,
|
||||
&VerticalResolution,
|
||||
&ColorDepth,
|
||||
&RefreshRate
|
||||
);
|
||||
if (EFI_ERROR (Status) || (HorizontalResolution != ModeData->GopWidth) || (VerticalResolution != ModeData->GopHeight)) {
|
||||
//
|
||||
// Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new graphics mode
|
||||
//
|
||||
Status = UgaDraw->SetMode (
|
||||
UgaDraw,
|
||||
ModeData->GopWidth,
|
||||
ModeData->GopHeight,
|
||||
32,
|
||||
60
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// The mode set operation failed
|
||||
//
|
||||
goto Done;
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// The current graphics mode is correct, so simply clear the entire display
|
||||
//
|
||||
Status = UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
(EFI_UGA_PIXEL *)(UINTN)&mGraphicsEfiColors[0],
|
||||
EfiUgaVideoFill,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
ModeData->GopWidth,
|
||||
ModeData->GopHeight,
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1558,7 +1379,6 @@ GraphicsConsoleConOutClearScreen (
|
||||
GRAPHICS_CONSOLE_DEV *Private;
|
||||
GRAPHICS_CONSOLE_MODE_DATA *ModeData;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
|
||||
EFI_TPL OldTpl;
|
||||
@@ -1574,7 +1394,6 @@ GraphicsConsoleConOutClearScreen (
|
||||
|
||||
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
|
||||
GraphicsOutput = Private->GraphicsOutput;
|
||||
UgaDraw = Private->UgaDraw;
|
||||
ModeData = &(Private->ModeData[This->Mode->Mode]);
|
||||
|
||||
GetTextColors (This, &Foreground, &Background);
|
||||
@@ -1591,19 +1410,6 @@ GraphicsConsoleConOutClearScreen (
|
||||
ModeData->GopHeight,
|
||||
0
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
Status = UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
(EFI_UGA_PIXEL *)(UINTN)&Background,
|
||||
EfiUgaVideoFill,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
ModeData->GopWidth,
|
||||
ModeData->GopHeight,
|
||||
0
|
||||
);
|
||||
} else {
|
||||
Status = EFI_UNSUPPORTED;
|
||||
}
|
||||
@@ -1764,7 +1570,7 @@ GetTextColors (
|
||||
@param Count The count of Unicode string.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES If no memory resource to use.
|
||||
@retval EFI_UNSUPPORTED If no Graphics Output protocol and UGA Draw
|
||||
@retval EFI_UNSUPPORTED If no Graphics Output protocol
|
||||
protocol exist.
|
||||
@retval EFI_SUCCESS Drawing Unicode string implemented successfully.
|
||||
|
||||
@@ -1781,9 +1587,6 @@ DrawUnicodeWeightAtCursorN (
|
||||
EFI_IMAGE_OUTPUT *Blt;
|
||||
EFI_STRING String;
|
||||
EFI_FONT_DISPLAY_INFO *FontInfo;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
EFI_HII_ROW_INFO *RowInfoArray;
|
||||
UINTN RowInfoArraySize;
|
||||
|
||||
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
|
||||
Blt = (EFI_IMAGE_OUTPUT *)AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
|
||||
@@ -1835,63 +1638,6 @@ DrawUnicodeWeightAtCursorN (
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
//
|
||||
// If Graphics Output protocol cannot be found and PcdUgaConsumeSupport enabled,
|
||||
// using UGA Draw protocol to draw.
|
||||
//
|
||||
ASSERT (Private->UgaDraw != NULL);
|
||||
|
||||
UgaDraw = Private->UgaDraw;
|
||||
|
||||
Blt->Image.Bitmap = AllocateZeroPool (Blt->Width * Blt->Height * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
|
||||
if (Blt->Image.Bitmap == NULL) {
|
||||
FreePool (Blt);
|
||||
FreePool (String);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
RowInfoArray = NULL;
|
||||
//
|
||||
// StringToImage only support blt'ing image to device using GOP protocol. If GOP is not supported in this platform,
|
||||
// we ask StringToImage to print the string to blt buffer, then blt to device using UgaDraw.
|
||||
//
|
||||
Status = mHiiFont->StringToImage (
|
||||
mHiiFont,
|
||||
EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_IGNORE_LINE_BREAK,
|
||||
String,
|
||||
FontInfo,
|
||||
&Blt,
|
||||
This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,
|
||||
This->Mode->CursorRow * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,
|
||||
&RowInfoArray,
|
||||
&RowInfoArraySize,
|
||||
NULL
|
||||
);
|
||||
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Line breaks are handled by caller of DrawUnicodeWeightAtCursorN, so the updated parameter RowInfoArraySize by StringToImage will
|
||||
// always be 1 or 0 (if there is no valid Unicode Char can be printed). ASSERT here to make sure.
|
||||
//
|
||||
ASSERT (RowInfoArraySize <= 1);
|
||||
|
||||
Status = UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
(EFI_UGA_PIXEL *)Blt->Image.Bitmap,
|
||||
EfiUgaBltBufferToVideo,
|
||||
This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,
|
||||
(This->Mode->CursorRow) * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,
|
||||
This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,
|
||||
(This->Mode->CursorRow) * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,
|
||||
RowInfoArray[0].LineWidth,
|
||||
RowInfoArray[0].LineHeight,
|
||||
Blt->Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
|
||||
);
|
||||
}
|
||||
|
||||
FreePool (RowInfoArray);
|
||||
FreePool (Blt->Image.Bitmap);
|
||||
} else {
|
||||
Status = EFI_UNSUPPORTED;
|
||||
}
|
||||
@@ -1934,7 +1680,6 @@ FlushCursor (
|
||||
INTN GlyphX;
|
||||
INTN GlyphY;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];
|
||||
@@ -1949,7 +1694,6 @@ FlushCursor (
|
||||
|
||||
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
|
||||
GraphicsOutput = Private->GraphicsOutput;
|
||||
UgaDraw = Private->UgaDraw;
|
||||
|
||||
//
|
||||
// In this driver, only narrow character was supported.
|
||||
@@ -1972,19 +1716,6 @@ FlushCursor (
|
||||
EFI_GLYPH_HEIGHT,
|
||||
EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
(EFI_UGA_PIXEL *)(UINTN)BltChar,
|
||||
EfiUgaVideoToBltBuffer,
|
||||
GlyphX,
|
||||
GlyphY,
|
||||
0,
|
||||
0,
|
||||
EFI_GLYPH_WIDTH,
|
||||
EFI_GLYPH_HEIGHT,
|
||||
EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)
|
||||
);
|
||||
}
|
||||
|
||||
GetTextColors (This, &Foreground.Pixel, &Background.Pixel);
|
||||
@@ -2013,19 +1744,6 @@ FlushCursor (
|
||||
EFI_GLYPH_HEIGHT,
|
||||
EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
|
||||
);
|
||||
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
|
||||
UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
(EFI_UGA_PIXEL *)(UINTN)BltChar,
|
||||
EfiUgaBltBufferToVideo,
|
||||
0,
|
||||
0,
|
||||
GlyphX,
|
||||
GlyphY,
|
||||
EFI_GLYPH_WIDTH,
|
||||
EFI_GLYPH_HEIGHT,
|
||||
EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)
|
||||
);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
||||
@@ -12,7 +12,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include <Uefi.h>
|
||||
#include <Protocol/SimpleTextOut.h>
|
||||
#include <Protocol/GraphicsOutput.h>
|
||||
#include <Protocol/UgaDraw.h>
|
||||
#include <Protocol/DevicePath.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/UefiDriverEntryPoint.h>
|
||||
@@ -59,7 +58,6 @@ typedef struct {
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
|
||||
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode;
|
||||
GRAPHICS_CONSOLE_MODE_DATA *ModeData;
|
||||
@@ -417,9 +415,8 @@ GraphicsConsoleConOutEnableCursor (
|
||||
/**
|
||||
Test to see if Graphics Console could be supported on the Controller.
|
||||
|
||||
Graphics Console could be supported if Graphics Output Protocol or UGADraw
|
||||
Protocol exists on the Controller. (UGA Draw Protocol could be skipped
|
||||
if PcdUgaConsumeSupport is set to FALSE.)
|
||||
Graphics Console could be supported if Graphics Output Protocol
|
||||
exists on the Controller.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param Controller Handle of device to test.
|
||||
@@ -439,9 +436,8 @@ GraphicsConsoleControllerDriverSupported (
|
||||
);
|
||||
|
||||
/**
|
||||
Start this driver on Controller by opening Graphics Output protocol or
|
||||
UGA Draw protocol, and installing Simple Text Out protocol on Controller.
|
||||
(UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)
|
||||
Start this driver on Controller by opening Graphics Output protocol
|
||||
and installing Simple Text Out protocol on Controller.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param Controller Handle of device to bind driver to
|
||||
@@ -462,9 +458,7 @@ GraphicsConsoleControllerDriverStart (
|
||||
|
||||
/**
|
||||
Stop this driver on Controller by removing Simple Text Out protocol
|
||||
and closing the Graphics Output Protocol or UGA Draw protocol on Controller.
|
||||
(UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)
|
||||
|
||||
and closing the Graphics Output Protocol on Controller.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param Controller Handle of device to stop driver on
|
||||
@@ -526,8 +520,7 @@ GetTextColors (
|
||||
@param Count The count of Unicode string.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES If no memory resource to use.
|
||||
@retval EFI_UNSUPPORTED If no Graphics Output protocol and UGA Draw
|
||||
protocol exist.
|
||||
@retval EFI_UNSUPPORTED If no Graphics Output protocol exist.
|
||||
@retval EFI_SUCCESS Drawing Unicode string implemented successfully.
|
||||
|
||||
**/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Console support on graphic devices.
|
||||
#
|
||||
# This driver will install Simple Text Output protocol by consuming Graphices Output
|
||||
# protocol or UGA Draw protocol on graphic devices.
|
||||
# protocol on graphic devices.
|
||||
#
|
||||
# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
@@ -53,15 +53,11 @@
|
||||
gEfiDevicePathProtocolGuid ## TO_START
|
||||
gEfiSimpleTextOutProtocolGuid ## BY_START
|
||||
gEfiGraphicsOutputProtocolGuid ## TO_START
|
||||
gEfiUgaDrawProtocolGuid ## TO_START
|
||||
gEfiHiiFontProtocolGuid ## TO_START
|
||||
## TO_START
|
||||
## NOTIFY
|
||||
gEfiHiiDatabaseProtocolGuid
|
||||
|
||||
[FeaturePcd]
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport ## CONSUMES
|
||||
|
||||
[Pcd]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution ## SOMETIMES_CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution ## SOMETIMES_CONSUMES
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// Console support on graphic devices.
|
||||
//
|
||||
// This driver will install Simple Text Output protocol by consuming Graphices Output
|
||||
// protocol or UGA Draw protocol on graphic devices.
|
||||
// protocol on graphic devices.
|
||||
//
|
||||
// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
//
|
||||
@@ -14,5 +14,5 @@
|
||||
#string STR_MODULE_ABSTRACT #language en-US "Console support on graphic devices"
|
||||
|
||||
#string STR_MODULE_DESCRIPTION #language en-US "This driver will install SimpleTextOutputProtocol by consuming GraphicesOutput\n"
|
||||
"Protocol or UgaDrawProtocol on graphics devices."
|
||||
"Protocol on graphics devices."
|
||||
|
||||
|
||||
Reference in New Issue
Block a user