EmuGraphicsWindow.h 3.4 KB

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