]> git.proxmox.com Git - mirror_edk2.git/blob - OptionRomPkg/Include/Library/BltLib.h
9e519b17cdabf7f2a6880b432bba79a791d6f160
[mirror_edk2.git] / OptionRomPkg / Include / Library / BltLib.h
1 /** @file
2 Library for performing video blt operations
3
4 Copyright (c) 2009 - 2011, Intel Corporation<BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef __BLT_LIB__
16 #define __BLT_LIB__
17
18 #include <Protocol/GraphicsOutput.h>
19
20
21 /**
22 Configure the BltLib for a frame-buffer
23
24 @param[in] FrameBuffer Pointer to the start of the frame buffer
25 @param[in] FrameBufferInfo Describes the frame buffer characteristics
26
27 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
28 @retval EFI_SUCCESS - Blt operation success
29
30 **/
31 EFI_STATUS
32 EFIAPI
33 BltLibConfigure (
34 IN VOID *FrameBuffer,
35 IN EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *FrameBufferInfo
36 );
37
38
39 /**
40 Performs a UEFI Graphics Output Protocol Blt operation.
41
42 @param[in,out] BltBuffer - The data to transfer to screen
43 @param[in] BltOperation - The operation to perform
44 @param[in] SourceX - The X coordinate of the source for BltOperation
45 @param[in] SourceY - The Y coordinate of the source for BltOperation
46 @param[in] DestinationX - The X coordinate of the destination for BltOperation
47 @param[in] DestinationY - The Y coordinate of the destination for BltOperation
48 @param[in] Width - The width of a rectangle in the blt rectangle in pixels
49 @param[in] Height - The height of a rectangle in the blt rectangle in pixels
50 @param[in] Delta - Not used for EfiBltVideoFill and EfiBltVideoToVideo operation.
51 If a Delta of 0 is used, the entire BltBuffer will be operated on.
52 If a subrectangle of the BltBuffer is used, then Delta represents
53 the number of bytes in a row of the BltBuffer.
54
55 @retval EFI_DEVICE_ERROR - A hardware error occured
56 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
57 @retval EFI_SUCCESS - Blt operation success
58
59 **/
60 EFI_STATUS
61 EFIAPI
62 BltLibGopBlt (
63 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL
64 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
65 IN UINTN SourceX,
66 IN UINTN SourceY,
67 IN UINTN DestinationX,
68 IN UINTN DestinationY,
69 IN UINTN Width,
70 IN UINTN Height,
71 IN UINTN Delta
72 );
73
74
75 /**
76 Performs a UEFI Graphics Output Protocol Blt Video Fill.
77
78 @param[in] Color Color to fill the region with
79 @param[in] DestinationX X location to start fill operation
80 @param[in] DestinationY Y location to start fill operation
81 @param[in] Width Width (in pixels) to fill
82 @param[in] Height Height to fill
83
84 @retval EFI_DEVICE_ERROR - A hardware error occured
85 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
86 @retval EFI_SUCCESS - Blt operation success
87
88 **/
89 EFI_STATUS
90 EFIAPI
91 BltLibVideoFill (
92 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Color,
93 IN UINTN DestinationX,
94 IN UINTN DestinationY,
95 IN UINTN Width,
96 IN UINTN Height
97 );
98
99
100 /**
101 Performs a UEFI Graphics Output Protocol Blt Video to Buffer operation.
102
103 @param[out] BltBuffer Output buffer for pixel color data
104 @param[in] SourceX X location within video
105 @param[in] SourceY Y location within video
106 @param[in] Width Width (in pixels)
107 @param[in] Height Height
108
109 @retval EFI_DEVICE_ERROR - A hardware error occured
110 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
111 @retval EFI_SUCCESS - Blt operation success
112
113 **/
114 EFI_STATUS
115 EFIAPI
116 BltLibVideoToBltBuffer (
117 OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
118 IN UINTN SourceX,
119 IN UINTN SourceY,
120 IN UINTN Width,
121 IN UINTN Height
122 );
123
124
125 /**
126 Performs a UEFI Graphics Output Protocol Blt Video to Buffer operation
127 with extended parameters.
128
129 @param[out] BltBuffer Output buffer for pixel color data
130 @param[in] SourceX X location within video
131 @param[in] SourceY Y location within video
132 @param[in] DestinationX X location within BltBuffer
133 @param[in] DestinationY Y location within BltBuffer
134 @param[in] Width Width (in pixels)
135 @param[in] Height Height
136 @param[in] Delta Number of bytes in a row of BltBuffer
137
138 @retval EFI_DEVICE_ERROR - A hardware error occured
139 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
140 @retval EFI_SUCCESS - Blt operation success
141
142 **/
143 EFI_STATUS
144 EFIAPI
145 BltLibVideoToBltBufferEx (
146 OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
147 IN UINTN SourceX,
148 IN UINTN SourceY,
149 IN UINTN DestinationX,
150 IN UINTN DestinationY,
151 IN UINTN Width,
152 IN UINTN Height,
153 IN UINTN Delta
154 );
155
156
157 /**
158 Performs a UEFI Graphics Output Protocol Blt Buffer to Video operation.
159
160 @param[in] BltBuffer Output buffer for pixel color data
161 @param[in] DestinationX X location within video
162 @param[in] DestinationY Y location within video
163 @param[in] Width Width (in pixels)
164 @param[in] Height Height
165
166 @retval EFI_DEVICE_ERROR - A hardware error occured
167 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
168 @retval EFI_SUCCESS - Blt operation success
169
170 **/
171 EFI_STATUS
172 EFIAPI
173 BltLibBufferToVideo (
174 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
175 IN UINTN DestinationX,
176 IN UINTN DestinationY,
177 IN UINTN Width,
178 IN UINTN Height
179 );
180
181
182 /**
183 Performs a UEFI Graphics Output Protocol Blt Buffer to Video operation
184 with extended parameters.
185
186 @param[in] BltBuffer Output buffer for pixel color data
187 @param[in] SourceX X location within BltBuffer
188 @param[in] SourceY Y location within BltBuffer
189 @param[in] DestinationX X location within video
190 @param[in] DestinationY Y location within video
191 @param[in] Width Width (in pixels)
192 @param[in] Height Height
193 @param[in] Delta Number of bytes in a row of BltBuffer
194
195 @retval EFI_DEVICE_ERROR - A hardware error occured
196 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
197 @retval EFI_SUCCESS - Blt operation success
198
199 **/
200 EFI_STATUS
201 EFIAPI
202 BltLibBufferToVideoEx (
203 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
204 IN UINTN SourceX,
205 IN UINTN SourceY,
206 IN UINTN DestinationX,
207 IN UINTN DestinationY,
208 IN UINTN Width,
209 IN UINTN Height,
210 IN UINTN Delta
211 );
212
213
214 /**
215 Performs a UEFI Graphics Output Protocol Blt Video to Video operation
216
217 @param[in] SourceX X location within video
218 @param[in] SourceY Y location within video
219 @param[in] DestinationX X location within video
220 @param[in] DestinationY Y location within video
221 @param[in] Width Width (in pixels)
222 @param[in] Height Height
223
224 @retval EFI_DEVICE_ERROR - A hardware error occured
225 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
226 @retval EFI_SUCCESS - Blt operation success
227
228 **/
229 EFI_STATUS
230 EFIAPI
231 BltLibVideoToVideo (
232 IN UINTN SourceX,
233 IN UINTN SourceY,
234 IN UINTN DestinationX,
235 IN UINTN DestinationY,
236 IN UINTN Width,
237 IN UINTN Height
238 );
239
240
241 /**
242 Returns the sizes related to the video device
243
244 @param[out] Width Width (in pixels)
245 @param[out] Height Height (in pixels)
246
247 @retval EFI_INVALID_PARAMETER - Invalid parameter passed in
248 @retval EFI_SUCCESS - The sizes were returned
249
250 **/
251 EFI_STATUS
252 EFIAPI
253 BltLibGetSizes (
254 OUT UINTN *Width, OPTIONAL
255 OUT UINTN *Height OPTIONAL
256 );
257
258 #endif
259