跨平台二维绘图程序(一)——前奏

一、背景

通常而言,C/C++制作二维图形的绘制程序采用GDI或者GDI+已经足够,不论是绘制的效率还是绘制图元的类别。制作跨平台的程序的主要目的是将已有的绘制程序转移到移动端,以安卓为例,可以使用android studio编译出的.so文件,进而做二次开发。


如果是仅仅制作一个apk文件,那推荐使用现有的封装好的平台,如cocos2dx,同样的代码可以在安卓、IOS/MAC、Windows等平台编译出可执行程序。但是这里的需求要把绘制模块独立出来(不能把场景之类的东东带上),数据访问形成jar包供二次开发使用。从cocos2dx中分离绘制 VS 另写一个绘制模块,选择了后者。


既然跨平台,首选当然是openGL,悲催的是,接触后发现移动端不支持很多原生态的函数,诸如glBegin glLineStipple这样的函数都不支持,而不得不使用GLES。以下是一篇介绍从openGL转换到ES的文章:

https://pandorawiki.org/Porting_to_GLES_from_GL

即便是最简单的绘制线,也不得不使用glDrawArrays这样的函数来执行了。


二、绘图简介

这个系列将用几篇文章来介绍近期GLES学习和使用的心得。绘图程序需要考虑的因素有:

(1)绘制效率,库文件编译出后需要在手机端二次开发使用,因此需要保证绘图效率;

(2)绘制图元,包括点、线、多边形(含不规则多边形)、文字;

(3)绘制顺序,所有的图元有先后顺序,保证叠加的次序和读取的数据一致;

(4)图元特性,例如线宽、线型、符号等的支持;


三、效果图

通过这一段时间的尝试,得到了如下的展示效果,拥有较高效率且支持主要图元的跨平台程序。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wayright

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值