| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6099 人关注过本帖
标题:[原创]我制作的图形库 RGE.Draw2D 发布
取消只看楼主 加入收藏
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
结帖率:95.65%
收藏
 问题点数:0 回复次数:10 
[原创]我制作的图形库 RGE.Draw2D 发布
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: RockCarry E-mail:rockcarry@163.com QQ:31951258
*/ 时间: 2007-10-3 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

本来说是国庆节发布的,但是家里面有点事所以迟到了。今天发布 RGE.Draw2D。
RGE 是我希望完成的一个游戏引擎,Draw2D 是 RGE 的一个组成部分,实现了 2D 的图形功能,目前已经完成的差不多了。
但是 Draw2D 距离真正的高性能的图形库还有相当长的路要走,其实 RGE.Draw2D,在许多方面做得并不好,所以这个作品是以交流和学习的目的展示给大家,希望我所作的一些工作能对大家有所帮助,也希望能将大家引入图形编程更深入的层面来,当然也许我做得并不好,所以我更加希望我的作品的发布,能起到抛砖引玉的作用,激起大家的热情,更多的发布自己的作品。
RGE 提供全部源代码,并附送一个点阵字库生成工具和一个精简版的 Turbo C 命令行编译器。
RGE 目前只能工作在 DOS 平台下,需要 Turbo C 编译器进行编译,以后可能会加入对 DJGPP 的支持。关于性能问题,由于实模式 DOS 程序的限制,RGE 采用了通用的页式内存架构,因此性能上损失很大。所以,我目前不 打算进行更多的优化。
以下是 RGE 的全部文件:
No8OqgZZ.rar (657.44 KB) [原创]我制作的图形库 RGE.Draw2D 发布




RockCarry
2007-10-3



[此贴子已经被作者于2007-10-3 16:22:26编辑过]



uY8Kr6hh.rar (710.94 KB) [原创]我制作的图形库 RGE.Draw2D 发布



LJRmMJPj.rar (515.69 KB) [原创]我制作的图形库 RGE.Draw2D 发布

搜索更多相关主题的帖子: 图形 RGE 制作 
2007-10-03 16:16
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 

先占一楼

2007-10-03 16:16
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
再占一楼
2007-10-03 16:17
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
占3楼
2007-10-03 16:18
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
现在还是国庆节
没有迟到
2007-10-03 16:18
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
me 很可爱的图片啊
我好喜欢
2007-10-05 21:15
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
说下存在的一些问题吧
看过代码的人应该都清楚,其实这个库做得很偷懒,都没有写多少代码
最大的问题可能就是速度的问题
还有就是目前的绘图功能太弱,只有极少的几何图元,不支持线宽线型,不支持多边形填充
而所谓的使用齐次变换矩阵进行几何变换,其实做得很垃圾,,而且由于运算精度没有多大的实用价值
没有提供多边形填充、种子填充等等功能(包括模式填充和位图填充)
没有提供反走样功能
在外部的接口上设计的还算可以,但是内部实现时比较偷懒,在性能上考虑得比较少了
2007-10-08 17:12
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
我采用的是 EMS,目前已经可以支持大内存,并且要实现双缓冲也很容易。目前只能支持 640x480x256 的分辨率。
使用 EMS 是因为常规内存、EMS 内存和页式的 VESA 显存,都可以抽象为页式内存,便于进行统一的管理。
而使用 XMS 内存,则所有的内存操作都要经过 XMS 的功能调用来进行,使用起来会比较麻烦。
2007-10-09 09:22
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
晕,目前不支持是因为还没有完善
使用双缓冲在 RGE 里面很容易实现,在 RGE 里面有例子代码。大致的方法如下:
+-------------------------------------------------------------------------+
BMP backscreen = {0};
createbmp(&VESASCREEN);
backscreen.pmemdrv = &EMS_MEM_DRV; /* 使用 EMS 内存 */
backscreen.width = VESASCREEN.width;
backscreen.height = VESASCREEN.height;
backscreen.pixelbytes = VESASCREEN.pixelbytes;
createbmp(&backscreen); /* 创建缓冲位图 */
setcolor(RGB(0, 255, 0));
line(&backscreen, 10, 10, 100, 100); /* 在缓冲位图上绘制图形 */
fastputbmp(&VESASCREEN, 0, 0, &backscreen); /* 将缓冲位图刷新到屏幕上 */
destroybmp(&backscreen);
destroybmp(&VESASCREEN);
+-------------------------------------------------------------------------+

2007-10-09 12:20
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
链接时加上 RGE.lib 库就可以了
但是需要注意内存模式

2007-10-10 16:58
快速回复:[原创]我制作的图形库 RGE.Draw2D 发布
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033013 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved