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

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

    和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函数当中,已经验证过效果良好。

目录
相关文章
|
7月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
711 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
7月前
|
Linux API iOS开发
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
594 14
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
8月前
|
数据管理 Linux iOS开发
Splunk Enterprise 9.4.5 (macOS, Linux, Windows) - 机器数据管理和分析
Splunk Enterprise 9.4.5 (macOS, Linux, Windows) - 机器数据管理和分析
293 0
|
10月前
|
自然语言处理 监控 安全
Magnet Axiom 9.0 Windows x64 Multilingual - 数字取证与分析
Magnet Axiom 9.0 Windows x64 Multilingual - 数字取证与分析
331 0
Magnet Axiom 9.0 Windows x64 Multilingual - 数字取证与分析
|
Unix Linux iOS开发
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
267 0
|
数据管理 Linux iOS开发
Splunk Enterprise 9.4.1 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
Splunk Enterprise 9.4.1 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
356 0
Splunk Enterprise 9.4.1 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
|
Windows
【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
1068 0
|
关系型数据库 MySQL 数据库
MySQL:Windows环境下的编码问题和解决
MySQL:Windows环境下的编码问题和解决
271 0
|
7月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
1945 2
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
|
7月前
|
安全 Unix 物联网
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
839 0
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)

热门文章

最新文章