2 Library for performing UEFI GOP Blt operations on a framebuffer
4 Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials are licensed and made available
7 under the terms and conditions of the BSD License which accompanies this
8 distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
17 #ifndef __FRAMEBUFFER_BLT_LIB__
18 #define __FRAMEBUFFER_BLT_LIB__
20 #include <Protocol/GraphicsOutput.h>
23 // Opaque structure for the frame buffer configure.
25 typedef struct FRAME_BUFFER_CONFIGURE FRAME_BUFFER_CONFIGURE
;
28 Create the configuration for a video frame buffer.
30 The configuration is returned in the caller provided buffer.
32 @param[in] FrameBuffer Pointer to the start of the frame buffer.
33 @param[in] FrameBufferInfo Describes the frame buffer characteristics.
34 @param[in,out] Configure The created configuration information.
35 @param[in,out] ConfigureSize Size of the configuration information.
37 @retval RETURN_SUCCESS The configuration was successful created.
38 @retval RETURN_BUFFER_TOO_SMALL The Configure is to too small. The required
39 size is returned in ConfigureSize.
40 @retval RETURN_UNSUPPORTED The requested mode is not supported by
45 FrameBufferBltConfigure (
47 IN EFI_GRAPHICS_OUTPUT_MODE_INFORMATION
*FrameBufferInfo
,
48 IN OUT FRAME_BUFFER_CONFIGURE
*Configure
,
49 IN OUT UINTN
*ConfigureSize
53 Performs a UEFI Graphics Output Protocol Blt operation.
55 @param[in] Configure Pointer to a configuration which was successfully
56 created by FrameBufferBltConfigure ().
57 @param[in,out] BltBuffer The data to transfer to screen.
58 @param[in] BltOperation The operation to perform.
59 @param[in] SourceX The X coordinate of the source for BltOperation.
60 @param[in] SourceY The Y coordinate of the source for BltOperation.
61 @param[in] DestinationX The X coordinate of the destination for
63 @param[in] DestinationY The Y coordinate of the destination for
65 @param[in] Width The width of a rectangle in the blt rectangle
67 @param[in] Height The height of a rectangle in the blt rectangle
69 @param[in] Delta Not used for EfiBltVideoFill and
70 EfiBltVideoToVideo operation. If a Delta of 0
71 is used, the entire BltBuffer will be operated
72 on. If a subrectangle of the BltBuffer is
73 used, then Delta represents the number of
74 bytes in a row of the BltBuffer.
76 @retval RETURN_INVALID_PARAMETER Invalid parameter were passed in.
77 @retval RETURN_SUCCESS The Blt operation was performed successfully.
82 IN FRAME_BUFFER_CONFIGURE
*Configure
,
83 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL
*BltBuffer
, OPTIONAL
84 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation
,
87 IN UINTN DestinationX
,
88 IN UINTN DestinationY
,