Loading core/java/android/view/HardwareRenderer.java +29 −0 Original line number Diff line number Diff line Loading @@ -183,6 +183,22 @@ public abstract class HardwareRenderer { */ abstract void setup(int width, int height); /** * Gets the current width of the surface. This is the width that the surface * was last set to in a call to {@link #setup(int, int)}. * * @return the current width of the surface */ abstract int getWidth(); /** * Gets the current height of the surface. This is the height that the surface * was last set to in a call to {@link #setup(int, int)}. * * @return the current width of the surface */ abstract int getHeight(); /** * Interface used to receive callbacks whenever a view is drawn by * a hardware renderer instance. Loading Loading @@ -362,6 +378,7 @@ public abstract class HardwareRenderer { static EGLDisplay sEglDisplay; static EGLConfig sEglConfig; static final Object[] sEglLock = new Object[0]; int mWidth = -1, mHeight = -1; static final ThreadLocal<EGLContext> sEglContextStorage = new ThreadLocal<EGLContext>(); Loading Loading @@ -714,7 +731,19 @@ public abstract class HardwareRenderer { void setup(int width, int height) { if (validate()) { mCanvas.setViewport(width, height); mWidth = width; mHeight = height; } } @Override int getWidth() { return mWidth; } @Override int getHeight() { return mHeight; } boolean canDraw() { Loading core/java/android/view/ViewRootImpl.java +9 −9 Original line number Diff line number Diff line Loading @@ -860,7 +860,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, CompatibilityInfo compatibilityInfo = mCompatibilityInfo.get(); if (compatibilityInfo.supportsScreen() == mLastInCompatMode) { params = lp; windowAttributesChanges |= WindowManager.LayoutParams.BUFFER_CHANGED; fullRedrawNeeded = true; mLayoutRequested = true; if (mLastInCompatMode) { Loading Loading @@ -1078,7 +1077,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, ~WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST) | resizeMode; params = lp; windowAttributesChanges |= WindowManager.LayoutParams.BUFFER_CHANGED; } } } Loading Loading @@ -1375,15 +1373,17 @@ public final class ViewRootImpl extends Handler implements ViewParent, } } if (hwInitialized || ((windowShouldResize || (params != null && (windowAttributesChanges & WindowManager.LayoutParams.BUFFER_CHANGED) != 0)) && mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled())) { if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { if (hwInitialized || windowShouldResize || mWidth != mAttachInfo.mHardwareRenderer.getWidth() || mHeight != mAttachInfo.mHardwareRenderer.getHeight()) { mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight); if (!hwInitialized && mAttachInfo.mHardwareRenderer.isEnabled()) { if (!hwInitialized) { mAttachInfo.mHardwareRenderer.invalidate(mHolder); } } } if (!mStopped) { boolean focusChangedDueToTouchMode = ensureTouchModeLocally( Loading core/java/android/view/WindowManager.java +10 −12 Original line number Diff line number Diff line Loading @@ -1260,8 +1260,6 @@ public interface WindowManager extends ViewManager { /** {@hide} */ public static final int PRIVATE_FLAGS_CHANGED = 1<<16; /** {@hide} */ public static final int BUFFER_CHANGED = 1<<17; /** {@hide} */ public static final int EVERYTHING_CHANGED = 0xffffffff; // internal buffer to backup/restore parameters under compatibility mode. Loading @@ -1272,11 +1270,11 @@ public interface WindowManager extends ViewManager { if (width != o.width) { width = o.width; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (height != o.height) { height = o.height; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (x != o.x) { x = o.x; Loading @@ -1288,19 +1286,19 @@ public interface WindowManager extends ViewManager { } if (horizontalWeight != o.horizontalWeight) { horizontalWeight = o.horizontalWeight; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (verticalWeight != o.verticalWeight) { verticalWeight = o.verticalWeight; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (horizontalMargin != o.horizontalMargin) { horizontalMargin = o.horizontalMargin; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (verticalMargin != o.verticalMargin) { verticalMargin = o.verticalMargin; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (type != o.type) { type = o.type; Loading @@ -1308,7 +1306,7 @@ public interface WindowManager extends ViewManager { } if (flags != o.flags) { flags = o.flags; changes |= FLAGS_CHANGED | BUFFER_CHANGED; changes |= FLAGS_CHANGED; } if (privateFlags != o.privateFlags) { privateFlags = o.privateFlags; Loading @@ -1320,11 +1318,11 @@ public interface WindowManager extends ViewManager { } if (gravity != o.gravity) { gravity = o.gravity; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (format != o.format) { format = o.format; changes |= FORMAT_CHANGED | BUFFER_CHANGED; changes |= FORMAT_CHANGED; } if (windowAnimations != o.windowAnimations) { windowAnimations = o.windowAnimations; Loading Loading @@ -1363,7 +1361,7 @@ public interface WindowManager extends ViewManager { if (screenOrientation != o.screenOrientation) { screenOrientation = o.screenOrientation; changes |= SCREEN_ORIENTATION_CHANGED | BUFFER_CHANGED; changes |= SCREEN_ORIENTATION_CHANGED; } if (systemUiVisibility != o.systemUiVisibility Loading Loading
core/java/android/view/HardwareRenderer.java +29 −0 Original line number Diff line number Diff line Loading @@ -183,6 +183,22 @@ public abstract class HardwareRenderer { */ abstract void setup(int width, int height); /** * Gets the current width of the surface. This is the width that the surface * was last set to in a call to {@link #setup(int, int)}. * * @return the current width of the surface */ abstract int getWidth(); /** * Gets the current height of the surface. This is the height that the surface * was last set to in a call to {@link #setup(int, int)}. * * @return the current width of the surface */ abstract int getHeight(); /** * Interface used to receive callbacks whenever a view is drawn by * a hardware renderer instance. Loading Loading @@ -362,6 +378,7 @@ public abstract class HardwareRenderer { static EGLDisplay sEglDisplay; static EGLConfig sEglConfig; static final Object[] sEglLock = new Object[0]; int mWidth = -1, mHeight = -1; static final ThreadLocal<EGLContext> sEglContextStorage = new ThreadLocal<EGLContext>(); Loading Loading @@ -714,7 +731,19 @@ public abstract class HardwareRenderer { void setup(int width, int height) { if (validate()) { mCanvas.setViewport(width, height); mWidth = width; mHeight = height; } } @Override int getWidth() { return mWidth; } @Override int getHeight() { return mHeight; } boolean canDraw() { Loading
core/java/android/view/ViewRootImpl.java +9 −9 Original line number Diff line number Diff line Loading @@ -860,7 +860,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, CompatibilityInfo compatibilityInfo = mCompatibilityInfo.get(); if (compatibilityInfo.supportsScreen() == mLastInCompatMode) { params = lp; windowAttributesChanges |= WindowManager.LayoutParams.BUFFER_CHANGED; fullRedrawNeeded = true; mLayoutRequested = true; if (mLastInCompatMode) { Loading Loading @@ -1078,7 +1077,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, ~WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST) | resizeMode; params = lp; windowAttributesChanges |= WindowManager.LayoutParams.BUFFER_CHANGED; } } } Loading Loading @@ -1375,15 +1373,17 @@ public final class ViewRootImpl extends Handler implements ViewParent, } } if (hwInitialized || ((windowShouldResize || (params != null && (windowAttributesChanges & WindowManager.LayoutParams.BUFFER_CHANGED) != 0)) && mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled())) { if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { if (hwInitialized || windowShouldResize || mWidth != mAttachInfo.mHardwareRenderer.getWidth() || mHeight != mAttachInfo.mHardwareRenderer.getHeight()) { mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight); if (!hwInitialized && mAttachInfo.mHardwareRenderer.isEnabled()) { if (!hwInitialized) { mAttachInfo.mHardwareRenderer.invalidate(mHolder); } } } if (!mStopped) { boolean focusChangedDueToTouchMode = ensureTouchModeLocally( Loading
core/java/android/view/WindowManager.java +10 −12 Original line number Diff line number Diff line Loading @@ -1260,8 +1260,6 @@ public interface WindowManager extends ViewManager { /** {@hide} */ public static final int PRIVATE_FLAGS_CHANGED = 1<<16; /** {@hide} */ public static final int BUFFER_CHANGED = 1<<17; /** {@hide} */ public static final int EVERYTHING_CHANGED = 0xffffffff; // internal buffer to backup/restore parameters under compatibility mode. Loading @@ -1272,11 +1270,11 @@ public interface WindowManager extends ViewManager { if (width != o.width) { width = o.width; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (height != o.height) { height = o.height; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (x != o.x) { x = o.x; Loading @@ -1288,19 +1286,19 @@ public interface WindowManager extends ViewManager { } if (horizontalWeight != o.horizontalWeight) { horizontalWeight = o.horizontalWeight; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (verticalWeight != o.verticalWeight) { verticalWeight = o.verticalWeight; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (horizontalMargin != o.horizontalMargin) { horizontalMargin = o.horizontalMargin; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (verticalMargin != o.verticalMargin) { verticalMargin = o.verticalMargin; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (type != o.type) { type = o.type; Loading @@ -1308,7 +1306,7 @@ public interface WindowManager extends ViewManager { } if (flags != o.flags) { flags = o.flags; changes |= FLAGS_CHANGED | BUFFER_CHANGED; changes |= FLAGS_CHANGED; } if (privateFlags != o.privateFlags) { privateFlags = o.privateFlags; Loading @@ -1320,11 +1318,11 @@ public interface WindowManager extends ViewManager { } if (gravity != o.gravity) { gravity = o.gravity; changes |= LAYOUT_CHANGED | BUFFER_CHANGED; changes |= LAYOUT_CHANGED; } if (format != o.format) { format = o.format; changes |= FORMAT_CHANGED | BUFFER_CHANGED; changes |= FORMAT_CHANGED; } if (windowAnimations != o.windowAnimations) { windowAnimations = o.windowAnimations; Loading Loading @@ -1363,7 +1361,7 @@ public interface WindowManager extends ViewManager { if (screenOrientation != o.screenOrientation) { screenOrientation = o.screenOrientation; changes |= SCREEN_ORIENTATION_CHANGED | BUFFER_CHANGED; changes |= SCREEN_ORIENTATION_CHANGED; } if (systemUiVisibility != o.systemUiVisibility Loading