summaryrefslogtreecommitdiff
path: root/EDK/Foundation/Efi/Protocol/HiiImage/HiiImage.h
diff options
context:
space:
mode:
Diffstat (limited to 'EDK/Foundation/Efi/Protocol/HiiImage/HiiImage.h')
-rw-r--r--EDK/Foundation/Efi/Protocol/HiiImage/HiiImage.h256
1 files changed, 256 insertions, 0 deletions
diff --git a/EDK/Foundation/Efi/Protocol/HiiImage/HiiImage.h b/EDK/Foundation/Efi/Protocol/HiiImage/HiiImage.h
new file mode 100644
index 0000000..b31cfaa
--- /dev/null
+++ b/EDK/Foundation/Efi/Protocol/HiiImage/HiiImage.h
@@ -0,0 +1,256 @@
+/*++
+
+Copyright (c) 2007 - 2008, 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:
+
+ HiiImage.h
+
+Abstract:
+
+ EFI_HII_IMAGE_PROTOCOL from UEFI 2.1 specification.
+
+ This protocol provides access to images in the images database.
+
+Revision History
+
+--*/
+
+#ifndef __EFI_HII_IMAGE_PROTOCOL_H__
+#define __EFI_HII_IMAGE_PROTOCOL_H__
+
+#include "EfiHii.h"
+#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)
+
+//
+// Global ID for the Hii Image Protocol.
+//
+#define EFI_HII_IMAGE_PROTOCOL_GUID \
+ { \
+ 0x31a6406a, 0x6bdf, 0x4e46, 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x9, 0x20 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_HII_IMAGE_PROTOCOL);
+
+typedef UINT32 EFI_HII_DRAW_FLAGS;
+
+typedef struct _EFI_IMAGE_INPUT {
+ UINT32 Flags;
+ UINT16 Width;
+ UINT16 Height;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Bitmap;
+} EFI_IMAGE_INPUT;
+
+#define EFI_IMAGE_TRANSPARENT 0x00000001
+
+typedef struct _EFI_IMAGE_OUTPUT {
+ UINT16 Width;
+ UINT16 Height;
+ union {
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Bitmap;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *Screen;
+ } Image;
+} EFI_IMAGE_OUTPUT;
+
+#define EFI_HII_DRAW_FLAG_CLIP 0x00000001
+#define EFI_HII_DRAW_FLAG_TRANSPARENT 0x00000030
+#define EFI_HII_DRAW_FLAG_DEFAULT 0x00000000
+#define EFI_HII_DRAW_FLAG_FORCE_TRANS 0x00000010
+#define EFI_HII_DRAW_FLAG_FORCE_OPAQUE 0x00000020
+#define EFI_HII_DIRECT_TO_SCREEN 0x00000080
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_NEW_IMAGE) (
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_IMAGE_ID *ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
+ )
+/*++
+
+ Routine Description:
+ This function adds the image Image to the group of images owned by PackageList, and returns
+ a new image identifier (ImageId).
+
+ Arguments:
+ This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
+ PackageList - Handle of the package list where this image will be added.
+ ImageId - On return, contains the new image id, which is unique within PackageList.
+ Image - Points to the image.
+
+ Returns:
+ EFI_SUCCESS - The new image was added successfully.
+ EFI_NOT_FOUND - The specified PackageList could not be found in database.
+ EFI_OUT_OF_RESOURCES - Could not add the image due to lack of resources.
+ EFI_INVALID_PARAMETER - Image is NULL or ImageId is NULL.
+
+--*/
+;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_GET_IMAGE) (
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image
+ )
+/*++
+
+ Routine Description:
+ This function retrieves the image specified by ImageId which is associated with
+ the specified PackageList and copies it into the buffer specified by Image.
+
+ Arguments:
+ This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
+ PackageList - Handle of the package list where this image will be searched.
+ ImageId - The image¡¯s id,, which is unique within PackageList.
+ Image - Points to the image.
+
+ Returns:
+ EFI_SUCCESS - The new image was returned successfully.
+ EFI_NOT_FOUND - The image specified by ImageId is not available.
+ The specified PackageList is not in the database.
+ EFI_INVALID_PARAMETER - The Image or ImageSize was NULL.
+ EFI_OUT_OF_RESOURCES - The bitmap could not be retrieved because there was not
+ enough memory.
+
+--*/
+;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_SET_IMAGE) (
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
+ )
+/*++
+
+ Routine Description:
+ This function updates the image specified by ImageId in the specified PackageListHandle to
+ the image specified by Image.
+
+ Arguments:
+ This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
+ PackageList - The package list containing the images.
+ ImageId - The image¡¯s id,, which is unique within PackageList.
+ Image - Points to the image.
+
+ Returns:
+ EFI_SUCCESS - The new image was updated successfully.
+ EFI_NOT_FOUND - The image specified by ImageId is not in the database.
+ The specified PackageList is not in the database.
+ EFI_INVALID_PARAMETER - The Image was NULL.
+
+--*/
+;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_DRAW_IMAGE) (
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN CONST EFI_IMAGE_INPUT *Image,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
+ )
+/*++
+
+ Routine Description:
+ This function renders an image to a bitmap or the screen using the specified
+ color and options. It draws the image on an existing bitmap, allocates a new
+ bitmap or uses the screen. The images can be clipped.
+
+ Arguments:
+ This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
+ Flags - Describes how the image is to be drawn.
+ Image - Points to the image to be displayed.
+ Blt - If this points to a non-NULL on entry, this points to the
+ image, which is Width pixels wide and Height pixels high.
+ The image will be drawn onto this image and
+ EFI_HII_DRAW_FLAG_CLIP is implied. If this points to a
+ NULL on entry, then a buffer will be allocated to hold
+ the generated image and the pointer updated on exit. It
+ is the caller¡¯s responsibility to free this buffer.
+ BltX, BltY - Specifies the offset from the left and top edge of the
+ output image of the first pixel in the image.
+
+ Returns:
+ EFI_SUCCESS - The image was successfully drawn.
+ EFI_OUT_OF_RESOURCES - Unable to allocate an output buffer for Blt.
+ EFI_INVALID_PARAMETER - The Image or Blt was NULL.
+ EFI_INVALID_PARAMETER - Any combination of Flags is invalid.
+
+--*/
+;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_DRAW_IMAGE_ID) (
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
+ )
+
+/*++
+
+ Routine Description:
+ This function renders an image to a bitmap or the screen using the specified
+ color and options. It draws the image on an existing bitmap, allocates a new
+ bitmap or uses the screen. The images can be clipped.
+
+ Arguments:
+ This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
+ Flags - Describes how the image is to be drawn.
+ PackageList - The package list in the HII database to search for the
+ specified image.
+ ImageId - The image's id, which is unique within PackageList.
+ Blt - If this points to a non-NULL on entry, this points to the
+ image, which is Width pixels wide and Height pixels high.
+ The image will be drawn onto this image and
+ EFI_HII_DRAW_FLAG_CLIP is implied. If this points to a
+ NULL on entry, then a buffer will be allocated to hold
+ the generated image and the pointer updated on exit. It
+ is the caller¡¯s responsibility to free this buffer.
+ BltX, BltY - Specifies the offset from the left and top edge of the
+ output image of the first pixel in the image.
+
+ Returns:
+ EFI_SUCCESS - The image was successfully drawn.
+ EFI_OUT_OF_RESOURCES - Unable to allocate an output buffer for Blt.
+ EFI_NOT_FOUND - The image specified by ImageId is not in the database.
+ The specified PackageList is not in the database.
+ EFI_INVALID_PARAMETER - The Blt was NULL.
+
+--*/
+;
+
+//
+// Interface structure for the EFI_HII_IMAGE_PROTOCOL
+//
+typedef struct _EFI_HII_IMAGE_PROTOCOL {
+ EFI_HII_NEW_IMAGE NewImage;
+ EFI_HII_GET_IMAGE GetImage;
+ EFI_HII_SET_IMAGE SetImage;
+ EFI_HII_DRAW_IMAGE DrawImage;
+ EFI_HII_DRAW_IMAGE_ID DrawImageId;
+} EFI_HII_IMAGE_PROTOCOL;
+
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+
+#endif