/*++ @file Copyright (c) 2006, Tristan Gingold. All rights reserved.
Portitions copyright (c) 2010 - 2011, Apple Inc. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _EMU_UGA_IO_H_ #define _EMU_UGA_IO_H_ #include #include #include #include #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