]> git.proxmox.com Git - mirror_edk2.git/blob - EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h
EmulatorPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / EmulatorPkg / Include / Protocol / EmuGraphicsWindow.h
1 /*++ @file
2
3 Copyright (c) 2006, Tristan Gingold. All rights reserved.<BR>
4 Portitions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef _EMU_UGA_IO_H_
10 #define _EMU_UGA_IO_H_
11
12 #include <Protocol/SimplePointer.h>
13 #include <Protocol/SimpleTextIn.h>
14 #include <Protocol/SimpleTextInEx.h>
15 #include <Protocol/UgaDraw.h>
16
17 #define EMU_GRAPHICS_WINDOW_PROTOCOL_GUID \
18 { 0x30FD316A, 0x6728, 0x2E41, { 0xA6, 0x90, 0x0D, 0x13, 0x33, 0xD8, 0xCA, 0xC1 } }
19
20 typedef struct _EMU_GRAPHICS_WINDOW_PROTOCOL EMU_GRAPHICS_WINDOW_PROTOCOL;
21
22 typedef
23 EFI_STATUS
24 (EFIAPI *EMU_GRAPHICS_WINDOWS_CLOSE)(
25 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga
26 );
27
28 typedef
29 EFI_STATUS
30 (EFIAPI *EMU_GRAPHICS_WINDOWS_SIZE)(
31 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga,
32 UINT32 Width,
33 UINT32 Height
34 );
35
36 typedef
37 EFI_STATUS
38 (EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_KEY)(
39 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga
40 );
41
42 typedef
43 EFI_STATUS
44 (EFIAPI *EMU_GRAPHICS_WINDOWS_GET_KEY)(
45 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga,
46 EFI_KEY_DATA *key
47 );
48
49 typedef
50 EFI_STATUS
51 (EFIAPI *EMU_GRAPHICS_WINDOWS_KEY_SET_STATE) (
52 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
53 IN EFI_KEY_TOGGLE_STATE *KeyToggleState
54 );
55
56
57 typedef
58 VOID
59 (EFIAPI *EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK) (
60 IN VOID *Context,
61 IN EFI_KEY_DATA *KeyData
62 );
63
64 typedef
65 EFI_STATUS
66 (EFIAPI *EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY) (
67 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
68 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,
69 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,
70 IN VOID *Context
71 );
72
73
74 typedef struct {
75 UINTN SourceX;
76 UINTN SourceY;
77 UINTN DestinationX;
78 UINTN DestinationY;
79 UINTN Width;
80 UINTN Height;
81 UINTN Delta;
82 } EMU_GRAPHICS_WINDOWS__BLT_ARGS;
83
84 typedef
85 EFI_STATUS
86 (EFIAPI *EMU_GRAPHICS_WINDOWS_BLT)(
87 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
88 IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
89 IN EFI_UGA_BLT_OPERATION BltOperation,
90 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args
91 );
92
93 typedef
94 BOOLEAN
95 (EFIAPI *EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED) (
96 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
97 IN EFI_KEY_DATA *KeyData
98 );
99
100 typedef
101 EFI_STATUS
102 (EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_POINTER)(
103 EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows
104 );
105
106 typedef
107 EFI_STATUS
108 (EFIAPI *EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE)(
109 EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
110 EFI_SIMPLE_POINTER_STATE *state
111 );
112
113 struct _EMU_GRAPHICS_WINDOW_PROTOCOL {
114 EMU_GRAPHICS_WINDOWS_SIZE Size;
115 EMU_GRAPHICS_WINDOWS_CHECK_KEY CheckKey;
116 EMU_GRAPHICS_WINDOWS_KEY_SET_STATE KeySetState;
117 EMU_GRAPHICS_WINDOWS_GET_KEY GetKey;
118 EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY RegisterKeyNotify;
119 EMU_GRAPHICS_WINDOWS_BLT Blt;
120 EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED IsKeyPressed;
121 EMU_GRAPHICS_WINDOWS_CHECK_POINTER CheckPointer;
122 EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE GetPointerState;
123 };
124
125
126 extern EFI_GUID gEmuGraphicsWindowProtocolGuid;
127
128 #endif