Merge "DO NOT MERGE: WM: Call Transaction#sanitize" into sc-v2-dev
This commit is contained in:
@@ -245,6 +245,7 @@ public final class SurfaceControl implements Parcelable {
|
||||
@SurfaceControl.BufferTransform int transformHint);
|
||||
private static native int nativeGetTransformHint(long nativeObject);
|
||||
private static native int nativeGetLayerId(long nativeObject);
|
||||
private static native void nativeSanitize(long transactionObject);
|
||||
|
||||
/**
|
||||
* Transforms that can be applied to buffers as they are displayed to a window.
|
||||
@@ -3543,6 +3544,13 @@ public final class SurfaceControl implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public void sanitize() {
|
||||
nativeSanitize(mNativeObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge the other transaction into this transaction, clearing the
|
||||
* other transaction as if it had been applied.
|
||||
|
||||
@@ -877,6 +877,11 @@ static void nativeSetDropInputMode(JNIEnv* env, jclass clazz, jlong transactionO
|
||||
transaction->setDropInputMode(ctrl, static_cast<gui::DropInputMode>(mode));
|
||||
}
|
||||
|
||||
static void nativeSanitize(JNIEnv* env, jclass clazz, jlong transactionObj) {
|
||||
auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
|
||||
transaction->sanitize();
|
||||
}
|
||||
|
||||
static jlongArray nativeGetPhysicalDisplayIds(JNIEnv* env, jclass clazz) {
|
||||
const auto displayIds = SurfaceComposerClient::getPhysicalDisplayIds();
|
||||
jlongArray array = env->NewLongArray(displayIds.size());
|
||||
@@ -2030,6 +2035,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = {
|
||||
(void*)nativeSetDropInputMode },
|
||||
{"nativeGetLayerId", "(J)I",
|
||||
(void*)nativeGetLayerId },
|
||||
{"nativeSanitize", "(J)V",
|
||||
(void*) nativeSanitize }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -2676,6 +2676,10 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
void finishDrawingWindow(Session session, IWindow client,
|
||||
@Nullable SurfaceControl.Transaction postDrawTransaction) {
|
||||
if (postDrawTransaction != null) {
|
||||
postDrawTransaction.sanitize();
|
||||
}
|
||||
|
||||
final long origId = Binder.clearCallingIdentity();
|
||||
try {
|
||||
synchronized (mGlobalLock) {
|
||||
|
||||
Reference in New Issue
Block a user