\r
Abstraction of a very simple graphics device.\r
\r
- Copyright (c) 2006, Intel Corporation \r
+ Copyright (c) 2006 - 2008, 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
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: GraphicsOutput.h\r
-\r
**/\r
\r
#ifndef __GRAPHICS_OUTPUT_H__\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE) (\r
+(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE)(\r
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
IN UINT32 ModeNumber,\r
OUT UINTN *SizeOfInfo,\r
OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info\r
- )\r
-;\r
+ );\r
\r
/**\r
Return the current video mode information.\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) (\r
+(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE)(\r
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
IN UINT32 ModeNumber\r
- )\r
-;\r
+ );\r
\r
typedef struct {\r
UINT8 Blue;\r
UINT32 Raw;\r
} EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION;\r
\r
+///\r
+/// actions for BltOperations\r
+///\r
typedef enum {\r
+ ///\r
+ /// 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
EfiBltVideoFill,\r
+ \r
+ ///\r
+ /// 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
EfiBltVideoToBltBuffer,\r
+ \r
+ ///\r
+ /// 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
EfiBltBufferToVideo, \r
+ \r
+ ///\r
+ /// 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
+ /// EfiBltVideoToVideo,\r
+ ///\r
EfiBltVideoToVideo,\r
+ \r
EfiGraphicsOutputBltOperationMax\r
} EFI_GRAPHICS_OUTPUT_BLT_OPERATION;\r
\r
/**\r
- The following table defines actions for BltOperations:\r
-\r
- <B>EfiBltVideoFill</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>EfiBltVideoToBltBuffer</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>EfiBltBufferToVideo</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>EfiBltVideoToVideo</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
+ Blt a rectangle of pixels on the graphics screen. Blt stands for BLock Transfer.\r
+ \r
@param This Protocol instance pointer.\r
@param BltBuffer Buffer containing data to blit into video buffer. This\r
buffer has a size of Width*Height*sizeof(EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT) (\r
+(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT)(\r
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL\r
IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,\r
UINTN FrameBufferSize;\r
} EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE;\r
\r
+///\r
+/// Provides a basic abstraction to set video modes and copy pixels to and from \r
+/// the graphics controller's frame buffer. The linear address of the hardware \r
+/// frame buffer is also exposed so software can write directly to the video hardware.\r
+///\r
struct _EFI_GRAPHICS_OUTPUT_PROTOCOL {\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt;\r
+ ///\r
+ /// Pointer to EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE data.\r
+ ///\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;\r
};\r
\r