|
盒子资源分类 |
|
|
|
|
硬件加速的GLCanvas画布 |
|
关键字:opengl gdi gdip canvas 画布 |
来 自:原创 |
平 台:Win2k/XP/NT,Win2003,Vista |
下载所需:0 火柴 |
深浅度:中级 |
完成时间:2010/1/2 |
发布者:wqyfavor |
发布时间:2010/1/5 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:图形 |
下载浏览:3613/17321 |
|
|
|
|
最近写项目需要快速画图,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 |
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
|
|
|