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

Commit 117040c5 authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Update JNI to pass SurfaceControls rather than handles to layer state

updates

This allows us to have all the information that is stored in surface control including the layer id in the layer state so that it can be dumped directly from the client side

Test: N/A
Change-Id: I3d953382d0aad1a192ad9f767daa09a4ceefba8b
parent 9d505d1a
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -481,7 +481,7 @@ static void nativeSetRelativeLayer(JNIEnv* env, jclass clazz, jlong transactionO
    auto ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
    auto relative = reinterpret_cast<SurfaceControl *>(relativeToObject);
    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
    transaction->setRelativeLayer(ctrl, relative->getHandle(), zorder);
    transaction->setRelativeLayer(ctrl, relative, zorder);
}

static void nativeSetPosition(JNIEnv* env, jclass clazz, jlong transactionObj,
@@ -1327,10 +1327,10 @@ static jboolean nativeGetAnimationFrameStats(JNIEnv* env, jclass clazz, jobject

static void nativeDeferTransactionUntil(JNIEnv* env, jclass clazz, jlong transactionObj,
        jlong nativeObject, jlong barrierObject, jlong frameNumber) {
    auto ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
    auto barrier = reinterpret_cast<SurfaceControl *>(barrierObject);
    sp<SurfaceControl> ctrl = reinterpret_cast<SurfaceControl*>(nativeObject);
    sp<SurfaceControl> barrier = reinterpret_cast<SurfaceControl*>(barrierObject);
    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
    transaction->deferTransactionUntil_legacy(ctrl, barrier->getHandle(), frameNumber);
    transaction->deferTransactionUntil_legacy(ctrl, barrier, frameNumber);
}

static void nativeDeferTransactionUntilSurface(JNIEnv* env, jclass clazz, jlong transactionObj,
@@ -1351,7 +1351,7 @@ static void nativeReparentChildren(JNIEnv* env, jclass clazz, jlong transactionO
    auto ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
    auto newParent = reinterpret_cast<SurfaceControl *>(newParentObject);
    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
    transaction->reparentChildren(ctrl, newParent->getHandle());
    transaction->reparentChildren(ctrl, newParent);
}

static void nativeReparent(JNIEnv* env, jclass clazz, jlong transactionObj,
@@ -1360,7 +1360,7 @@ static void nativeReparent(JNIEnv* env, jclass clazz, jlong transactionObj,
    auto ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
    auto newParent = reinterpret_cast<SurfaceControl *>(newParentObject);
    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
    transaction->reparent(ctrl, newParent != NULL ? newParent->getHandle() : NULL);
    transaction->reparent(ctrl, newParent);
}

static void nativeSeverChildren(JNIEnv* env, jclass clazz, jlong transactionObj,
+1 −2
Original line number Diff line number Diff line
@@ -317,10 +317,9 @@ void ASurfaceTransaction_reparent(ASurfaceTransaction* aSurfaceTransaction,
    sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl);
    sp<SurfaceControl> newParentSurfaceControl = ASurfaceControl_to_SurfaceControl(
            newParentASurfaceControl);
    sp<IBinder> newParentHandle = (newParentSurfaceControl)? newParentSurfaceControl->getHandle() : nullptr;
    Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction);

    transaction->reparent(surfaceControl, newParentHandle);
    transaction->reparent(surfaceControl, newParentSurfaceControl);
}

void ASurfaceTransaction_setVisibility(ASurfaceTransaction* aSurfaceTransaction,