鼠标特效代码 鼠标脚本怎么制作

请关注微信微信官方账号:“固件C字营”

前面的视频展示了如何在UEFI Shell环境下使用EFI_SIMPLE_POINTER_PROTOCOL获取鼠标状态,绘制鼠标光标的视频(UEFI环境使用鼠标,动态绘制鼠标图形演示)。这一次,我们来分享一下怎么做。首先,必要的储备知识包括但不限于。

UEFI开发环境建立UEFI APP/Driver开发基本知识显示的基本原理,比如像素,分辨率等EFI_SIMPLE_POINTER_PROTOCOLEFI_GRAPHICS_OUTPUT_PROTOCOLUEFI Event1.鼠标类设备定义。

首先,我们需要定义一个鼠标类,如下所示。它包含基本的成员变量和方法。所有成员变量和方法都是公共的。除非你非常清楚自己在做什么,否则不建议直接访问内部变量,而是使用五个公共方法。

struct _ EFI _ MOUSE { UINTN graphic width;UINTN图形亮度;uint 32 ScreenHorizontalResolution;uint 32 ScreenVerticalResolution;UINT64分辨率x;UINT64分辨率;UINT64分辨率z;UINTN CurrentX,CurrentY,CurrentZUINTN LastX,LastY,LastZUINTN LeftButton,RightButtonINT32相对运动x,相对运动,相对运动z;UINTN FreshUINTN风味;VOID * CbContextEFI _ EVENT EventTimerEFI _ GRAPHICS _ OUTPUT _ BLT _ PIXEL * Graphic;EFI _ GRAPHICS _ OUTPUT _ BLT _ PIXEL * Cache;EFI _ SIMPLE _ POINTER _ PROTOCOL * SimplePoint;EFI _ GRAPHICS _ OUTPUT _ PROTOCOL * GRAPHICS out;//公共方法set _ volatile setvolatile//设置鼠标样式GET _ FLOUR GetFlour//获取当前鼠标样式CALL_BACK回调;//回调函数DRAW Draw//画图销毁销毁;//退出并销毁数据};2.鼠标的样式。这里有三种预定义的类型,即蓝色小方块、绿色小方块和红色小方块。鼠标在不同状态下可以自动改变风格。例如,当点击鼠标左键和右键时,可以显示不同的样式。

typedef枚举MOUSE _ FLOR { MOUSE _ FLOR _ RECTANGLE _ BLUE,MOUSE_FLOR_RECTANGLE_GREEN,MOUSE_FLOR_RECTANGLE_RED,MOUSE _ FLOR _ MAX };3.如何使用。实际操作很简单。只需要如下三行代码:第3行定义鼠标设备,第4行创建并初始化鼠标设备的内部数据,第7行必须放在while(1)循环中。这样,你就可以在屏幕上看到一个蓝色19×19大小的蓝色小方块(默认鼠标指针)。鼠标指针会跟随实际物理设备的移动,点击鼠标时鼠标指针会改变颜色。点击后的具体鼠标指针样式可以自己定义,然后调用setballoon()函数,也可以自己定制。目前支持三种风格(见enummouse _ flor)。

鼠标设备还提供了回调函数,允许用户在创建鼠标时传递MouseCreate (& mouse,CallBack,contex),这样每次鼠标状态发生变化时,鼠标消息都可以根据需要由回调函数进行处理。例如,触发其他消息(打开一个窗口)。

这种实现使用10ms周期刷新鼠标状态,只有当鼠标状态发生变化时才会重画鼠标指针,以加快处理速度。在PC上同时插入多个鼠标时也能很好的支持。

//示例:int main(void){ EFI_MOUSE鼠标;MouseCreate(&Mouse,NULL,NULL);while①{鼠标。draw(& Mouse);//其他任务1 //其他任务2 //其他任务3}鼠标。销毁(& Mouse);返回EFI _ SUCCESS}3.如何拓展。我画了一张更像老鼠的老鼠风格的画。理论上可以通过取字体插入代码来实现,但这是很低的,取字体的图像不能随意缩放。动态画图算法不是很好,有大神指点。如何在2D画布上画任意图形,并填充渲染,比如可以随意缩放,颜色,渐变,透明度,亮度,饱和度…..创建之后,只需展开并调用setballoon()。

鼠标特效代码 鼠标脚本怎么制作

动态绘制鼠标光标动态绘制鼠标光标

待续

==============================

请戳下面的链接,关注&转发。

请关注微信微信官方账号:“固件C字营”

请收录微信官方账号的话题:“固件C字营”

点击左下角“分享”让更多人快乐。

==============================

更多文章

UEFI SHELL GUI的图形化编程演示

UEFI环境使用鼠标动态绘制鼠标图形演示

UEFI内核介绍UEFI环境使用鼠标实例[2]

UEFI内核将开源GUI图形库移植到UEFI的指南

UEFI内核指南中UEFI事件的类型和功能

UEFI事件〈 II 〉的UEFI内核类型和功能介绍

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论