个人笔记|Raylib 的字体使用
仅个人笔记用;因网上相关资料过少,再加上翻墙困难,希望发上来能帮到一些人。
没想到,整个小玩具,会出现如此之多的问题。

做一个小项目,在处理汉字显示时,意外出现了一些问题,遂将解决过程写在这里
关于导入字体……
根据文章长度,你大致可以推断:这几个对渲染汉字而言,用处相对有限。
第一个函数,暂且不考虑其作用。
普通的LoadFont的默认参数,让其大多数情况下直接被Pass。毕竟,只能录入堪堪两百字啊
但是LoadFontEx意外地不能解决问题。LoadFont与LoadFontEx,通过把字体转化为图片,存入显存,以加快渲染,这是挺聪明的办法。
前提是,glyphCount还只是几百。
不然,直接内存爆炸。(在fontSize=64时内存占用达到GB级)
(毕竟汉字字体动辄几万字,再加上Raylib这个笨蛋用的是Texture存储的字体图片,而非每1bit对应一像素的处理)

接下来,我们看到这两个函数。第一个函数……关键词:XNA(这不就是之前的策略吗)
第二个函数,关键词:MemoryBuffer
换句话说,我们似乎可以把字体文件存在内存里,然后转化成具体的Font
相比,性能有所下降,但是占用内存及大幅度下降
但是第二个函数怎么用呢……似乎没能看到Example,自己随便玩玩,没想到成了
(其中,16375136为字体占磁盘空间的大小)
然后,质的飞跃,发生了——


前者用LoadFontFromMemory实现,后者用LoadFontEx实现。文本包含中文。
前者CPU占用率相较后者低15%,内存占用低87%,能耗水平等均远胜过后者
这个故事告诉我们:
傻孩子们,快跑啊,这可不兴打表!
——谁告诉我打表拿省一的来着
说到底,一切算法都还是有适用区间的嘛——显然,Raylib的作者似乎没有想到,会有一个顶级憨批,用最原初的函数,打开一个一个65536个字的字体文件。