+++ /dev/null
-/** @file\r
- UGA Draw protocol from the EFI 1.1 specification.\r
-\r
- Abstraction of a very simple graphics device.\r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: UgaDraw.h\r
-\r
-**/\r
-\r
-#ifndef __UGA_DRAW_H__\r
-#define __UGA_DRAW_H__\r
-\r
-#define EFI_UGA_DRAW_PROTOCOL_GUID \\r
- { \\r
- 0x982c298b, 0xf4fa, 0x41cb, {0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 } \\r
- }\r
-\r
-typedef struct _EFI_UGA_DRAW_PROTOCOL EFI_UGA_DRAW_PROTOCOL;\r
-\r
-/**\r
- Return the current video mode information.\r
-\r
- @param This Protocol instance pointer.\r
- @param HorizontalResolution Current video horizontal resolution in pixels\r
- @param VerticalResolution Current video vertical resolution in pixels\r
- @param ColorDepth Current video color depth in bits per pixel\r
- @param RefreshRate Current video refresh rate in Hz.\r
-\r
- @retval EFI_SUCCESS Mode information returned.\r
- @retval EFI_NOT_STARTED Video display is not initialized. Call SetMode ()\r
- @retval EFI_INVALID_PARAMETER One of the input args was NULL.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UGA_DRAW_PROTOCOL_GET_MODE) (\r
- IN EFI_UGA_DRAW_PROTOCOL *This,\r
- OUT UINT32 *HorizontalResolution,\r
- OUT UINT32 *VerticalResolution,\r
- OUT UINT32 *ColorDepth,\r
- OUT UINT32 *RefreshRate\r
- )\r
-;\r
-\r
-/**\r
- Return the current video mode information.\r
-\r
- @param This Protocol instance pointer.\r
- @param HorizontalResolution Current video horizontal resolution in pixels\r
- @param VerticalResolution Current video vertical resolution in pixels\r
- @param ColorDepth Current video color depth in bits per pixel\r
- @param RefreshRate Current video refresh rate in Hz.\r
-\r
- @retval EFI_SUCCESS Mode information returned.\r
- @retval EFI_NOT_STARTED Video display is not initialized. Call SetMode ()\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UGA_DRAW_PROTOCOL_SET_MODE) (\r
- IN EFI_UGA_DRAW_PROTOCOL *This,\r
- IN UINT32 HorizontalResolution,\r
- IN UINT32 VerticalResolution,\r
- IN UINT32 ColorDepth,\r
- IN UINT32 RefreshRate\r
- )\r
-;\r
-\r
-typedef struct {\r
- UINT8 Blue;\r
- UINT8 Green;\r
- UINT8 Red;\r
- UINT8 Reserved;\r
-} EFI_UGA_PIXEL;\r
-\r
-typedef union {\r
- EFI_UGA_PIXEL Pixel;\r
- UINT32 Raw;\r
-} EFI_UGA_PIXEL_UNION;\r
-\r
-typedef enum {\r
- EfiUgaVideoFill,\r
- EfiUgaVideoToBltBuffer,\r
- EfiUgaBltBufferToVideo,\r
- EfiUgaVideoToVideo,\r
- EfiUgaBltMax\r
-} EFI_UGA_BLT_OPERATION;\r
-\r
-/**\r
- Type specifying a pointer to a function to perform an UGA Blt operation.\r
-\r
- The following table defines actions for BltOperations:\r
-\r
- <B>EfiUgaVideoFill</B> - Write data from the BltBuffer pixel (SourceX, SourceY) \r
- directly to every pixel of the video display rectangle \r
- (DestinationX, DestinationY) (DestinationX + Width, DestinationY + Height). \r
- Only one pixel will be used from the BltBuffer. Delta is NOT used.\r
-\r
- <B>EfiUgaVideoToBltBuffer</B> - Read data from the video display rectangle \r
- (SourceX, SourceY) (SourceX + Width, SourceY + Height) and place it in \r
- the BltBuffer rectangle (DestinationX, DestinationY ) \r
- (DestinationX + Width, DestinationY + Height). If DestinationX or \r
- DestinationY is not zero then Delta must be set to the length in bytes \r
- of a row in the BltBuffer.\r
-\r
- <B>EfiUgaBltBufferToVideo</B> - Write data from the BltBuffer rectangle \r
- (SourceX, SourceY) (SourceX + Width, SourceY + Height) directly to the \r
- video display rectangle (DestinationX, DestinationY) \r
- (DestinationX + Width, DestinationY + Height). If SourceX or SourceY is \r
- not zero then Delta must be set to the length in bytes of a row in the \r
- BltBuffer.\r
-\r
- <B>EfiUgaVideoToVideo</B> - Copy from the video display rectangle (SourceX, SourceY)\r
- (SourceX + Width, SourceY + Height) .to the video display rectangle \r
- (DestinationX, DestinationY) (DestinationX + Width, DestinationY + Height). \r
- The BltBuffer and Delta are not used in this mode.\r
-\r
-\r
- @param[in] This - Protocol instance pointer.\r
- @param[in] BltBuffer - Buffer containing data to blit into video buffer. This \r
- buffer has a size of Width*Height*sizeof(EFI_UGA_PIXEL)\r
- @param[in] BltOperation - Operation to perform on BlitBuffer and video memory\r
- @param[in] SourceX - X coordinate of source for the BltBuffer.\r
- @param[in] SourceY - Y coordinate of source for the BltBuffer.\r
- @param[in] DestinationX - X coordinate of destination for the BltBuffer.\r
- @param[in] DestinationY - Y coordinate of destination for the BltBuffer.\r
- @param[in] Width - Width of rectangle in BltBuffer in pixels.\r
- @param[in] Height - Hight of rectangle in BltBuffer in pixels.\r
- @param[in] Delta - OPTIONAL\r
- \r
- @retval EFI_SUCCESS - The Blt operation completed.\r
- @retval EFI_INVALID_PARAMETER - BltOperation is not valid.\r
- @retval EFI_DEVICE_ERROR - A hardware error occured writting to the video buffer.\r
-\r
---*/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UGA_DRAW_PROTOCOL_BLT) (\r
- IN EFI_UGA_DRAW_PROTOCOL * This,\r
- IN EFI_UGA_PIXEL * BltBuffer, OPTIONAL\r
- IN EFI_UGA_BLT_OPERATION BltOperation,\r
- IN UINTN SourceX,\r
- IN UINTN SourceY,\r
- IN UINTN DestinationX,\r
- IN UINTN DestinationY,\r
- IN UINTN Width,\r
- IN UINTN Height,\r
- IN UINTN Delta OPTIONAL\r
- );\r
-\r
-struct _EFI_UGA_DRAW_PROTOCOL {\r
- EFI_UGA_DRAW_PROTOCOL_GET_MODE GetMode;\r
- EFI_UGA_DRAW_PROTOCOL_SET_MODE SetMode;\r
- EFI_UGA_DRAW_PROTOCOL_BLT Blt;\r
-};\r
-\r
-extern EFI_GUID gEfiUgaDrawProtocolGuid;\r
-\r
-#endif\r