A.3.7 GraphicsOutput.c File

Example A-19-Graphics Output Protocol implementation template
/** @file
  <<BriefDescription>>
  <<DetailedDescription>>
  <<Copyright>>
  <<License>>
**/

#include "<<DriverName>>.h"

///
/// Graphics Output Protocol Mode structure
///
GLOBAL_REMOVE_IF_UNREFERENCED
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE g<<DriverName>>GraphicsOutputMode = {
  0,                  // MaxMode
  0,                  // Mode
  NULL,               // Info
  0,                  // SizeOfInfo
  0,                  // FrameBufferBase
  0                   // FrameBufferSize
};

///
/// Graphics Output Protocol instance
///
GLOBAL_REMOVE_IF_UNREFERENCED
EFI_GRAPHICS_OUTPUT_PROTOCOL g<<DriverName>>GraphicsOutput = {
  <<DriverName>>GraphicsOutputQueryMode,
  <<DriverName>>GraphicsOutputSetMode, 
  <<DriverName>>GraphicsOutputBlt,
  &g<<DriverName>>GraphicsOutputMode
};

EFI_STATUS
EFIAPI
  <<DriverName>>GraphicsOutputQueryMode (
  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL          *This,
  IN  UINT32                                ModeNumber,
  OUT UINTN                                 *SizeOfInfo,
  OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  **Info
  )
{
}

EFI_STATUS
EFIAPI
    <<DriverName>>GraphicsOutputSetMode (
  IN EFI_GRAPHICS_OUTPUT_PROTOCOL           *This,
  IN UINT32                                 ModeNumber
  )
{
}

EFI_STATUS
EFIAPI
    <<DriverName>>GraphicsOutputBlt (
  IN EFI_GRAPHICS_OUTPUT_PROTOCOL           *This,
  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL          *BltBuffer,    OPTIONAL
  IN EFI_GRAPHICS_OUTPUT_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
  )
{
}