mirror of https://github.com/acidanthera/audk.git
251 lines
6.5 KiB
C
251 lines
6.5 KiB
C
/*++
|
|
|
|
Copyright (c) 2004 - 2006, 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
|
|
which 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.
|
|
|
|
Module Name:
|
|
|
|
GraphicsLib.h
|
|
|
|
Abstract:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef _EFI_GRAPHICS_LIB_H_
|
|
#define _EFI_GRAPHICS_LIB_H_
|
|
|
|
#include EFI_PROTOCOL_DEFINITION (ConsoleControl)
|
|
#include EFI_PROTOCOL_DEFINITION (FirmwareVolume)
|
|
#include EFI_PROTOCOL_DEFINITION (FirmwareVolume2)
|
|
#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)
|
|
#include EFI_PROTOCOL_DEFINITION (UgaDraw)
|
|
#include EFI_PROTOCOL_DEFINITION (EfiOEMBadging)
|
|
|
|
#include EFI_GUID_DEFINITION (Bmp)
|
|
|
|
EFI_STATUS
|
|
GetGraphicsBitMapFromFV (
|
|
IN EFI_GUID *FileNameGuid,
|
|
OUT VOID **Image,
|
|
OUT UINTN *ImageSize
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Return the graphics image file named FileNameGuid into Image and return it's
|
|
size in ImageSize. All Firmware Volumes (FV) in the system are searched for the
|
|
file name.
|
|
|
|
Arguments:
|
|
|
|
FileNameGuid - File Name of graphics file in the FV(s).
|
|
|
|
Image - Pointer to pointer to return graphics image. If NULL, a
|
|
buffer will be allocated.
|
|
|
|
ImageSize - Size of the graphics Image in bytes. Zero if no image found.
|
|
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - Image and ImageSize are valid.
|
|
EFI_BUFFER_TOO_SMALL - Image not big enough. ImageSize has required size
|
|
EFI_NOT_FOUND - FileNameGuid not found
|
|
|
|
--*/
|
|
;
|
|
|
|
EFI_STATUS
|
|
GetGraphicsBitMapFromFVEx (
|
|
IN EFI_HANDLE ImageHandle,
|
|
IN EFI_GUID *FileNameGuid,
|
|
OUT VOID **Image,
|
|
OUT UINTN *ImageSize
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Return the graphics image file named FileNameGuid into Image and return it's
|
|
size in ImageSize. All Firmware Volumes (FV) in the system are searched for the
|
|
file name.
|
|
|
|
Arguments:
|
|
|
|
ImageHandle - The driver image handle of the caller. The parameter is used to
|
|
optimize the loading of the image file so that the FV from which
|
|
the driver image is loaded will be tried first.
|
|
|
|
FileNameGuid - File Name of graphics file in the FV(s).
|
|
|
|
Image - Pointer to pointer to return graphics image. If NULL, a
|
|
buffer will be allocated.
|
|
|
|
ImageSize - Size of the graphics Image in bytes. Zero if no image found.
|
|
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - Image and ImageSize are valid.
|
|
EFI_BUFFER_TOO_SMALL - Image not big enough. ImageSize has required size
|
|
EFI_NOT_FOUND - FileNameGuid not found
|
|
|
|
--*/
|
|
;
|
|
|
|
|
|
EFI_STATUS
|
|
ConvertBmpToGopBlt (
|
|
IN VOID *BmpImage,
|
|
IN UINTN BmpImageSize,
|
|
IN OUT VOID **GopBlt,
|
|
IN OUT UINTN *GopBltSize,
|
|
OUT UINTN *PixelHeight,
|
|
OUT UINTN *PixelWidth
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Convert a *.BMP graphics image to a GOP/UGA blt buffer. If a NULL Blt buffer
|
|
is passed in a GopBlt buffer will be allocated by this routine. If a GopBlt
|
|
buffer is passed in it will be used if it is big enough.
|
|
|
|
Arguments:
|
|
|
|
BmpImage - Pointer to BMP file
|
|
|
|
BmpImageSize - Number of bytes in BmpImage
|
|
|
|
GopBlt - Buffer containing GOP version of BmpImage.
|
|
|
|
GopBltSize - Size of GopBlt in bytes.
|
|
|
|
PixelHeight - Height of GopBlt/BmpImage in pixels
|
|
|
|
PixelWidth - Width of GopBlt/BmpImage in pixels
|
|
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - GopBlt and GopBltSize are returned.
|
|
EFI_UNSUPPORTED - BmpImage is not a valid *.BMP image
|
|
EFI_BUFFER_TOO_SMALL - The passed in GopBlt buffer is not big enough.
|
|
GopBltSize will contain the required size.
|
|
EFI_OUT_OF_RESOURCES - No enough buffer to allocate
|
|
|
|
--*/
|
|
;
|
|
|
|
EFI_STATUS
|
|
EnableQuietBoot (
|
|
IN EFI_GUID *LogoFile
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Use Console Control to turn off UGA based Simple Text Out consoles from going
|
|
to the UGA device. Put up LogoFile on every UGA device that is a console
|
|
|
|
Arguments:
|
|
|
|
LogoFile - File name of logo to display on the center of the screen.
|
|
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
|
displayed.
|
|
EFI_UNSUPPORTED - Logo not found
|
|
|
|
--*/
|
|
;
|
|
|
|
EFI_STATUS
|
|
EnableQuietBootEx (
|
|
IN EFI_GUID *LogoFile,
|
|
IN EFI_HANDLE ImageHandle
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Use Console Control to turn off UGA based Simple Text Out consoles from going
|
|
to the UGA device. Put up LogoFile on every UGA device that is a console
|
|
|
|
Arguments:
|
|
|
|
LogoFile - File name of logo to display on the center of the screen.
|
|
ImageHandle - The driver image handle of the caller. The parameter is used to
|
|
optimize the loading of the logo file so that the FV from which
|
|
the driver image is loaded will be tried first.
|
|
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
|
displayed.
|
|
EFI_UNSUPPORTED - Logo not found
|
|
|
|
--*/
|
|
;
|
|
|
|
EFI_STATUS
|
|
DisableQuietBoot (
|
|
VOID
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Use Console Control to turn on UGA based Simple Text Out consoles. The UGA
|
|
Simple Text Out screens will now be synced up with all non UGA output devices
|
|
|
|
Arguments:
|
|
|
|
NONE
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - UGA devices are back in text mode and synced up.
|
|
EFI_UNSUPPORTED - Logo not found
|
|
|
|
--*/
|
|
;
|
|
|
|
EFI_STATUS
|
|
LockKeyboards (
|
|
IN CHAR16 *Password
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Use Console Control Protocol to lock the Console In Spliter virtual handle.
|
|
This is the ConInHandle and ConIn handle in the EFI system table. All key
|
|
presses will be ignored until the Password is typed in. The only way to
|
|
disable the password is to type it in to a ConIn device.
|
|
|
|
Arguments:
|
|
Password - Password used to lock ConIn device
|
|
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
|
displayed.
|
|
EFI_UNSUPPORTED - Logo not found
|
|
|
|
--*/
|
|
;
|
|
|
|
#endif
|