美文网首页
跨平台字体渲染

跨平台字体渲染

作者: hjm1fb | 来源:发表于2020-02-20 21:21 被阅读0次

借鉴的文章:

Skia深入分析5——skia文字绘制的实现
Android's Font Renderer Efficient text rendering with OpenGL ES
万万没想到——flutter这样外接纹理
Text Rendering
flutter/engine/third_party/txt/src
hwui/FontRenderer.cpp
hwui/pipeline/skia/LayerDrawable
FreeTypeLibAndroidJNIDemo
Skia实现的Lottie播放器
libgdx/wiki/Bitmap-fonts
snada/BitmapFontLoader
aosp/libs/hwui/FontRenderer.cpp
https://github.com/libgdx/libgdx/issues/5825
使用CMake交叉编译Skia(下载Demo后,仍需按照文章完成编译)

-矢量文字SDF
libgdx/wiki/Distance-field-fonts
Playing around with distance field font rendering
multi-channel distance field

最后还是选择各个平台的原生API画,比如安卓用的是Canvas DrawText的API:
然后绘制文字参考了以下文章:
HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制
HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解

文字测量:
Android: Measure Text Height on a Canvas
Measuring text height to be drawn on Canvas ( Android )
查看字体工具 FontLab 7

Android TextView的换行策略
Android换行调试tip:
Painter.measureText()打印的字宽和字号不是完全成正比(即使是画单个字符也不会成正比),比如0.6555倍的字号, kerning为0Painter.measureText()的值会是0.650倍。这样就会导致换行在某些情况下有差异: 文本框2440.6555 = 160; 字号 218.42773 0.6555 = 143.2 字宽246*0.654 = 160; 所以之前换行的转换后不换行了
Painter的textSize设置为142/143/144, measureText("FF")的值都是160.0。设置为148后未166.0,有时候小数位有值,即变化非线性。所以建议在APP层把文字换行,用增加了换行符后的文本替换本来的文本。

相关文章

  • 跨平台字体渲染

    借鉴的文章: Skia深入分析5——skia文字绘制的实现[https://my.oschina.net/jxt1...

  • OpenGL入门笔记-常用专业名词

    图形API: OpenGL (Open Graphics Library):用于渲染2D、3D矢量图形的跨平台、跨...

  • (三)Vue-Snabbdom

    虚拟 DOM 的作用 维护视图和状态的关系 复杂视图情况下提升渲染性能 跨平台• 浏览器平台渲染DOM• 服务端渲...

  • 移动端跨平台方案比较

    跨平台技术分类 hybrid(ionic,vant,微信小程序) javascript开发+原生渲染(react ...

  • 一、OpenGL 专有名词

    OpenGL (Open Graphics Library)用于渲染2D、3D矢量图形跨语言、跨平台的应用程序应用...

  • 全面掌握C4D阿诺德渲染器训练教程

    Arnold渲染器是一款高级的、跨平台的渲染 API。是基于物理算法的电影级别渲染引擎,目前由Solid Angl...

  • 跨平台渲染引擎之路:拨云见日

    前言 最近在工作中越来越多地接触到一些3D以及相比常见特性更酷炫的效果,因此萌发了想要自己从0开始打造一个渲染引擎...

  • 基于SDF渲染字体

    18号字体 18号字体放大15倍 基于sdf渲染字体放大15倍 相比常规的渲染方式,基于SDF渲染文字可无限放大并...

  • Flutter和原生系统代码的逻辑交互

    依托于与Skia渲染引擎的深度定制和优化,Flutter提供了高效的渲染支持,能够保证绝对的跨平台渲染一致性。一个...

  • OpenGL常见专业名词

    参考了维基百科OpenGL:Open Graphis Library,是用于渲染2D、3D矢量图形的跨语言、跨平台...

网友评论

      本文标题:跨平台字体渲染

      本文链接:https://www.haomeiwen.com/subject/llufqhtx.html