|
盒子资源分类 |
|
|
|
|
硬件加速的GLCanvas画布 |
|
关键字:opengl gdi gdip canvas 画布 |
来 自:原创 |
平 台:Win2k/XP/NT,Win2003,Vista |
下载所需:0 火柴 |
深浅度:中级 |
完成时间:2010/1/2 |
发布者:wqyfavor |
发布时间:2010/1/5 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:图形 |
下载浏览:3634/18406 |
|
|
|
|
最近写项目需要快速画图,GDIP速度有点慢,就写了这个GLCanvas控件,有如下特性 这是可以利用OpenGL硬件加速的画布控件,使用最基础的OpenGL支持(Delphi自带的单元)。有如下特性: 1. 硬件加速,绘图速度远远胜过GDI与GDIP。 2. 支持抗锯齿,输出图像质量较高。 3. 支持类似GDIP的坐标变换,可以完成较复杂的绘图操作。 4. 绘图函数丰富,可以绘制直线、折线、曲线、多边形、矩形、三角形,填充多边形、矩形、三角形、曲线封闭区域,并可输出文字、位图。 5. 每一个绘图方法都返回画布自身指针,支持链式操作。 6. 支持坐标变换后,Windows自身画布坐标到实际坐标的反计算,可以方便实现鼠标拾取等功能。 7. 支持OpenGL的绘制列表,可以设置Canvas为列表状态,此时所有绘制过程都会记录到一个绘制列表里。可以多次调用该列表以提高绘图速度。类似GDIP的Graphic path 尚不支持的特性与问题: 1. 由于OpenGL自身只支持凸多边形,所以使用本画布绘制非凸多边形时会有一些显示上的问题。 2. 输出ASCII文字速度很快,列表被缓存,但输出汉字等文字速度较慢。 3. 文字还无法实现响应坐标变换。
编写这个画布的想法来自看了GLScane自带的GLCanvas,但是GLScane自带的画布功能太弱,主要缺点是无法实现坐标变换(需要用户自己指定变换矩阵),于是在它的基础上进行了扩充,保留了绘制直线、矩形、多边形的功能。并且参考ReactOS操作系统的GDIP与GDI源码编写了绘制曲线、弧的函数。
无需安装控件,可以将画布绑定到任何控件上,比较常用的是绑定到TPanel和TImage上,用法详见例子。
个人空间 http://hi.baidu.com/wqyfavor 其它源码下载 http://www.brsbox.com/wqyfavor |
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
共有评论11条
当前显示最后6条评论
|
ganbaba |
2010/1/7 20:05:13 |
无法下载 |
180010491 |
2010/2/25 14:42:38 |
楼主,你太伟大了,谢谢!顶一下! |
180010491 |
2010/2/25 14:54:32 |
谢谢楼主,你很伟大! |
ppwhb |
2010/8/2 13:07:06 |
感谢一下 |
hegun |
2013/2/4 18:30:33 |
学习一下。 |
FengLinYuShu |
2013/3/15 23:36:50 |
最近用了,非常好! 强烈建议作者好好再深入开发下 还是有点小问题: 1. 重复绘制多个图元时会报错。 把报错的地方屏蔽后,退出时又会报错 2. 凹多边形的问题 3. OnPaint |
我要发表评论 |
查看全部评论 |
|
|
|