注册 登录
编程论坛 C图形专区

[分享]给大家透露一个消息吧

RockCarry 发布于 2007-09-06 00:39, 1927 次点击

在国庆节我将会发布自己开发已久的 RGE 中的图形功能模块 Draw2D。目前 RGE.Graphics.Draw2D 的所有预定义的接口都已经完整地实现了。
还剩下文档的书写和部分接口的测试工作没有完成。RGE.Graphics.Draw2D 可谓是精心设计,届时将会公开发布全部源代码。
在 Draw2D 发布之后,我会进行 RGE.Input 和 RGE.Audio 两大模块的开发。

Draw2D Features
----------------
1. 通用的与平台无关的可绘制对象 BMP
2. 支持256色、16位色和24位色三种像素格式
3. 完善的颜色管理,方便的进行像素格式,色彩空间的转换
4. 支持完善的256色调色板操作,包括左移、右移、随机化、灰度化、调色板魔术、调色板颜色管理等功能
5. 支持 VGA 13H 和 SVGA 640x480x256 视频模式,目前提供 VGA_BMP_DRV 和 VESA_BMP_DRV
6. 提出了抽象的显示驱动接口(BMPDRV),只需要加入新的驱动,即可支持更多的视频模式
7. 支持常规的线性内存、EMS 页式内存、VESA 页式内存等内存模式
8. 提出了抽象的可扩展的页式内存的概念,只需要加入新的驱动,即可支持更多的内存模式
9. 提供了一组页式内存的操作函数,包括读、写、拷贝等操作函数,方便的管理页式内存
10. 绘图函数支持点、线、矩形、圆、bar、多边形、点阵字模的绘制
11. 提供了 gridbar 函数用于实现快速的伪 Alpha Blending
12. 所有的绘图函数都支持自动的像素格式转换
13. 所有的绘图函数都支持 XOR_PUT、AND_PUT、OR_PUT、NOT_PUT 等输出方式
14. 所有的绘图函数都支持 256 级的 Alpha Blending
15. 所有的绘图函数都支持使用 2D 齐次变换矩阵进行几何变换
16. 用户可以自由的扩展绘图函数的像素变换方式(drawmethod extending)
17. 方便实用的点阵字体功能,提供中英文点阵字库,支持中英文混合输出,提供 FONT12、FONT16 和 FONT24 三种字体,用户可以根据自己的需要自定义任意大小的字体
18. 提供 TEXTBOX 对象,用于在矩形区域里面方便的进行文字输出,支持自动换行等功能
19. 完善的 BitBlt 函数集,提供了以下的位块传送函数:
blt: 通用的位块传送,自动进行像素格式转换,支持不同像素格式 BMP 之间的相互操作
maskblt: 通用的带屏蔽色的位块传送,自动进行像素格式转换
advancedblt: 通用的高级的位块传送,支持 Alpha Blending,几何变换和像素变换等特性
palblt: 通用的带调色板转换功能的位块传送,用于调色板模式的 BMP 的 blt 操作
stretchblt: 通用的带缩放功能的位块传送,采用最近邻算法,可以支持任意大小的缩放
fastblt: 快速的位块传送
fastmaskblt: 快速的带屏蔽色的位块传送
20. 支持256色、16位色和24位色 BMP 图片文件加载到 BMP 对象,和 BMP 对象保存到 BMP 图片文件
21. 提供了两幅256色调色板位图进行调色板匹配的功能函数
22. 提供了一个简洁易用的 Animate 对象,用于实现简单的动画效果
23. 免费赠送一款方便实用的中英文点阵字库生成工具
24. 免费赠送一款带有 make 工具的 Turbo C 命令行编译器


RockCarry
2007-9-6

[此贴子已经被作者于2007-9-23 8:27:49编辑过]

10 回复
#2
kk48682007-09-06 12:12

好啊,充满期待啊!!!
rockcarry出品的,肯定是好东西,哈哈

#3
neverTheSame2007-09-07 23:44
期待
#4
killer_l2007-09-08 08:11
这是要支持的
#5
bboc2007-09-09 16:54
支持支持@
#6
wangxy2006962007-09-11 02:21
好!期待!!支持!!
#7
ba_wang_mao2007-09-11 09:12
RGE是什么呢?期待中!
#8
RockCarry2007-09-22 11:32
RGE 目前的设计还算可以,但是现在有许多地方越来越觉得不满意了。
由于太过执著于跨平台的设计,以及对各种显示模式的支持,导致了许多问题。
在设计初期,我就一再提醒自己保证系统的简单,但是又希望把它做成一个通用库,这本身就是一个矛盾。
其实一开始就不应该将其定位为通用库,过度的执著写通用库和过度的设计,就是违反了 KISS 原则。
最终只会延长开发的周期和维护的代价。
另外通用库致命的弱点就是,很难进行优化,最终导致性能的地下。
尽管如此,还是要发布的,希望不会让大家失望,因为我自己都感觉失望了。

[此贴子已经被作者于2007-9-22 11:45:45编辑过]

#9
RockCarry2007-09-23 08:29

今天把 Draw2D 的一些 feature 先贴出来。
见1楼。

#10
ba_wang_mao2007-09-24 10:28
我也认为不应该编写的太通用,否则就像NEO一样,太多的编译开关,看的人头都大了。
#11
一笔苍穹2007-09-24 15:16
NEO代码难看,大部分是架构设计之过,编译开关绝大部分只是为了生成更小的执行程序。
通用无过,跨平台也无过,主要是得在设计和实现时找到一个较完美的平衡点。
1