在 ubuntu 上使用 Skia 库测试无法获得 UI 显示

Posted

技术标签:

【中文标题】在 ubuntu 上使用 Skia 库测试无法获得 UI 显示【英文标题】:Not getting UI display with Skia library tests on ubuntu 【发布时间】:2013-03-12 16:26:51 【问题描述】:

我按照skia site 的步骤在我的 Ubuntu 12.04 64 位机器上编译skia r1236。 当我运行测试时,没有窗口显示图形结果。控制台上的输出是:

[1/33] PDFPrimitives... ..................... [33/33] 位图复制... 完成 33 次测试,0 次失败。

如果我使用 SkImageEncoder::EncodeFile 将位图放到文件中,我会得到文件的图形输出。这确认该库工作正常,但无法调用 linux 窗口系统。

另一个问题是,在运行文本时,我收到以下错误

SkFontHost::OpenStream 打开 1 失败 --- 字形 0 没有上下文

我已经按照Skia website 的描述安装了所有的freetype 库,但是无论我在SK_FONT_FILE_PREFIX 中使用哪个路径,我仍然有错误。

我的“/usr/share/fonts/”文件夹有

cmap 真实类型 类型1 X11

我注意到有一个文件 SkOSWIndow_Unix.cpp 但似乎没有人从测试代码中调用它。所以我的问题是

1) 我们如何让输出显示在窗口上?

2) SK_FONT_FILE_PREFIX 的值应该是多少?

PS : Windows 端口工作正常

【问题讨论】:

【参考方案1】:

Skia r1236 至少使用了两年;你应该使用更新的东西。网站上的说明不到一年。

Linux 测试和 Windows 测试产生相同的结果。您应该在 Linux 中看到与在 Windows 中相同的结果。

部分问题是 您正在运行哪些特定测试。根据您对 Linux shell 输出的描述,这些是“gm”测试,不显示窗口。他们在屏幕外的画布上绘制图片。

使用“-w”选项,gm 会将图像以 png 格式写入目录。 使用“-r”选项,gm 将从目录中读取图像并将它们与它生成的图像进行比较。

Skia 中的 SampleApp 应用程序确实使用 Linux 窗口系统。但是,我们不支持用于创建它的“视图”库。 Skia 是一个独立于平台的渲染引擎;您需要提供自己的 Windows 管理。

请注意,自 6000 年代或 7000 年代以来,gm 的功能略有不同;默认结帐将不再包含所有平台上所有 GM 的参考图像。

【讨论】:

以上是关于在 ubuntu 上使用 Skia 库测试无法获得 UI 显示的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 itext7 使用 Java 语言在仅 skia 生成的 pdf 上放置印章(显示倒置印章)

编译skia静态库时,图片解码库无法注册的问题

如何使用 VS2012 构建 Skia 库项目

大海捞针 Skia(C++):Skia 环境搭建

D/skia: --- 无法创建带有消息“未实现”的图像解码器

如何在 Windows 或 Linux 上使用 Skia