Loading core/java/android/view/GLRenderer.java +2 −2 Original line number Diff line number Diff line Loading @@ -1317,7 +1317,7 @@ public class GLRenderer extends HardwareRenderer { } Trace.traceBegin(Trace.TRACE_TAG_VIEW, "drawDisplayList"); nPushStagingChanges(displayList.getNativeDisplayList()); nPrepareTree(displayList.getNativeDisplayList()); try { status |= canvas.drawDisplayList(displayList, mRedrawClip, RenderNode.FLAG_CLIP_CHILDREN); Loading Loading @@ -1476,7 +1476,7 @@ public class GLRenderer extends HardwareRenderer { static native void nDestroyLayer(long layerPtr); private static native void nPushStagingChanges(long displayListPtr); private static native void nPrepareTree(long displayListPtr); class DrawPerformanceDataProvider extends GraphDataProvider { private final int mGraphType; Loading core/jni/android_view_GLRenderer.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -142,11 +142,12 @@ static void android_view_GLRenderer_destroyLayer(JNIEnv* env, jobject clazz, LayerRenderer::destroyLayer(layer); } static void android_view_GLRenderer_pushStagingChanges(JNIEnv* env, jobject clazz, static void android_view_GLRenderer_prepareTree(JNIEnv* env, jobject clazz, jlong renderNodePtr) { using namespace android::uirenderer; RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); renderNode->pushStagingChanges(); TreeInfo info = {0}; renderNode->prepareTree(info); } static void android_view_GLRenderer_invokeFunctor(JNIEnv* env, jobject clazz, Loading Loading @@ -187,7 +188,7 @@ static JNINativeMethod gMethods[] = { { "getSystemTime", "()J", (void*) android_view_GLRenderer_getSystemTime }, { "nDestroyLayer", "(J)V", (void*) android_view_GLRenderer_destroyLayer }, { "nPushStagingChanges", "(J)V", (void*) android_view_GLRenderer_pushStagingChanges }, { "nPrepareTree", "(J)V", (void*) android_view_GLRenderer_prepareTree }, { "nInvokeFunctor", "(JZ)V", (void*) android_view_GLRenderer_invokeFunctor }, #endif Loading core/jni/android_view_HardwareLayer.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,8 @@ static void android_view_HardwareLayer_updateRenderLayer(JNIEnv* env, jobject cl static jboolean android_view_HardwareLayer_flushChanges(JNIEnv* env, jobject clazz, jlong layerUpdaterPtr) { DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); return layer->apply(); bool ignoredHasFunctors; return layer->apply(&ignoredHasFunctors); } static jlong android_view_HardwareLayer_getLayer(JNIEnv* env, jobject clazz, Loading libs/hwui/DeferredLayerUpdater.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ void DeferredLayerUpdater::setDisplayList(RenderNode* displayList, } } bool DeferredLayerUpdater::apply() { bool DeferredLayerUpdater::apply(bool* hasFunctors) { bool success = true; // These properties are applied the same to both layer types mLayer->setColorFilter(mColorFilter); Loading @@ -73,7 +73,11 @@ bool DeferredLayerUpdater::apply() { success = LayerRenderer::resizeLayer(mLayer, mWidth, mHeight); } mLayer->setBlend(mBlend); mDisplayList->pushStagingChanges(); TreeInfo info = {0}; mDisplayList->prepareTree(info); if (info.hasFunctors) { *hasFunctors = true; } mLayer->updateDeferred(mDisplayList.get(), mDirtyRect.left, mDirtyRect.top, mDirtyRect.right, mDirtyRect.bottom); mDirtyRect.setEmpty(); Loading libs/hwui/DeferredLayerUpdater.h +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ public: ANDROID_API void setPaint(const SkPaint* paint); ANDROID_API bool apply(); ANDROID_API bool apply(bool* hasFunctors); ANDROID_API Layer* backingLayer() { return mLayer; Loading Loading
core/java/android/view/GLRenderer.java +2 −2 Original line number Diff line number Diff line Loading @@ -1317,7 +1317,7 @@ public class GLRenderer extends HardwareRenderer { } Trace.traceBegin(Trace.TRACE_TAG_VIEW, "drawDisplayList"); nPushStagingChanges(displayList.getNativeDisplayList()); nPrepareTree(displayList.getNativeDisplayList()); try { status |= canvas.drawDisplayList(displayList, mRedrawClip, RenderNode.FLAG_CLIP_CHILDREN); Loading Loading @@ -1476,7 +1476,7 @@ public class GLRenderer extends HardwareRenderer { static native void nDestroyLayer(long layerPtr); private static native void nPushStagingChanges(long displayListPtr); private static native void nPrepareTree(long displayListPtr); class DrawPerformanceDataProvider extends GraphDataProvider { private final int mGraphType; Loading
core/jni/android_view_GLRenderer.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -142,11 +142,12 @@ static void android_view_GLRenderer_destroyLayer(JNIEnv* env, jobject clazz, LayerRenderer::destroyLayer(layer); } static void android_view_GLRenderer_pushStagingChanges(JNIEnv* env, jobject clazz, static void android_view_GLRenderer_prepareTree(JNIEnv* env, jobject clazz, jlong renderNodePtr) { using namespace android::uirenderer; RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); renderNode->pushStagingChanges(); TreeInfo info = {0}; renderNode->prepareTree(info); } static void android_view_GLRenderer_invokeFunctor(JNIEnv* env, jobject clazz, Loading Loading @@ -187,7 +188,7 @@ static JNINativeMethod gMethods[] = { { "getSystemTime", "()J", (void*) android_view_GLRenderer_getSystemTime }, { "nDestroyLayer", "(J)V", (void*) android_view_GLRenderer_destroyLayer }, { "nPushStagingChanges", "(J)V", (void*) android_view_GLRenderer_pushStagingChanges }, { "nPrepareTree", "(J)V", (void*) android_view_GLRenderer_prepareTree }, { "nInvokeFunctor", "(JZ)V", (void*) android_view_GLRenderer_invokeFunctor }, #endif Loading
core/jni/android_view_HardwareLayer.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,8 @@ static void android_view_HardwareLayer_updateRenderLayer(JNIEnv* env, jobject cl static jboolean android_view_HardwareLayer_flushChanges(JNIEnv* env, jobject clazz, jlong layerUpdaterPtr) { DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); return layer->apply(); bool ignoredHasFunctors; return layer->apply(&ignoredHasFunctors); } static jlong android_view_HardwareLayer_getLayer(JNIEnv* env, jobject clazz, Loading
libs/hwui/DeferredLayerUpdater.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ void DeferredLayerUpdater::setDisplayList(RenderNode* displayList, } } bool DeferredLayerUpdater::apply() { bool DeferredLayerUpdater::apply(bool* hasFunctors) { bool success = true; // These properties are applied the same to both layer types mLayer->setColorFilter(mColorFilter); Loading @@ -73,7 +73,11 @@ bool DeferredLayerUpdater::apply() { success = LayerRenderer::resizeLayer(mLayer, mWidth, mHeight); } mLayer->setBlend(mBlend); mDisplayList->pushStagingChanges(); TreeInfo info = {0}; mDisplayList->prepareTree(info); if (info.hasFunctors) { *hasFunctors = true; } mLayer->updateDeferred(mDisplayList.get(), mDirtyRect.left, mDirtyRect.top, mDirtyRect.right, mDirtyRect.bottom); mDirtyRect.setEmpty(); Loading
libs/hwui/DeferredLayerUpdater.h +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ public: ANDROID_API void setPaint(const SkPaint* paint); ANDROID_API bool apply(); ANDROID_API bool apply(bool* hasFunctors); ANDROID_API Layer* backingLayer() { return mLayer; Loading