iOS使用OpenGLES和freetype绘制字体
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS使用OpenGLES和freetype绘制字体相关的知识,希望对你有一定的参考价值。
参考技术A -------------挖个坑,还在学习中------------第一步,理解内存、bitmap、OpenGLES、freetype的使用
第二步,
实现流程:
调用freetype的接口,将文字写入内存位图
将这块位置拷贝到一个大图上面(更到一个内存位图)
记住它在大图的起始坐标与大小
再将大图写入到纹理,就可以按四边形(两个三角形)来绘制这个文字了
主要分两步:第一步是生成位图,第二步是将位图写入纹理在渲染出来、
freetype,生成的单个字的小位图,你需要将小位图合并到一个大的位图上面(比如1024的大图,可以容纳很多个文字)
再将这个大的位置更新gl纹理对象,后面就是绘制三角形了
char *pBitmapDatas = new char[nWidth*nHeight*4];
这个就是32位的位图数据,argb 位8位
字多大,你可以通过freetype的接口获取的嘛
也是你自己设置的
那字位图在大位图上的位置呢?
你自己定啊,按固定大小分好格子,一个个的填充
大小取字体的最大宽度与高度
大图是为了优化速度用的
不做优化的话,直接一个文字一个贴图,也是可以的
效果是一样的
大图是为了做批渲染,优化渲染速度
以上是关于iOS使用OpenGLES和freetype绘制字体的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 上使用具有多个 VBO 和 IBO(多个对象)OpenGLES 2 的 VAO 进行绘制