From b324f3af6461691f004d2aac7727e59f9548b3ef Mon Sep 17 00:00:00 2001 From: Jeff Fan Date: Fri, 20 Nov 2015 03:11:40 +0000 Subject: Rollback the changes from r18879 - r18886. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan git-svn-id: https://svn.code.sf.net/p/edk2/code/branches/UDK2015@18911 6f19259b-4bc3-4df7-8a09-765794883524 --- .../BmpImageDecoderLib/BmpImageDecoderLib.c | 272 ---------- .../BmpImageDecoderLib/BmpImageDecoderLib.inf | 42 -- MdeModulePkg/Library/BootLogoLib/BootLogoLib.c | 581 --------------------- MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf | 59 --- .../Library/ImageDecoderLib/ImageDecoderLib.c | 121 ----- .../Library/ImageDecoderLib/ImageDecoderLib.inf | 42 -- 6 files changed, 1117 deletions(-) delete mode 100644 MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.c delete mode 100644 MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf delete mode 100644 MdeModulePkg/Library/BootLogoLib/BootLogoLib.c delete mode 100644 MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf delete mode 100644 MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.c delete mode 100644 MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf (limited to 'MdeModulePkg/Library') diff --git a/MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.c b/MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.c deleted file mode 100644 index 28afd4fa9a..0000000000 --- a/MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.c +++ /dev/null @@ -1,272 +0,0 @@ -/** @file - This library provides BMP image decoding capability. - -Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.
-This program and the accompanying materials are licensed and made available under -the terms and conditions of the BSD License that accompanies this distribution. -The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php. - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include -#include -#include -#include -#include -#include -#include - -/** - Convert a *.BMP graphics image to a callee allocated GOP blt buffer. - - @param ImageFormat Format of the image file. - @param BmpImage Pointer to BMP file - @param BmpImageSize Number of bytes in BmpImage - @param GopBlt Buffer containing GOP version of BmpImage. - @param GopBltSize Size of GopBlt in bytes. - @param PixelHeight Height of GopBlt/BmpImage in pixels - @param PixelWidth Width of GopBlt/BmpImage in pixels - - @retval EFI_SUCCESS GopBlt and GopBltSize are returned. - @retval EFI_INVALID_PARAMETER GopBlt or GopBltSize is NULL. - @retval EFI_UNSUPPORTED BmpImage is not a valid *.BMP image - @retval EFI_OUT_OF_RESOURCES No enough buffer to allocate. - -**/ -EFI_STATUS -EFIAPI -BmpImageDecoderLibConvertBmpToGopBlt ( - IN IMAGE_FORMAT ImageFormat, - IN UINT8 *BmpImage, - IN UINTN BmpImageSize, - OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **GopBlt, - OUT UINTN *GopBltSize, - OUT UINTN *PixelWidth, - OUT UINTN *PixelHeight - ) -{ - UINT8 *Image; - UINT8 *ImageHeader; - BMP_IMAGE_HEADER *BmpHeader; - BMP_COLOR_MAP *BmpColorMap; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt; - UINT64 BltBufferSize; - UINTN Index; - UINTN Height; - UINTN Width; - UINTN ImageIndex; - UINT32 DataSizePerLine; - UINT32 ColorMapNum; - - ASSERT ((GopBlt != NULL) && (GopBltSize != NULL)); - - if ((ImageFormat != ImageFormatBmp) && (ImageFormat != ImageFormatUnknown)) { - return EFI_UNSUPPORTED; - } - - if (sizeof (BMP_IMAGE_HEADER) > BmpImageSize) { - return EFI_UNSUPPORTED; - } - - BmpHeader = (BMP_IMAGE_HEADER *) BmpImage; - - if (BmpHeader->CharB != 'B' || BmpHeader->CharM != 'M') { - return EFI_UNSUPPORTED; - } - - // - // Doesn't support compress. - // - if (BmpHeader->CompressionType != 0) { - return EFI_UNSUPPORTED; - } - - // - // Only support BITMAPINFOHEADER format. - // BITMAPFILEHEADER + BITMAPINFOHEADER = BMP_IMAGE_HEADER - // - if (BmpHeader->HeaderSize != sizeof (BMP_IMAGE_HEADER) - OFFSET_OF(BMP_IMAGE_HEADER, HeaderSize)) { - return EFI_UNSUPPORTED; - } - - // - // The data size in each line must be 4 byte alignment. - // - DataSizePerLine = ((BmpHeader->PixelWidth * BmpHeader->BitPerPixel + 31) >> 3) & (~0x3); - BltBufferSize = MultU64x32 (DataSizePerLine, BmpHeader->PixelHeight); - if (BltBufferSize > (UINT32) ~0) { - return EFI_INVALID_PARAMETER; - } - - if ((BmpHeader->Size != BmpImageSize) || - (BmpHeader->Size < BmpHeader->ImageOffset) || - (BmpHeader->Size - BmpHeader->ImageOffset != BmpHeader->PixelHeight * DataSizePerLine)) { - return EFI_INVALID_PARAMETER; - } - - // - // Calculate Color Map offset in the image. - // - Image = BmpImage; - BmpColorMap = (BMP_COLOR_MAP *) (Image + sizeof (BMP_IMAGE_HEADER)); - if (BmpHeader->ImageOffset < sizeof (BMP_IMAGE_HEADER)) { - return EFI_INVALID_PARAMETER; - } - - if (BmpHeader->ImageOffset > sizeof (BMP_IMAGE_HEADER)) { - switch (BmpHeader->BitPerPixel) { - case 1: - ColorMapNum = 2; - break; - case 4: - ColorMapNum = 16; - break; - case 8: - ColorMapNum = 256; - break; - default: - ColorMapNum = 0; - break; - } - // - // BMP file may has padding data between the bmp header section and the bmp data section. - // - if (BmpHeader->ImageOffset - sizeof (BMP_IMAGE_HEADER) < sizeof (BMP_COLOR_MAP) * ColorMapNum) { - return EFI_INVALID_PARAMETER; - } - } - - // - // Calculate graphics image data address in the image - // - Image = ((UINT8 *) BmpImage) + BmpHeader->ImageOffset; - ImageHeader = Image; - - // - // Calculate the BltBuffer needed size. - // - BltBufferSize = MultU64x32 ((UINT64) BmpHeader->PixelWidth, BmpHeader->PixelHeight); - // - // Ensure the BltBufferSize * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) doesn't overflow - // - if (BltBufferSize > DivU64x32 ((UINTN) ~0, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL))) { - return EFI_UNSUPPORTED; - } - BltBufferSize = MultU64x32 (BltBufferSize, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)); - - *GopBltSize = (UINTN) BltBufferSize; - *GopBlt = AllocatePool (*GopBltSize); - if (*GopBlt == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - *PixelWidth = BmpHeader->PixelWidth; - *PixelHeight = BmpHeader->PixelHeight; - - // - // Convert image from BMP to Blt buffer format - // - BltBuffer = *GopBlt; - for (Height = 0; Height < BmpHeader->PixelHeight; Height++) { - Blt = &BltBuffer[(BmpHeader->PixelHeight - Height - 1) * BmpHeader->PixelWidth]; - for (Width = 0; Width < BmpHeader->PixelWidth; Width++, Image++, Blt++) { - switch (BmpHeader->BitPerPixel) { - case 1: - // - // Convert 1-bit (2 colors) BMP to 24-bit color - // - for (Index = 0; Index < 8 && Width < BmpHeader->PixelWidth; Index++) { - Blt->Red = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Red; - Blt->Green = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Green; - Blt->Blue = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Blue; - Blt++; - Width++; - } - - Blt--; - Width--; - break; - - case 4: - // - // Convert 4-bit (16 colors) BMP Palette to 24-bit color - // - Index = (*Image) >> 4; - Blt->Red = BmpColorMap[Index].Red; - Blt->Green = BmpColorMap[Index].Green; - Blt->Blue = BmpColorMap[Index].Blue; - if (Width < (BmpHeader->PixelWidth - 1)) { - Blt++; - Width++; - Index = (*Image) & 0x0f; - Blt->Red = BmpColorMap[Index].Red; - Blt->Green = BmpColorMap[Index].Green; - Blt->Blue = BmpColorMap[Index].Blue; - } - break; - - case 8: - // - // Convert 8-bit (256 colors) BMP Palette to 24-bit color - // - Blt->Red = BmpColorMap[*Image].Red; - Blt->Green = BmpColorMap[*Image].Green; - Blt->Blue = BmpColorMap[*Image].Blue; - break; - - case 24: - // - // It is 24-bit BMP. - // - Blt->Blue = *Image++; - Blt->Green = *Image++; - Blt->Red = *Image; - break; - - default: - // - // Other bit format BMP is not supported. - // - return EFI_UNSUPPORTED; - break; - }; - - } - - ImageIndex = (UINTN) (Image - ImageHeader); - if ((ImageIndex % 4) != 0) { - // - // Bmp Image starts each row on a 32-bit boundary! - // - Image = Image + (4 - (ImageIndex % 4)); - } - } - - return EFI_SUCCESS; -} - -/** - Initialize BmpImageDecoderLib library. - - @param ImageHandle The image handle. - @param SystemTable The system table. - - @retval EFI_SUCCESS The BmpImageDecoderLib library is initialized correctly. - @return Other value if failed to initialize the BmpImageDecoderLib library. -**/ -EFI_STATUS -EFIAPI -BmpImageDecoderLibConstructor ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable -) -{ - RegisterImageDecoder (BmpImageDecoderLibConvertBmpToGopBlt); - return EFI_SUCCESS; -} - diff --git a/MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf b/MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf deleted file mode 100644 index 2d1c16084e..0000000000 --- a/MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf +++ /dev/null @@ -1,42 +0,0 @@ -## @file -# This library provides BMP image decoding capability. -# -# Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.
-# This program and the accompanying materials are licensed and made available under -# the terms and conditions of the BSD License that accompanies this distribution. -# The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php. -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = BmpImageDecoderLib - FILE_GUID = DF414223-F17C-4022-A1F4-4062612AB00D - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = NULL|DXE_DRIVER UEFI_APPLICATION - CONSTRUCTOR = BmpImageDecoderLibConstructor - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources] - BmpImageDecoderLib.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - BaseLib - MemoryAllocationLib - BaseMemoryLib - DebugLib - ImageDecoderLib \ No newline at end of file diff --git a/MdeModulePkg/Library/BootLogoLib/BootLogoLib.c b/MdeModulePkg/Library/BootLogoLib/BootLogoLib.c deleted file mode 100644 index f824ae13c2..0000000000 --- a/MdeModulePkg/Library/BootLogoLib/BootLogoLib.c +++ /dev/null @@ -1,581 +0,0 @@ -/** @file - This library is only intended to be used by PlatformBootManagerLib - to show progress bar and LOGO. - -Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.
-This program and the accompanying materials are licensed and made available under -the terms and conditions of the BSD License that accompanies this distribution. -The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php. - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/** - Show LOGO on all consoles. - - @param[in] ImageFormat Format of the image file. - @param[in] LogoFile The file name of logo to display. - @param[in] Attribute The display attributes of the image returned. - @param[in] OffsetX The X offset of the image regarding the Attribute. - @param[in] OffsetY The Y offset of the image regarding the Attribute. - - @retval EFI_SUCCESS Logo was displayed. - @retval EFI_UNSUPPORTED Logo was not found or cannot be displayed. -**/ -EFI_STATUS -EFIAPI -BootLogoEnableLogo ( - IN IMAGE_FORMAT ImageFormat, - IN EFI_GUID *Logo, - IN EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE Attribute, - IN INTN OffsetX, - IN INTN OffsetY - ) -{ - EFI_STATUS Status; - EDKII_PLATFORM_LOGO_PROTOCOL *PlatformLogo; - UINT32 SizeOfX; - UINT32 SizeOfY; - INTN DestX; - INTN DestY; - UINT8 *ImageData; - UINTN ImageSize; - UINTN BltSize; - UINT32 Instance; - UINTN Height; - UINTN Width; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt; - EFI_UGA_DRAW_PROTOCOL *UgaDraw; - UINT32 ColorDepth; - UINT32 RefreshRate; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_BOOT_LOGO_PROTOCOL *BootLogo; - UINTN NumberOfLogos; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LogoBlt; - UINTN LogoDestX; - UINTN LogoDestY; - UINTN LogoHeight; - UINTN LogoWidth; - UINTN NewDestX; - UINTN NewDestY; - UINTN NewHeight; - UINTN NewWidth; - UINTN BufferSize; - - UgaDraw = NULL; - // - // Try to open GOP first - // - Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput); - if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) { - GraphicsOutput = NULL; - // - // Open GOP failed, try to open UGA - // - Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiUgaDrawProtocolGuid, (VOID **) &UgaDraw); - if (EFI_ERROR (Status)) { - UgaDraw = NULL; - } - } - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - - Status = gBS->LocateProtocol (&gEdkiiPlatformLogoProtocolGuid, NULL, (VOID **) &PlatformLogo); - if (EFI_ERROR (Status)) { - PlatformLogo = NULL; - } - - if ((Logo == NULL) && (PlatformLogo == NULL)) { - return EFI_UNSUPPORTED; - } - - // - // Try to open Boot Logo Protocol. - // - Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **) &BootLogo); - if (EFI_ERROR (Status)) { - BootLogo = NULL; - } - - // - // Erase Cursor from screen - // - gST->ConOut->EnableCursor (gST->ConOut, FALSE); - - if (GraphicsOutput != NULL) { - SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution; - SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution; - - } else { - ASSERT (UgaDraw != NULL); - Status = UgaDraw->GetMode (UgaDraw, &SizeOfX, &SizeOfY, &ColorDepth, &RefreshRate); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - } - - Blt = NULL; - NumberOfLogos = 0; - LogoDestX = 0; - LogoDestY = 0; - LogoHeight = 0; - LogoWidth = 0; - NewDestX = 0; - NewDestY = 0; - NewHeight = 0; - NewWidth = 0; - Instance = 0; - while (TRUE) { - ImageData = NULL; - ImageSize = 0; - - if (PlatformLogo != NULL) { - // - // Get image from OEMBadging protocol. - // - Status = PlatformLogo->GetImage ( - PlatformLogo, - &Instance, - &ImageFormat, - &ImageData, - &ImageSize, - &Attribute, - &OffsetX, - &OffsetY - ); - if (EFI_ERROR (Status)) { - break; - } - - } else { - // - // Get the specified image from FV. - // - Status = GetSectionFromAnyFv (Logo, EFI_SECTION_RAW, 0, (VOID **) &ImageData, &ImageSize); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - } - - if (Blt != NULL) { - FreePool (Blt); - } - - Status = DecodeImage (ImageFormat, ImageData, ImageSize, &Blt, &BltSize, &Width, &Height); - FreePool (ImageData); - if (EFI_ERROR (Status)) { - if (Logo != NULL) { - // - // Directly return failure for single LOGO - // - return Status; - } else { - continue; - } - } - - // - // Calculate the display position according to Attribute. - // - switch (Attribute) { - case EdkiiPlatformLogoDisplayAttributeLeftTop: - DestX = 0; - DestY = 0; - break; - case EdkiiPlatformLogoDisplayAttributeCenterTop: - DestX = (SizeOfX - Width) / 2; - DestY = 0; - break; - case EdkiiPlatformLogoDisplayAttributeRightTop: - DestX = SizeOfX - Width; - DestY = 0; - break; - - case EdkiiPlatformLogoDisplayAttributeCenterLeft: - DestX = 0; - DestY = (SizeOfY - Height) / 2; - break; - case EdkiiPlatformLogoDisplayAttributeCenter: - DestX = (SizeOfX - Width) / 2; - DestY = (SizeOfY - Height) / 2; - break; - case EdkiiPlatformLogoDisplayAttributeCenterRight: - DestX = SizeOfX - Width; - DestY = (SizeOfY - Height) / 2; - break; - - case EdkiiPlatformLogoDisplayAttributeLeftBottom: - DestX = 0; - DestY = SizeOfY - Height; - break; - case EdkiiPlatformLogoDisplayAttributeCenterBottom: - DestX = (SizeOfX - Width) / 2; - DestY = SizeOfY - Height; - break; - case EdkiiPlatformLogoDisplayAttributeRightBottom: - DestX = SizeOfX - Width; - DestY = SizeOfY - Height; - break; - - default: - ASSERT (FALSE); - break; - } - - DestX += OffsetX; - DestY += OffsetY; - - if ((DestX >= 0) && (DestY >= 0)) { - if (GraphicsOutput != NULL) { - Status = GraphicsOutput->Blt ( - GraphicsOutput, - Blt, - EfiBltBufferToVideo, - 0, - 0, - (UINTN) DestX, - (UINTN) DestY, - Width, - Height, - Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) - ); - } else { - ASSERT (UgaDraw != NULL); - Status = UgaDraw->Blt ( - UgaDraw, - (EFI_UGA_PIXEL *) Blt, - EfiUgaBltBufferToVideo, - 0, - 0, - (UINTN) DestX, - (UINTN) DestY, - Width, - Height, - Width * sizeof (EFI_UGA_PIXEL) - ); - } - - // - // Report displayed Logo information. - // - if (!EFI_ERROR (Status)) { - NumberOfLogos++; - - if (LogoWidth == 0) { - // - // The first Logo. - // - LogoDestX = (UINTN) DestX; - LogoDestY = (UINTN) DestY; - LogoWidth = Width; - LogoHeight = Height; - } else { - // - // Merge new logo with old one. - // - NewDestX = MIN ((UINTN) DestX, LogoDestX); - NewDestY = MIN ((UINTN) DestY, LogoDestY); - NewWidth = MAX ((UINTN) DestX + Width, LogoDestX + LogoWidth) - NewDestX; - NewHeight = MAX ((UINTN) DestY + Height, LogoDestY + LogoHeight) - NewDestY; - - LogoDestX = NewDestX; - LogoDestY = NewDestY; - LogoWidth = NewWidth; - LogoHeight = NewHeight; - } - } - } - - if (PlatformLogo == NULL) { - break; - } - } - - if (BootLogo == NULL || NumberOfLogos == 0) { - // - // No logo displayed. - // - if (Blt != NULL) { - FreePool (Blt); - } - - return Status; - } - - // - // Advertise displayed Logo information. - // - if (NumberOfLogos == 1) { - // - // Only one logo displayed, use its Blt buffer directly for BootLogo protocol. - // - LogoBlt = Blt; - Status = EFI_SUCCESS; - } else { - // - // More than one Logo displayed, get merged BltBuffer using VideoToBuffer operation. - // - if (Blt != NULL) { - FreePool (Blt); - } - - // - // Ensure the LogoHeight * LogoWidth * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) doesn't overflow - // - if (LogoHeight > MAX_UINTN / LogoWidth / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) { - return EFI_UNSUPPORTED; - } - BufferSize = LogoWidth * LogoHeight * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL); - - LogoBlt = AllocatePool (BufferSize); - if (LogoBlt == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - if (GraphicsOutput != NULL) { - Status = GraphicsOutput->Blt ( - GraphicsOutput, - LogoBlt, - EfiBltVideoToBltBuffer, - LogoDestX, - LogoDestY, - 0, - 0, - LogoWidth, - LogoHeight, - LogoWidth * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) - ); - } else { - Status = UgaDraw->Blt ( - UgaDraw, - (EFI_UGA_PIXEL *) LogoBlt, - EfiUgaVideoToBltBuffer, - LogoDestX, - LogoDestY, - 0, - 0, - LogoWidth, - LogoHeight, - LogoWidth * sizeof (EFI_UGA_PIXEL) - ); - } - } - - if (!EFI_ERROR (Status)) { - BootLogo->SetBootLogo (BootLogo, LogoBlt, LogoDestX, LogoDestY, LogoWidth, LogoHeight); - } - FreePool (LogoBlt); - - return Status; -} - -/** - Use SystemTable Conout to turn on video based Simple Text Out consoles. The - Simple Text Out screens will now be synced up with all non video output devices - - @retval EFI_SUCCESS UGA devices are back in text mode and synced up. - -**/ -EFI_STATUS -EFIAPI -BootLogoDisableLogo ( - VOID - ) -{ - - // - // Enable Cursor on Screen - // - gST->ConOut->EnableCursor (gST->ConOut, TRUE); - return EFI_SUCCESS; -} - - -/** - - Update progress bar with title above it. It only works in Graphics mode. - - @param TitleForeground Foreground color for Title. - @param TitleBackground Background color for Title. - @param Title Title above progress bar. - @param ProgressColor Progress bar color. - @param Progress Progress (0-100) - @param PreviousValue The previous value of the progress. - - @retval EFI_STATUS Success update the progress bar - -**/ -EFI_STATUS -EFIAPI -BootLogoUpdateProgress ( - IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground, - IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground, - IN CHAR16 *Title, - IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor, - IN UINTN Progress, - IN UINTN PreviousValue - ) -{ - EFI_STATUS Status; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_UGA_DRAW_PROTOCOL *UgaDraw; - UINT32 SizeOfX; - UINT32 SizeOfY; - UINT32 ColorDepth; - UINT32 RefreshRate; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color; - UINTN BlockHeight; - UINTN BlockWidth; - UINTN BlockNum; - UINTN PosX; - UINTN PosY; - UINTN Index; - - if (Progress > 100) { - return EFI_INVALID_PARAMETER; - } - - UgaDraw = NULL; - Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput); - if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) { - GraphicsOutput = NULL; - - Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiUgaDrawProtocolGuid, (VOID **) &UgaDraw); - if (EFI_ERROR (Status)) { - UgaDraw = NULL; - } - } - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - - SizeOfX = 0; - SizeOfY = 0; - if (GraphicsOutput != NULL) { - SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution; - SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution; - } else if (UgaDraw != NULL) { - Status = UgaDraw->GetMode ( - UgaDraw, - &SizeOfX, - &SizeOfY, - &ColorDepth, - &RefreshRate - ); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - } else { - return EFI_UNSUPPORTED; - } - - BlockWidth = SizeOfX / 100; - BlockHeight = SizeOfY / 50; - - BlockNum = Progress; - - PosX = 0; - PosY = SizeOfY * 48 / 50; - - if (BlockNum == 0) { - // - // Clear progress area - // - SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0); - - if (GraphicsOutput != NULL) { - Status = GraphicsOutput->Blt ( - GraphicsOutput, - &Color, - EfiBltVideoFill, - 0, - 0, - 0, - PosY - EFI_GLYPH_HEIGHT - 1, - SizeOfX, - SizeOfY - (PosY - EFI_GLYPH_HEIGHT - 1), - SizeOfX * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) - ); - } else if (FeaturePcdGet (PcdUgaConsumeSupport)) { - Status = UgaDraw->Blt ( - UgaDraw, - (EFI_UGA_PIXEL *) &Color, - EfiUgaVideoFill, - 0, - 0, - 0, - PosY - EFI_GLYPH_HEIGHT - 1, - SizeOfX, - SizeOfY - (PosY - EFI_GLYPH_HEIGHT - 1), - SizeOfX * sizeof (EFI_UGA_PIXEL) - ); - } else { - return EFI_UNSUPPORTED; - } - } - // - // Show progress by drawing blocks - // - for (Index = PreviousValue; Index < BlockNum; Index++) { - PosX = Index * BlockWidth; - if (GraphicsOutput != NULL) { - Status = GraphicsOutput->Blt ( - GraphicsOutput, - &ProgressColor, - EfiBltVideoFill, - 0, - 0, - PosX, - PosY, - BlockWidth - 1, - BlockHeight, - (BlockWidth) * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) - ); - } else if (FeaturePcdGet (PcdUgaConsumeSupport)) { - Status = UgaDraw->Blt ( - UgaDraw, - (EFI_UGA_PIXEL *) &ProgressColor, - EfiUgaVideoFill, - 0, - 0, - PosX, - PosY, - BlockWidth - 1, - BlockHeight, - (BlockWidth) * sizeof (EFI_UGA_PIXEL) - ); - } else { - return EFI_UNSUPPORTED; - } - } - - PrintXY ( - (SizeOfX - StrLen (Title) * EFI_GLYPH_WIDTH) / 2, - PosY - EFI_GLYPH_HEIGHT - 1, - &TitleForeground, - &TitleBackground, - Title - ); - - return EFI_SUCCESS; -} diff --git a/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf b/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf deleted file mode 100644 index 51e68edfea..0000000000 --- a/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf +++ /dev/null @@ -1,59 +0,0 @@ -## @file -# This library is only intended to be used by PlatformBootManagerLib -# to show progress bar and logo. -# -# Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.
-# This program and the accompanying materials are licensed and made available under -# the terms and conditions of the BSD License that accompanies this distribution. -# The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php. -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = BootLogoLib - FILE_GUID = F5AE5B5C-42E8-4A9B-829D-5B631CD5367A - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = BootLogoLib|DXE_DRIVER UEFI_APPLICATION - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources] - BootLogoLib.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - BaseLib - UefiBootServicesTableLib - MemoryAllocationLib - UefiLib - BaseMemoryLib - DebugLib - PrintLib - PcdLib - DxeServicesLib - ImageDecoderLib - -[Guids] - -[Protocols] - gEfiGraphicsOutputProtocolGuid # PROTOCOL SOMETIMES_CONSUMES - gEfiUgaDrawProtocolGuid |PcdUgaConsumeSupport # PROTOCOL SOMETIMES_CONSUMES - gEfiBootLogoProtocolGuid # PROTOCOL SOMETIMES_CONSUMES - gEfiUserManagerProtocolGuid # PROTOCOL CONSUMES - gEdkiiPlatformLogoProtocolGuid # PROTOCOL CONSUMES - -[FeaturePcd] - gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport diff --git a/MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.c b/MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.c deleted file mode 100644 index 4a6219bbb1..0000000000 --- a/MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.c +++ /dev/null @@ -1,121 +0,0 @@ -/** @file - This library provides image decoding service by managing the different - image decoding libraries. - -Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.
-This program and the accompanying materials are licensed and made available under -the terms and conditions of the BSD License that accompanies this distribution. -The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php. - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include -#include -#include -#include -#include -#include - -typedef struct { - UINT32 Signature; - DECODE_IMAGE Decoder; - LIST_ENTRY Link; -} IMAGE_DECODER_ENTRY; -#define IMAGE_DECODER_ENTRY_SIGNATURE SIGNATURE_32 ('i', 'm', 'g', 'd') -#define IMAGE_DECODER_ENTRY_FROM_LINK(Link) \ - CR (Link, IMAGE_DECODER_ENTRY, Link, IMAGE_DECODER_ENTRY_SIGNATURE) - -LIST_ENTRY mImageDecoderLibDecoders = INITIALIZE_LIST_HEAD_VARIABLE (mImageDecoderLibDecoders); - -/** - Convert a graphics image to a callee allocated GOP blt buffer. - - @param ImageFormat Format of the image file. - @param Image Pointer to image file. - @param ImageSize Number of bytes in Image. - @param GopBlt Buffer containing GOP version of Image. - @param GopBltSize Size of GopBlt in bytes. - @param PixelWidth Width of GopBlt/Image in pixels. - @param PixelHeight Height of GopBlt/Image in pixels. - - @retval EFI_SUCCESS GopBlt and GopBltSize are returned. - @retval EFI_INVALID_PARAMETER GopBlt or GopBltSize is NULL. - @retval EFI_INVALID_PARAMETER Image is NULL or ImageSize is 0. - @retval EFI_UNSUPPORTED Image is not supported. - @retval EFI_OUT_OF_RESOURCES No enough buffer to allocate. - -**/ -EFI_STATUS -EFIAPI -DecodeImage ( - IN IMAGE_FORMAT ImageFormat, - IN UINT8 *Image, - IN UINTN ImageSize, - OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **GopBlt, - OUT UINTN *GopBltSize, - OUT UINTN *PixelWidth, - OUT UINTN *PixelHeight - ) -{ - IMAGE_DECODER_ENTRY *Entry; - LIST_ENTRY *Link; - EFI_STATUS Status; - - if ((GopBlt == NULL) || (GopBltSize == NULL)) { - return EFI_INVALID_PARAMETER; - } - - if ((Image == NULL) || (ImageSize == 0)) { - return EFI_INVALID_PARAMETER; - } - - for ( Link = GetFirstNode (&mImageDecoderLibDecoders) - ; !IsNull (&mImageDecoderLibDecoders, Link) - ; Link = GetNextNode (&mImageDecoderLibDecoders, Link) - ) { - Entry = IMAGE_DECODER_ENTRY_FROM_LINK (Link); - Status = Entry->Decoder (ImageFormat, Image, ImageSize, GopBlt, GopBltSize, PixelWidth, PixelHeight); - if (!EFI_ERROR (Status)) { - break; - } - } - - if (IsNull (&mImageDecoderLibDecoders, Link)) { - return EFI_UNSUPPORTED; - } else { - return EFI_SUCCESS; - } -} - -/** - Register an image decoder. - - @param Decoder An image decoder. - - @retval EFI_SUCCESS The decoder was successfully registered. - @retval EFI_OUT_OF_RESOURCES No enough resource to register the decoder. - -**/ -EFI_STATUS -EFIAPI -RegisterImageDecoder ( - IN DECODE_IMAGE Decoder - ) -{ - IMAGE_DECODER_ENTRY *Entry; - - Entry = AllocatePool (sizeof (IMAGE_DECODER_ENTRY)); - if (Entry == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - Entry->Signature = IMAGE_DECODER_ENTRY_SIGNATURE; - Entry->Decoder = Decoder; - InsertTailList (&mImageDecoderLibDecoders, &Entry->Link); - - return EFI_SUCCESS; -} \ No newline at end of file diff --git a/MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf b/MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf deleted file mode 100644 index 5d2ee7b429..0000000000 --- a/MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf +++ /dev/null @@ -1,42 +0,0 @@ -## @file -# This library provides image decoding service by managing the different -# image decoding libraries. -# -# Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.
-# This program and the accompanying materials are licensed and made available under -# the terms and conditions of the BSD License that accompanies this distribution. -# The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php. -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = ImageDecoderLib - FILE_GUID = 5ACDA5F7-AE20-4A17-90C1-7D087F730202 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = ImageDecoderLib|DXE_DRIVER UEFI_APPLICATION - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources] - ImageDecoderLib.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - BaseLib - MemoryAllocationLib - UefiLib - BaseMemoryLib - DebugLib \ No newline at end of file -- cgit v1.2.3