在链接上
我发现 Canvas 现在支持硬件加速(大部分)。
我下载了 4.2.2 AOSP(API Level 17) 源代码并检查了 external/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
}