Windows CE S3C2440A开机启动滚动条编码分析

本文介绍如何在WindowsCE系统上通过直接操作屏幕缓存来绘制进度条,包括点、线和矩形的基本绘制方法,以及具体的实现代码。

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

和Windows XP一样,Windows CE任然可以绘制美妙的进度条,其实这个操作过程主要是对屏幕缓存进行操作。在S3C2440 CPU BSP代码中已经给出了这段缓冲的地址即IMAGE_FRAMEBUFFER_UA_BASE_eboot,这段缓冲支持的视频编码格式是RGB16,默认颜色为白色,在这个过程当中,并不像EVC一样提供了很多GDI绘图的函数,如绘制线条、矩形等,所有的操作都是从点开始的,由点绘制成线,由线绘制成矩形。可以发现,整个缓冲可以定义为一个二唯数据,每一个元素就是一个点,每一行就是一条线。点的访问过程如下;

  1. *(embedsky_LCD_Buffer+y*LCD_XSIZE_TFT+x)=0xF800;

有了点,我们就能绘制成线,如下函数;

UINT32 currWidth = 0;
void drawProcessBar(UINT32 total, UINT32 current )
{
UINT32 const bar_height = 8;
UINT32 bar_base = LCD_YSIZE_TFT - bar_height;
int i = (int) LCD_XSIZE_TFT / 8;
UINT32 j;
int pbcolor = 0xF800; //red
int bar_width;
//printk("tooal = %d, current = %d/n",total, current);
if(total != -1)
{
j = 0;
bar_width = (int) LCD_XSIZE_TFT * ((current * 1.0) / total);
if(bar_width > currWidth)
{
for ( ; j < bar_height; j++)
{
putPixel(bar_width, j + bar_base, pbcolor);
}
currWidth = bar_width;
}
}

在整个Windows CE启动过程当中,需要绘制滚动条,一般可以将上述代码放在BootloaderMain函数当中,已经验证过效果良好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值