【渲染引擎】agg字体介绍
来源:互联网 发布:知己知彼软件好用吗 编辑:程序博客网 时间:2024/04/27 18:34
agg字体可以使用第三方字体库,比如Freetype或者window下的字体。当你选择使用某种字体的时候,就必须把相应字体的头文件包含进去。
#include <agg_font_win32_tt.h> //for window #include <agg_font_freetype.h> //for freetype
这俩个文件其实是提供了一个接口给agg,封装了具体字体库的实现。这样就屏蔽了具体的字体库的不同。这里只介绍如何使用freetype。freetype是一个字体库,现在freetype已经是freetype2了。
agg在绘制字体的时候有2种方式,一种是在渲染层(Scanline Rasterizer),一种是在顶点层。agg的具体层次划分在上一篇文章agg介绍中已有说明。在这里不在展开。
在使用字体的时候需要首先加载初始化字体。freetype提供了load_font方法,用以字体引擎加载具体的字体。
bool load_font(const char* font_name,unsigned face_index, glyph_rendering ren_type,const char* font_mem = 0, const long font_mem_size = 0);
可以看出该方法主要接受三个参数,font_name字体名,选择哪个字体face_index,包装类型ren_type。
对于face_index来说,一个字体文件里可能有多种字体样式,其实就是字体外观。像‘Times New Roman Regular’和‘Times New Roman Italic’就是俩种不同的字体样式。face_index就是告诉引擎具体采用哪一种样式。一般都设置为0。
对于ren_type来说,其类型为glyph_rendering,是一个枚举类型属于agg库的一部分。其定义在agg_font_cache_manager.h头文件中,共有五个属性值:
enum agg::glyph_rendering{ glyph_ren_native_mono, //对应mono_adaptor_type glyph_ren_native_gray8, //对应gray8_adaptor_type glyph_ren_outline, //对应path_adaptor_type glyph_ren_agg_mono, //对应mono_adaptor_type glyph_ren_agg_gray8 //对应gray8_adaptor_type};
该参数主要是告诉字体引擎字体的包装形式,相应的在freetype里也有相应的参数与其对应,在上面的注释中也分别说明了如何和freetype中的类型进行对应的。
对于绘制字体的时候,有俩个字体大小一个就是你给定的字体大小,另外一个就是绘制的时候真是字体大小。这个很好理解,比如对于“我”和“1”俩个字体占据的字体宽度肯定不同,所以在绘制字体的时候有个获取真是字体宽度的流程。
- 【渲染引擎】agg字体介绍
- 【渲染引擎】agg介绍
- 【渲染引擎】agg画线介绍
- 字体渲染 渲染引擎
- AGG 使用字体引擎(Font Engine)
- 新渲染引擎介绍
- AGG 渲染器(Renderers)
- AGG渲染的边界问题
- FreeType字体引擎介绍
- AGG 字体缓存管理器
- AGG 渲染缓存(Rendering Buffer)
- agg渲染的NY道路
- 介绍和推荐AGG
- 【简单介绍浏览器渲染引擎情况】
- SOUI GDI+渲染引擎下的字体特效
- SOUI GDI+渲染引擎下的字体特效,抛砖引玉
- ubuntu 安装高清字体渲染libfreetype引擎
- AGG 文档翻译 - 基础渲染器
- 为什么要学习数据结构与算法javascript描述
- VMware 虚拟机下网络配置基础
- OGG故障排除1例:因B机被修改数据导致replicat服务ABENDED修复
- Unity中脚本执行顺序
- php使用smtp封装类发送邮件
- 【渲染引擎】agg字体介绍
- #include,#import与@class
- Vim和Vi的区别
- li显示一排圆形按钮
- javaweb学习总结(四十七)——监听器(Listener)在开发中的应用
- Hive和HBase基础
- 如何利用CustomFont+PS制作字体
- Java运行可执行文件
- js 按值传递与按引用传递