2007年3月1日星期四

tcGUI.c

  今天为ST2410做了一个图形库,完成了大约40%。一想到我今天的工作是八十年代的程序员经常做的事,我就 T_T

  简单的说,这个图形库用于在没有文字显示BIOS的CPU上显示文字的。目前完成了以下工作:

英文8x12点阵的提取
宋体16x16点阵的提取(一个VB小程序),目前做了一级字库
LCD初始化(抄来的)
描点(抄来的)
描线(抄来的)
矩形(抄来的)
实心矩形(抄来的)
清屏(抄来的)
位图图片(抄来的)
英文显示
中文显示
更换颜色,前景/背景
文字透明

  还需要加入的功能:
屏幕滚动(即翻页)
屏幕保存/恢复(用于实现双缓冲、视频缓冲、直接写屏)
绘制窗体
触摸笔(快成形了)

  本来,[tc]以为这些代码很好找的,结果处处碰壁。在u龙那里,虽然得到一份差不多用途的东西,可惜是编译好的库文件,不提供代码。一气之下,[tc]自己写了这份代码,深感屏幕存取之效率低下,没有显卡的日子,难!

  下面第一张图是昨天,为调试方便写的引导程序的图形界面部分。
  第二张是刚刚实现的成果,似乎实际效果更好一些。不过我这样说也没人相信。
  在这份成果上,只要将config.h中的#define CHINESE_SUPPORT 1去掉,就会变成第三幅图的样子,目标代码将会减小将近200K。


  

7 条评论:

Unknown 说...

哎 ┐(- -)┌
苹果的标志及windows me风格的色快……
某[tc]囧同学的UI设计能力稍微有一点提高,已经进入了由中国特色的设计者队伍了。

[tc]天驰 说...

我晕,那个色块是用来测试[tc]的RGB()函数是否正常工作的好不好!

还有啊,这个画面根UI也没什么关系,说到底,现在这个模式是Supervisor模式,相当于x86的实模式,跟DOS一个性质,我搞成这样很不容易的~~

那么请你来帮我写窗口部分要不要?

Unknown 说...

你这个东西能用多久?分辨率?

[tc]天驰 说...

什么叫“能用多久”?

分辨率受到液晶屏的限制,是240x320。

关于窗口模式,[tc]准备转向uc/GUI或者Linux的怀抱。WinCE.net也是备选方案,只不过M$的这款系统……啧啧啧,等我研究清楚了再作评论。

Unknown 说...

为什么不取12x12的子模,会好看一点。

Unknown 说...

第三幅图上有台灯(?)的反光。

[tc]天驰 说...

12x12会比较好?当真?早讲啊!我下一个版本改过来!

12x可以跟一个英文的尺寸的统一起来,不过要克服一些困难,我以为国标是16x比较好。

有个台灯是因为其他角度出现了弧装的干涉纹路。