iOS使用OpenGLES和freetype绘制字体

-------------挖个坑,还在学习中------------

第一步,理解内存、bitmap、OpenGLES、freetype的使用

第二步,

实现流程:

调用freetype的接口,将文字写入内存位图

将这块位置拷贝到一个大图上面(更到一个内存位图)

记住它在大图的起始坐标与大小

再将大图写入到纹理,就可以按四边形(两个三角形)来绘制这个文字了



主要分两步:第一步是生成位图,第二步是将位图写入纹理在渲染出来、

freetype,生成的单个字的小位图,你需要将小位图合并到一个大的位图上面(比如1024的大图,可以容纳很多个文字)

再将这个大的位置更新gl纹理对象,后面就是绘制三角形了


char  *pBitmapDatas = new char[nWidth*nHeight*4];

这个就是32位的位图数据,argb 位8位



字多大,你可以通过freetype的接口获取的嘛


也是你自己设置的


那字位图在大位图上的位置呢?


你自己定啊,按固定大小分好格子,一个个的填充


大小取字体的最大宽度与高度


大图是为了优化速度用的


不做优化的话,直接一个文字一个贴图,也是可以的


效果是一样的


大图是为了做批渲染,优化渲染速度

你可能感兴趣的:(iOS使用OpenGLES和freetype绘制字体)