0

我有一段代码,我在其中将长度约为 20 个字符的字符串绘制到大小为 1000x100 像素的 Skia 位图中。然后将其加载到纹理中并在屏幕上绘制。

我发现仅将 SkBitmap 数据(由 SkBitmap.getPixels() 返回的缓冲区)上传到纹理中大约需要 29-30 毫秒。

此代码已在另一篇文章中上传

使用 Skia 将文本绘制到纹理

measureStart = systemTime();
if (!initTexture(&texFrame, bitmap))
{
    LOGD("framerate: Unable to create/upload texture based off bitmap");
    return;
}
timeDiff += (int(ns2us(systemTime()-measureStart)));

我画了 30 帧并取了平均 timeDiffs。大约需要 30 毫秒。

我创建了另一个根本不使用 OpenGL 的程序,只是使用 Skia 渲染文本并直接在帧缓冲区上显示。这样做需要 1 毫秒。

这没有意义。我正在使用 Android 4.0.3 的 android box(带 GPU)上运行此代码。ARM 和 GPU 共享相同的 RAM。

如何使这更快?

4

0 回答 0