《UEFI内核导读》How to Rotate Screen

本文介绍了在UEFI环境下,当硬件设计导致屏幕物理方向与手持设备方向不一致时,如何通过软件实现屏幕旋转180°。通过修改显示服务函数BLT()为BLTr(),结合矩阵转置算法,实现了不同坐标系统的映射,从而达到屏幕旋转的效果。同时,文章提到了其他角度旋转的实现和一些不受GOP控制的场景,如需要修改ACPI的BGRT表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        之前的文章《UEFI内核导读》Graphics Driver介绍了UEFI环境如何在显示设备上输出字符或图形,Graphics Output protocol为输出提供了最底层的硬件驱动支持。但是有时候我们由于机构或硬件设计的原因需要做一些定制的动作比如:机构设计导致用户手持的方向跟屏幕物理方向有90°、180°或270°偏差怎么办?这个时候就需要对屏幕进行旋转。

   如何旋转屏幕一般是由驱动来实现,在UEFI系统当中就需要由GOP驱动来实现,但是一般来说GOP是由silicon厂商来提供并不会给到ODM厂商修改的机会,虽然说有些硬件平台会在GOP的VBT里面提供旋转的选项,但是有时候并不能完全满足系统设计的要求(比如修改VBT会影响到OS下显卡驱动的行为等等)这个时候我们就需要使用纯软件的行为来从最底层来实现对屏幕的旋转。

   UEFI环境需要用到显示的场景简单来说大概由几个组成:

场景A.POST信息,包括开机时屏幕显示的字符串

场景B.POST Logo,包括开机时屏幕显示的OEM图片

场景C.BIOS Setup,包括BIOS设置界面,图形模式会文本模式

场景D.OS加装界面,包括BGRT logo界面

场景E.UEFI Shell界面&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值