Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04c90404 authored by John Reck's avatar John Reck Committed by Android Git Automerger
Browse files

am 9817ddd4: Merge "Merge hasFunctors & pushStaging into prepareTree"

* commit '9817ddd4':
  Merge hasFunctors & pushStaging into prepareTree
parents 898fe181 9817ddd4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
@@ -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;
+4 −3
Original line number Diff line number Diff line
@@ -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,
@@ -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

+2 −1
Original line number Diff line number Diff line
@@ -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,
+6 −2
Original line number Diff line number Diff line
@@ -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);
@@ -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();
+1 −1
Original line number Diff line number Diff line
@@ -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