Windows CE S3C2440A開機啟動捲軸編碼分析

來源:互聯網
上載者:User

    和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函數當中,已經驗證過效果良好。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.