microwindows代码分析 (二)screen driver显示驱动的架构

本文介绍了Microwindows系统的显示驱动架构,重点分析了scr_x11.c和scr_fb.c两个核心文件,分别用于X11环境和嵌入式系统的屏幕输出。文章详细解释了SCREENDEVICEscrdev结构体的作用及其包含的函数。

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

转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/mimepp

作者联系方式:YU TAO <yut616 at sohu dot com>

microwindows代码分析 (二)screen driver显示驱动的架构

在microwin的代码中,很重要的一个部分就是screen driver显示驱动的部分,它的功能就是负责屏幕输出。

此部分代码是在drivers目录下,并以scr_为开头,我们比较感兴趣的一般是scr_x11.c和scr_fb.c两个部分。

一个是用来在x86 pc上使用的,一个是可以在嵌入系统中使用的。

在microwin的显示驱动的drivers/Makefile中,会根据外部config的设置来只选择使用一个驱动,如X11=Y的话,那么就只会编译scr_x11.c。

在具体每个screen driver中都定义一个SCREENDEVICE scrdev,它也就是microwin要使用到的一个全局的screen driver。

这个结构里主要包括了具体的Open,Close,GetScreenInfo,SetPalette,DrawPixel,FillRect,Blit,StretchBlit等函数实体,如X11_open, X11_close,X11_getscreeninfo,X11_drawpixel等。

同理,对framebuffer,drivers/scr_fb.c,它有一些具体的实现,如fb_open, fb_close, gen_getscreeninfo等。

所以,你自己如果需要增加一个自己的显示驱动的话,就类似上面的内容,写出自己的具体实现函数,从而就能很容易地将microwin porting到你的hardware平台上。

结构上,使用上面的SCREENDEVICE scrdev全局变量的一个好处就是各个具体实现分离,在上层调用上来说只需要关心统一的 SCREENDEVICE 接口即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值