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;
}
留言