summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h')
-rw-r--r--EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h b/EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h
new file mode 100644
index 0000000000..e1afa0ef5a
--- /dev/null
+++ b/EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h
@@ -0,0 +1,134 @@
+/*++ @file
+
+Copyright (c) 2006, Tristan Gingold. All rights reserved.<BR>
+Portitions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the
+BSD License which accompanies this distribution. The full text of the
+license may be found at http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _EMU_UGA_IO_H_
+#define _EMU_UGA_IO_H_
+
+#include <Protocol/SimplePointer.h>
+#include <Protocol/SimpleTextIn.h>
+#include <Protocol/SimpleTextInEx.h>
+#include <Protocol/UgaDraw.h>
+
+#define EMU_GRAPHICS_WINDOW_PROTOCOL_GUID \
+ { 0x30FD316A, 0x6728, 0x2E41, { 0xA6, 0x90, 0x0D, 0x13, 0x33, 0xD8, 0xCA, 0xC1 } }
+
+typedef struct _EMU_GRAPHICS_WINDOW_PROTOCOL EMU_GRAPHICS_WINDOW_PROTOCOL;
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_CLOSE)(
+ EMU_GRAPHICS_WINDOW_PROTOCOL *Uga
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_SIZE)(
+ EMU_GRAPHICS_WINDOW_PROTOCOL *Uga,
+ UINT32 Width,
+ UINT32 Height
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_KEY)(
+ EMU_GRAPHICS_WINDOW_PROTOCOL *Uga
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_GET_KEY)(
+ EMU_GRAPHICS_WINDOW_PROTOCOL *Uga,
+ EFI_KEY_DATA *key
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_KEY_SET_STATE) (
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
+ IN EFI_KEY_TOGGLE_STATE *KeyToggleState
+ );
+
+
+typedef
+VOID
+(EFIAPI *EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK) (
+ IN VOID *Context,
+ IN EFI_KEY_DATA *KeyData
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY) (
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
+ IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,
+ IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,
+ IN VOID *Context
+ );
+
+
+typedef struct {
+ UINTN SourceX;
+ UINTN SourceY;
+ UINTN DestinationX;
+ UINTN DestinationY;
+ UINTN Width;
+ UINTN Height;
+ UINTN Delta;
+} EMU_GRAPHICS_WINDOWS__BLT_ARGS;
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_BLT)(
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args
+ );
+
+typedef
+BOOLEAN
+(EFIAPI *EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED) (
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
+ IN EFI_KEY_DATA *KeyData
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_POINTER)(
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE)(
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
+ EFI_SIMPLE_POINTER_STATE *state
+ );
+
+struct _EMU_GRAPHICS_WINDOW_PROTOCOL {
+ EMU_GRAPHICS_WINDOWS_SIZE Size;
+ EMU_GRAPHICS_WINDOWS_CHECK_KEY CheckKey;
+ EMU_GRAPHICS_WINDOWS_KEY_SET_STATE KeySetState;
+ EMU_GRAPHICS_WINDOWS_GET_KEY GetKey;
+ EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY RegisterKeyNotify;
+ EMU_GRAPHICS_WINDOWS_BLT Blt;
+ EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED IsKeyPressed;
+ EMU_GRAPHICS_WINDOWS_CHECK_POINTER CheckPointer;
+ EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE GetPointerState;
+};
+
+
+extern EFI_GUID gEmuGraphicsWindowProtocolGuid;
+
+#endif