cocos2dx FreeType基础知识

简介: cocos2dx FreeType基础知识

FreeType2文档

fontAscender

image.png

横向排版

auto& metrics = _fontRef->glyph->metrics;
outRect.origin.x = metrics.horiBearingX >> 6;   // 字符轮廓 与 字符位置 之间的水平距离。
outRect.origin.y = -(metrics.horiBearingY >> 6);// 字符轮廓 与 字符基线 之间的垂直距离
outRect.size.width = (metrics.width >> 6); // 字形的宽度
outRect.size.height = (metrics.height >> 6);// 字形的高度

outRect存储的是字符纹理的矩形包围盒

  • ascender: 从水平基线最高字符的顶部距离
  • advance:表示字符的前进值,即字符的渲染后应该向前移动的距离

纵向排版

image.png

  • 字符纹理会扩边1像素
  • 相邻的字符纹理间隔2像素
struct FontLetterDefinition
{
    float U;
    float V;
    float width;
    float height;
    float offsetX;
    float offsetY;
    int textureID;
    bool validDefinition;
    int xAdvance;
}    
目录
相关文章
|
4月前
|
存储 测试技术 编译器
面向 C++ 的现代 CMake 教程(三)(5)
面向 C++ 的现代 CMake 教程(三)
54 1
|
4月前
|
存储 Unix 程序员
面向 C++ 的现代 CMake 教程(三)(1)
面向 C++ 的现代 CMake 教程(三)
64 1
|
4月前
|
存储 并行计算 编译器
面向 C++ 的现代 CMake 教程(二)(3)
面向 C++ 的现代 CMake 教程(二)
56 1
|
4月前
|
存储 前端开发 测试技术
面向 C++ 的现代 CMake 教程(三)(4)
面向 C++ 的现代 CMake 教程(三)
39 0
|
4月前
|
存储 编译器 开发工具
面向 C++ 的现代 CMake 教程(三)(2)
面向 C++ 的现代 CMake 教程(三)
55 0
|
4月前
|
测试技术 开发工具 git
面向 C++ 的现代 CMake 教程(三)(3)
面向 C++ 的现代 CMake 教程(三)
79 0
|
4月前
|
存储 编译器 程序员
面向 C++ 的现代 CMake 教程(二)(5)
面向 C++ 的现代 CMake 教程(二)
42 0
|
4月前
|
存储 数据可视化 编译器
面向 C++ 的现代 CMake 教程(二)(2)
面向 C++ 的现代 CMake 教程(二)
43 0
|
4月前
|
存储 Unix 编译器
面向 C++ 的现代 CMake 教程(二)(1)
面向 C++ 的现代 CMake 教程(二)
35 0
|
4月前
|
编译器 测试技术 开发工具
面向 C++ 的现代 CMake 教程(二)(4)
面向 C++ 的现代 CMake 教程(二)
40 0