iOS使用OpenGLES和freetype绘制字体

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

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

第二步,

实现流程:

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

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

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

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



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

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

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


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

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



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


也是你自己设置的


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


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


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


大图是为了优化速度用的


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


效果是一样的


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 绘制像素到屏幕上 answer-huang22 Mar 2014 分享文章 一个像素是如何绘制到屏幕上去的?有很多...
    阿狸旅途T恤阅读 1,650评论 0 7
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,210评论 30 471
  • 卷首语 欢迎来到 objc.io 的第三期! 这一期都是关于视图层的。当然视图层有很多方面,我们需要把它们缩小到几...
    评评分分阅读 1,808评论 0 18
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,283评论 25 708
  • 黑夜是无尽的光堆砌成的墙 月亮是墙上凿穿的窗 我在黑夜里想念你的影子 想念那流离失所的月光 乌云把星星收留 一颗都...
    子夜玄白阅读 223评论 2 1