GUI 實作 - Lesson 1

 算是達成之前很想要做的一件事,在螢幕畫張圖

目前只做到填顏色而已, 這個code會整片紅色輸出


記得要 build X64 的

build -m EmulatorPkg\Application\DrawAppTest\DrawAppTest.inf -a X64


//

//  DrawAppTest.c

//

#include <Uefi.h>

#include <Library/UefiLib.h>

#include <Library/UefiBootServicesTableLib.h>

#include <Library/MemoryAllocationLib.h>

#include <Protocol/GraphicsOutput.h>

#include <IndustryStandard/Bmp.h>


EFI_STATUS

EFIAPI

UefiMain (

  IN EFI_HANDLE        ImageHandle,

  IN EFI_SYSTEM_TABLE  *SystemTable

  )

{

  EFI_STATUS Status = EFI_SUCCESS;

  

  EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput;

  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;

  

  EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color[4] = {0,0,0xFF,0};

  

  // BltBuffer = AllocateZeroPool(1024*768);

  

  BltBuffer = Color;

  

  Status = gBS->LocateProtocol (&gEfiGraphicsOutputProtocolGuid, NULL, (VOID **)&GraphicsOutput);

  if (EFI_ERROR(Status)) {

    Print(L"Hello world -1 .\n");

    return EFI_SUCCESS;

  }


  Print(L"Hello world -2 .\n");

  GraphicsOutput->Blt(GraphicsOutput, BltBuffer, EfiBltVideoFill, 0, 0, 0, 0, 1024, 768, 0);

  

  gBS->Stall(10*1000*1000);

  

  return EFI_SUCCESS;

}

留言

這個網誌中的熱門文章

如何在VS2022 Community 簡要的設定UDK2018的環境

自製讀取 H 檔案並找出 define 的程式

如何Build UDK2018