我试图使用UEFI在屏幕上显示某些内容。EFI_GRAPHICS_OUTPUT_PROTOCOL Blt不会执行任何操作
几乎所有有UEFI的PC都可以很好的使用framebuffer。 但一台电脑有旧的UEFI和我在EFI_GRAPHICS_OUTPUT_PROTOCOL使用BLT函数画。(可能是因为PC的IGP没有UEFI模块..)
但每当我尝试它,它不会做任何事情。 我在VMware中尝试过同样的事情,但它也不起作用。
这是我试过的。
EFI_GRAPHICS_OUTPUT_BLT_PIXEL p;
p.Red = 255;
p.Green = 0;
p.Blue = 0;
EFI_STATUS status = prot->Blt(prot, &p, EfiBltVideoFill, 0, 0, 0, 0, width, height, 0);
注意:prot是EFI_GRAPHICS_OUTPUT_PROTOCOL的实例。
我GOOGLE了,我无法找到任何与参数的问题,我检查了状态变量,它说EFI_SUCCESS。
那东西在整个屏幕上绘制红色像素,对吧? 但它没有在屏幕上绘制任何东西。
我在framebuffer上画了一些东西后尝试了这个(当然,它在VMware上运行得非常好) 但我在屏幕上看不到任何改变。甚至没有黑屏或其他东西。我能看到的是我用framebuffer绘制的东西。
我做错了什么?
当然,我还没有使用ExitBootServices()。