跨平台二维绘图程序(一)——前奏
来源:互联网 发布:linux和unix的关系 编辑:程序博客网 时间:2024/06/05 11:02
一、背景
通常而言,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)图元特性,例如线宽、线型、符号等的支持;
三、效果图
通过这一段时间的尝试,得到了如下的展示效果,拥有较高效率且支持主要图元的跨平台程序。
- 跨平台二维绘图程序(一)——前奏
- 跨平台二维绘图程序(二)——着色器shader
- 跨平台二维绘图程序(三)——VAO&VBO
- 跨平台二维绘图程序(四)——多边形绘制
- matlab学习笔记(一)---二维绘图
- OpenGL学习一——程序绘图框架
- OpenGL学习一——程序绘图框架
- Android开发前奏(一)
- JavaWeb开发编码系列(一)—— 编码问题前奏--扫盲贴
- Android学习心得(一)——绘图
- 绘图神器 —— Graphviz(一)
- 跨平台(Windows+Linux)的Socket通讯程序(一)—底层封装
- matlab——二维绘图函数及部分参数
- Two.js —— 二维的绘图 JavaScript 库
- MatLab建模学习笔记1——二维绘图
- java开发前奏(一)简单了解
- 网络聊天室前奏(一)atoi函数
- 黑马程序员——前奏
- Linux网络编程-select实现多点连接的回射
- noi 14:扫雷游戏地雷数计算
- 阿里云oss对象存储 js web直传中文件重命名和文件数量限制问题的解决
- Winodws环境搭建sbt
- JavaScript的学习(三)--条件语句
- 跨平台二维绘图程序(一)——前奏
- java获取当月天数,指定年月的天数,指定日期获取对应星期
- pl/sql配置远程数据库
- 有符号类型和无符号类型
- 11111错误问题解决-------Mybatis扩展操作
- Tensorflow小样例-分类模型(识别mnist手写数字)
- UML各种视图的简介
- 精通CSS 第四章 背景图片效果
- java导出Excel通用方法