summaryrefslogtreecommitdiff
path: root/Include/Protocol/UgaDraw.h
blob: 5a046aa8f3c46663821bff584e98f170858dc2b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************

//**********************************************************************
// $Header: /Alaska/BIN/Core/Include/Protocol/UgaDraw.h 3     12/20/06 1:46p Felixp $
//
// $Revision: 3 $
//
// $Date: 12/20/06 1:46p $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Core/Include/Protocol/UgaDraw.h $
// 
// 3     12/20/06 1:46p Felixp
// Updated to co-exist with Graphics Output Protocol header
// 
// 2     3/13/06 1:40a Felixp
// 
// 1     1/28/05 12:44p Felixp
// 
// 2     1/18/05 3:22p Felixp
// PrintDebugMessage renamed to Trace
// 
// 1     12/23/04 9:41a Felixp
// 
// 1     11/08/04 1:41p Felixp
// 
// 3     11/05/04 6:02p Robert
// 
// 2     11/05/04 5:40p Robert
// 
// 1     11/05/04 5:34p Robert
// 
//**********************************************************************
//<AMI_FHDR_START>
//
// Name: UgaDraw_h
//
// Description:	
//
//<AMI_FHDR_END>
//**********************************************************************
#ifndef __UGA_DRAW_PROTOCOL_H__
#define __UGA_DRAW_PROTOCOL_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <EFI.h>

#define EFI_UGA_DRAW_PROTOCOL_GUID \
		{ 0x982c298b, 0xf4fa, 0x41cb, 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 }

GUID_VARIABLE_DECLARATION(gEfiUgaDrawProtocolGuid,EFI_UGA_DRAW_PROTOCOL_GUID);

#ifndef GUID_VARIABLE_DEFINITION
#include <Protocol/GraphicsOutput.h>

typedef struct _EFI_UGA_DRAW_PROTOCOL EFI_UGA_DRAW_PROTOCOL;


//=============================================================================
// Structure Definitions

typedef EFI_GRAPHICS_OUTPUT_BLT_PIXEL EFI_UGA_PIXEL;

typedef enum {
	EfiUgaVideoFill,
	EfiUgaVideoToBltBuffer,
	EfiUgaBltBufferToVideo,
	EfiUgaVideoToVideo,
	EfiUgaBltMax
	} EFI_UGA_BLT_OPERATION;

//=============================================================================
// Protocol typedefs

typedef EFI_STATUS (EFIAPI *EFI_UGA_DRAW_PROTOCOL_GET_MODE) (
			IN EFI_UGA_DRAW_PROTOCOL *This,
			OUT UINT32 *HorizontalResolution,
			OUT UINT32 *VerticalResolution,
			OUT UINT32 *ColorDepth,
			OUT UINT32 *RefreshRate
			);


typedef EFI_STATUS (EFIAPI *EFI_UGA_DRAW_PROTOCOL_SET_MODE) (
			IN EFI_UGA_DRAW_PROTOCOL *This,
			IN UINT32 HorizontalResolution,
			IN UINT32 VerticalResolution,
			IN UINT32 ColorDepth,
			IN UINT32 RefreshRate
			);


typedef EFI_STATUS (EFIAPI *EFI_UGA_DRAW_PROTOCOL_BLT) (
			IN EFI_UGA_DRAW_PROTOCOL *This,
			IN OUT EFI_UGA_PIXEL *BltBuffer, OPTIONAL
			IN EFI_UGA_BLT_OPERATION BltOperation,
			IN UINTN SourceX,
			IN UINTN SourceY,
			IN UINTN DestinationX,
			IN UINTN DestinationY,
			IN UINTN Width,
			IN UINTN Height,
			IN UINTN Delta OPTIONAL
			);

typedef struct _EFI_UGA_DRAW_PROTOCOL {
	EFI_UGA_DRAW_PROTOCOL_GET_MODE GetMode;
	EFI_UGA_DRAW_PROTOCOL_SET_MODE SetMode;
	EFI_UGA_DRAW_PROTOCOL_BLT Blt;
	} EFI_UGA_DRAW_PROTOCOL;

/****** DO NOT WRITE BELOW THIS LINE *******/
#endif // #ifndef GUID_VARIABLE_DEFINITION
#ifdef __cplusplus
}
#endif
#endif

//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************