При ссылкеAndroid Холст аппаратное ускорение
я обнаружил, что холст теперь поддерживает аппаратное ускорение (в основном).
Я скачал источник 4.2.2 AOSP (API Level 17) и проверил код во внешнем/Skia/SRC/ядро / sKCanvas.cpp
Я достиг sKCanvas.cpp, потому что это наконец-то вызывается через JNI из класса Canvas от Android.
Однако, говорят drawPosText(), эта функция должна быть с помощью аппаратного ускорения (открытый ГЛ)
в коде. Но когда я проверил эту функцию в sKCanvas.cpp, я не вижу никакого кода, связанного с открытым 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
}
Спасибо. Я заметил, что GLES20Canvas расширяет HardwareCanvas. Вы знаете, к какому файлу, к которому обращается GLEs20Canvas.java в свой собственный слой? – Sam
Я только что сказал вам: frameworks/base/libs/hwui :) –
Спасибо. еще один вопрос, заключается в том, что SkCanvas чисто программная реализация? если это так, то для Android имеет смысл создать GLES20Canvas.java. в противном случае, если SkCanvas также может воспользоваться аппаратным ускорением, то в чем разница между Canvas.java и GLES20Canvas.java? – Sam