Android Canvas硬件加速

时间:2013-08-13 21:25:20

标签: android graphic skia

链接

Hardware accleration

我发现Canvas现在支持硬件加速(主要是)。

我下载了4.2.2 AOSP(API Level 17)源代码并检查了外部/ skia / src / core / sKCanvas.cpp中的代码

我到达了sKCanvas.cpp,因为这最终会通过Android Canvas类中的jni调用。

但是,比如说drawPosText(),这个函数应该使用硬件加速(open gl)

代码中的

。但是当我在sKCanvas.cpp中检查这个函数时,我没有看到任何与open gl相关的代码。

我误解了什么吗?这确实让我很困惑。

感谢。

void SkCanvas::drawPosText(const void* text, size_t byteLength,
                       const SkPoint pos[], const SkPaint& paint) {
LOOPER_BEGIN(paint, SkDrawFilter::kText_Type)

while (iter.next()) {
    SkDeviceFilteredPaint dfp(iter.fDevice, looper.paint());
    iter.fDevice->drawPosText(iter, text, byteLength, &pos->fX, 0, 2,
                              dfp.paint());
}

LOOPER_END

}

1 个答案:

答案 0 :(得分:4)

您正在查看软件实施。硬件实施位于frameworks/base/libs/hwuiframeworks/base/core/java/android/view/(请参阅HardwareRenderer.javaHardwareCanvas.javaGLES20Canvas.java等。