Loading core/java/android/view/SurfaceControl.java +0 −10 Original line number Diff line number Diff line Loading @@ -2610,16 +2610,6 @@ public final class SurfaceControl implements Parcelable { = sRegistry.registerNativeAllocation(this, mNativeObject); } /** * Create a transaction object that wraps a native peer. * @hide */ Transaction(long nativeObject) { mNativeObject = nativeObject; mFreeNativeResources = sRegistry.registerNativeAllocation(this, mNativeObject); } private Transaction(Parcel in) { readFromParcel(in); } Loading core/java/android/view/ViewRootImpl.java +6 −2 Original line number Diff line number Diff line Loading @@ -1371,8 +1371,12 @@ public final class ViewRootImpl implements ViewParent, HardwareRenderer.ASurfaceTransactionCallback callback = (nativeTransactionObj, nativeSurfaceControlObj, frameNr) -> { Transaction t = new Transaction(nativeTransactionObj); mergeWithNextTransaction(t, frameNr); if (mBlastBufferQueue == null) { return false; } else { mBlastBufferQueue.mergeWithNextTransaction(nativeTransactionObj, frameNr); return true; } }; mAttachInfo.mThreadedRenderer.setASurfaceTransactionCallback(callback); } Loading graphics/java/android/graphics/BLASTBufferQueue.java +8 −0 Original line number Diff line number Diff line Loading @@ -131,4 +131,12 @@ public final class BLASTBufferQueue { nativeMergeWithNextTransaction(mNativeObject, t.mNativeObject, frameNumber); } /** * Merge the transaction passed in to the next transaction in BlastBufferQueue. * @param nativeTransaction native handle passed from native c/c++ code. */ public void mergeWithNextTransaction(long nativeTransaction, long frameNumber) { nativeMergeWithNextTransaction(mNativeObject, nativeTransaction, frameNumber); } } graphics/java/android/graphics/HardwareRenderer.java +1 −1 Original line number Diff line number Diff line Loading @@ -912,7 +912,7 @@ public class HardwareRenderer { * @param aSurfaceControlNativeObj ASurfaceControl native object handle * @param frame The id of the frame being drawn. */ void onMergeTransaction(long aSurfaceTranactionNativeObj, boolean onMergeTransaction(long aSurfaceTranactionNativeObj, long aSurfaceControlNativeObj, long frame); } Loading libs/hwui/jni/android_graphics_HardwareRenderer.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -662,16 +662,18 @@ static void android_view_ThreadedRenderer_setASurfaceTransactionCallback( auto globalCallbackRef = std::make_shared<JWeakGlobalRefHolder>(vm, aSurfaceTransactionCallback); proxy->setASurfaceTransactionCallback( [globalCallbackRef](int64_t transObj, int64_t scObj, int64_t frameNr) { [globalCallbackRef](int64_t transObj, int64_t scObj, int64_t frameNr) -> bool { JNIEnv* env = getenv(globalCallbackRef->vm()); jobject localref = env->NewLocalRef(globalCallbackRef->ref()); if (CC_UNLIKELY(!localref)) { return; return false; } env->CallVoidMethod(localref, gASurfaceTransactionCallback.onMergeTransaction, jboolean ret = env->CallBooleanMethod( localref, gASurfaceTransactionCallback.onMergeTransaction, static_cast<jlong>(transObj), static_cast<jlong>(scObj), static_cast<jlong>(frameNr)); env->DeleteLocalRef(localref); return ret; }); } } Loading Loading @@ -1064,7 +1066,7 @@ int register_android_view_ThreadedRenderer(JNIEnv* env) { jclass aSurfaceTransactionCallbackClass = FindClassOrDie(env, "android/graphics/HardwareRenderer$ASurfaceTransactionCallback"); gASurfaceTransactionCallback.onMergeTransaction = GetMethodIDOrDie(env, aSurfaceTransactionCallbackClass, "onMergeTransaction", "(JJJ)V"); GetMethodIDOrDie(env, aSurfaceTransactionCallbackClass, "onMergeTransaction", "(JJJ)Z"); jclass prepareSurfaceControlForWebviewCallbackClass = FindClassOrDie( env, "android/graphics/HardwareRenderer$PrepareSurfaceControlForWebviewCallback"); Loading Loading
core/java/android/view/SurfaceControl.java +0 −10 Original line number Diff line number Diff line Loading @@ -2610,16 +2610,6 @@ public final class SurfaceControl implements Parcelable { = sRegistry.registerNativeAllocation(this, mNativeObject); } /** * Create a transaction object that wraps a native peer. * @hide */ Transaction(long nativeObject) { mNativeObject = nativeObject; mFreeNativeResources = sRegistry.registerNativeAllocation(this, mNativeObject); } private Transaction(Parcel in) { readFromParcel(in); } Loading
core/java/android/view/ViewRootImpl.java +6 −2 Original line number Diff line number Diff line Loading @@ -1371,8 +1371,12 @@ public final class ViewRootImpl implements ViewParent, HardwareRenderer.ASurfaceTransactionCallback callback = (nativeTransactionObj, nativeSurfaceControlObj, frameNr) -> { Transaction t = new Transaction(nativeTransactionObj); mergeWithNextTransaction(t, frameNr); if (mBlastBufferQueue == null) { return false; } else { mBlastBufferQueue.mergeWithNextTransaction(nativeTransactionObj, frameNr); return true; } }; mAttachInfo.mThreadedRenderer.setASurfaceTransactionCallback(callback); } Loading
graphics/java/android/graphics/BLASTBufferQueue.java +8 −0 Original line number Diff line number Diff line Loading @@ -131,4 +131,12 @@ public final class BLASTBufferQueue { nativeMergeWithNextTransaction(mNativeObject, t.mNativeObject, frameNumber); } /** * Merge the transaction passed in to the next transaction in BlastBufferQueue. * @param nativeTransaction native handle passed from native c/c++ code. */ public void mergeWithNextTransaction(long nativeTransaction, long frameNumber) { nativeMergeWithNextTransaction(mNativeObject, nativeTransaction, frameNumber); } }
graphics/java/android/graphics/HardwareRenderer.java +1 −1 Original line number Diff line number Diff line Loading @@ -912,7 +912,7 @@ public class HardwareRenderer { * @param aSurfaceControlNativeObj ASurfaceControl native object handle * @param frame The id of the frame being drawn. */ void onMergeTransaction(long aSurfaceTranactionNativeObj, boolean onMergeTransaction(long aSurfaceTranactionNativeObj, long aSurfaceControlNativeObj, long frame); } Loading
libs/hwui/jni/android_graphics_HardwareRenderer.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -662,16 +662,18 @@ static void android_view_ThreadedRenderer_setASurfaceTransactionCallback( auto globalCallbackRef = std::make_shared<JWeakGlobalRefHolder>(vm, aSurfaceTransactionCallback); proxy->setASurfaceTransactionCallback( [globalCallbackRef](int64_t transObj, int64_t scObj, int64_t frameNr) { [globalCallbackRef](int64_t transObj, int64_t scObj, int64_t frameNr) -> bool { JNIEnv* env = getenv(globalCallbackRef->vm()); jobject localref = env->NewLocalRef(globalCallbackRef->ref()); if (CC_UNLIKELY(!localref)) { return; return false; } env->CallVoidMethod(localref, gASurfaceTransactionCallback.onMergeTransaction, jboolean ret = env->CallBooleanMethod( localref, gASurfaceTransactionCallback.onMergeTransaction, static_cast<jlong>(transObj), static_cast<jlong>(scObj), static_cast<jlong>(frameNr)); env->DeleteLocalRef(localref); return ret; }); } } Loading Loading @@ -1064,7 +1066,7 @@ int register_android_view_ThreadedRenderer(JNIEnv* env) { jclass aSurfaceTransactionCallbackClass = FindClassOrDie(env, "android/graphics/HardwareRenderer$ASurfaceTransactionCallback"); gASurfaceTransactionCallback.onMergeTransaction = GetMethodIDOrDie(env, aSurfaceTransactionCallbackClass, "onMergeTransaction", "(JJJ)V"); GetMethodIDOrDie(env, aSurfaceTransactionCallbackClass, "onMergeTransaction", "(JJJ)Z"); jclass prepareSurfaceControlForWebviewCallbackClass = FindClassOrDie( env, "android/graphics/HardwareRenderer$PrepareSurfaceControlForWebviewCallback"); Loading