From 856d4e1a872b5aed6792b33e0360554cb3d19eed Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Fri, 14 Oct 2011 15:47:55 -0700 Subject: [PATCH] Disable hardware acceleration for apps in compatibility mode Change-Id: I2d1c01a30c6fe6fff85c2a9bd6ee6de98e1ed422 --- core/java/android/view/ViewRootImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 7eae7395e9194..b9e0fe8b6f1b6 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -425,20 +425,17 @@ public final class ViewRootImpl extends Handler implements ViewParent, } } + CompatibilityInfo compatibilityInfo = mCompatibilityInfo.get(); + mTranslator = compatibilityInfo.getTranslator(); + // If the application owns the surface, don't enable hardware acceleration if (mSurfaceHolder == null) { enableHardwareAcceleration(attrs); } - CompatibilityInfo compatibilityInfo = mCompatibilityInfo.get(); - mTranslator = compatibilityInfo.getTranslator(); - - if (mTranslator != null) { - mSurface.setCompatibilityTranslator(mTranslator); - } - boolean restore = false; if (mTranslator != null) { + mSurface.setCompatibilityTranslator(mTranslator); restore = true; attrs.backup(); mTranslator.translateWindowLayout(attrs); @@ -590,6 +587,9 @@ public final class ViewRootImpl extends Handler implements ViewParent, mAttachInfo.mHardwareAccelerated = false; mAttachInfo.mHardwareAccelerationRequested = false; + // Don't enable hardware acceleration when the application is in compatibility mode + if (mTranslator != null) return; + // Try to enable hardware acceleration if requested final boolean hardwareAccelerated = (attrs.flags & WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED) != 0;