Loading core/java/android/view/HardwareRenderer.java +1 −1 Original line number Diff line number Diff line Loading @@ -235,7 +235,7 @@ public abstract class HardwareRenderer { * or not the surface used by the HardwareRenderer will be changing. It * Suspends any rendering into the surface, but will not do any destruction */ abstract void pauseSurface(Surface surface); abstract boolean pauseSurface(Surface surface); /** * Destroys all hardware rendering resources associated with the specified Loading core/java/android/view/ThreadedRenderer.java +3 −3 Original line number Diff line number Diff line Loading @@ -155,8 +155,8 @@ public class ThreadedRenderer extends HardwareRenderer { } @Override void pauseSurface(Surface surface) { nPauseSurface(mNativeProxy, surface); boolean pauseSurface(Surface surface) { return nPauseSurface(mNativeProxy, surface); } @Override Loading Loading @@ -494,7 +494,7 @@ public class ThreadedRenderer extends HardwareRenderer { private static native boolean nInitialize(long nativeProxy, Surface window); private static native void nUpdateSurface(long nativeProxy, Surface window); private static native void nPauseSurface(long nativeProxy, Surface window); private static native boolean nPauseSurface(long nativeProxy, Surface window); private static native void nSetup(long nativeProxy, int width, int height, float lightX, float lightY, float lightZ, float lightRadius, int ambientShadowAlpha, int spotShadowAlpha); Loading core/java/android/view/ViewRootImpl.java +5 −1 Original line number Diff line number Diff line Loading @@ -1493,7 +1493,11 @@ public final class ViewRootImpl implements ViewParent, // relayoutWindow may decide to destroy mSurface. As that decision // happens in WindowManager service, we need to be defensive here // and stop using the surface in case it gets destroyed. mAttachInfo.mHardwareRenderer.pauseSurface(mSurface); if (mAttachInfo.mHardwareRenderer.pauseSurface(mSurface)) { // Animations were running so we need to push a frame // to resume them mDirty.set(0, 0, mWidth, mHeight); } } final int surfaceGenerationId = mSurface.getGenerationId(); relayoutResult = relayoutWindow(params, viewVisibility, insetsPending); Loading core/jni/android_view_ThreadedRenderer.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -270,14 +270,14 @@ static void android_view_ThreadedRenderer_updateSurface(JNIEnv* env, jobject cla proxy->updateSurface(window); } static void android_view_ThreadedRenderer_pauseSurface(JNIEnv* env, jobject clazz, static jboolean android_view_ThreadedRenderer_pauseSurface(JNIEnv* env, jobject clazz, jlong proxyPtr, jobject jsurface) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); sp<ANativeWindow> window; if (jsurface) { window = android_view_Surface_getNativeWindow(env, jsurface); } proxy->pauseSurface(window); return proxy->pauseSurface(window); } static void android_view_ThreadedRenderer_setup(JNIEnv* env, jobject clazz, jlong proxyPtr, Loading Loading @@ -429,7 +429,7 @@ static JNINativeMethod gMethods[] = { { "nLoadSystemProperties", "(J)Z", (void*) android_view_ThreadedRenderer_loadSystemProperties }, { "nInitialize", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_initialize }, { "nUpdateSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_updateSurface }, { "nPauseSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_pauseSurface }, { "nPauseSurface", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_pauseSurface }, { "nSetup", "(JIIFFFFII)V", (void*) android_view_ThreadedRenderer_setup }, { "nSetOpaque", "(JZ)V", (void*) android_view_ThreadedRenderer_setOpaque }, { "nSyncAndDrawFrame", "(JJJF)I", (void*) android_view_ThreadedRenderer_syncAndDrawFrame }, Loading libs/hwui/renderthread/CanvasContext.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -123,8 +123,8 @@ void CanvasContext::updateSurface(ANativeWindow* window) { setSurface(window); } void CanvasContext::pauseSurface(ANativeWindow* window) { stopDrawing(); bool CanvasContext::pauseSurface(ANativeWindow* window) { return mRenderThread.removeFrameCallback(this); } // TODO: don't pass viewport size, it's automatic via EGL Loading Loading
core/java/android/view/HardwareRenderer.java +1 −1 Original line number Diff line number Diff line Loading @@ -235,7 +235,7 @@ public abstract class HardwareRenderer { * or not the surface used by the HardwareRenderer will be changing. It * Suspends any rendering into the surface, but will not do any destruction */ abstract void pauseSurface(Surface surface); abstract boolean pauseSurface(Surface surface); /** * Destroys all hardware rendering resources associated with the specified Loading
core/java/android/view/ThreadedRenderer.java +3 −3 Original line number Diff line number Diff line Loading @@ -155,8 +155,8 @@ public class ThreadedRenderer extends HardwareRenderer { } @Override void pauseSurface(Surface surface) { nPauseSurface(mNativeProxy, surface); boolean pauseSurface(Surface surface) { return nPauseSurface(mNativeProxy, surface); } @Override Loading Loading @@ -494,7 +494,7 @@ public class ThreadedRenderer extends HardwareRenderer { private static native boolean nInitialize(long nativeProxy, Surface window); private static native void nUpdateSurface(long nativeProxy, Surface window); private static native void nPauseSurface(long nativeProxy, Surface window); private static native boolean nPauseSurface(long nativeProxy, Surface window); private static native void nSetup(long nativeProxy, int width, int height, float lightX, float lightY, float lightZ, float lightRadius, int ambientShadowAlpha, int spotShadowAlpha); Loading
core/java/android/view/ViewRootImpl.java +5 −1 Original line number Diff line number Diff line Loading @@ -1493,7 +1493,11 @@ public final class ViewRootImpl implements ViewParent, // relayoutWindow may decide to destroy mSurface. As that decision // happens in WindowManager service, we need to be defensive here // and stop using the surface in case it gets destroyed. mAttachInfo.mHardwareRenderer.pauseSurface(mSurface); if (mAttachInfo.mHardwareRenderer.pauseSurface(mSurface)) { // Animations were running so we need to push a frame // to resume them mDirty.set(0, 0, mWidth, mHeight); } } final int surfaceGenerationId = mSurface.getGenerationId(); relayoutResult = relayoutWindow(params, viewVisibility, insetsPending); Loading
core/jni/android_view_ThreadedRenderer.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -270,14 +270,14 @@ static void android_view_ThreadedRenderer_updateSurface(JNIEnv* env, jobject cla proxy->updateSurface(window); } static void android_view_ThreadedRenderer_pauseSurface(JNIEnv* env, jobject clazz, static jboolean android_view_ThreadedRenderer_pauseSurface(JNIEnv* env, jobject clazz, jlong proxyPtr, jobject jsurface) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); sp<ANativeWindow> window; if (jsurface) { window = android_view_Surface_getNativeWindow(env, jsurface); } proxy->pauseSurface(window); return proxy->pauseSurface(window); } static void android_view_ThreadedRenderer_setup(JNIEnv* env, jobject clazz, jlong proxyPtr, Loading Loading @@ -429,7 +429,7 @@ static JNINativeMethod gMethods[] = { { "nLoadSystemProperties", "(J)Z", (void*) android_view_ThreadedRenderer_loadSystemProperties }, { "nInitialize", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_initialize }, { "nUpdateSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_updateSurface }, { "nPauseSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_pauseSurface }, { "nPauseSurface", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_pauseSurface }, { "nSetup", "(JIIFFFFII)V", (void*) android_view_ThreadedRenderer_setup }, { "nSetOpaque", "(JZ)V", (void*) android_view_ThreadedRenderer_setOpaque }, { "nSyncAndDrawFrame", "(JJJF)I", (void*) android_view_ThreadedRenderer_syncAndDrawFrame }, Loading
libs/hwui/renderthread/CanvasContext.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -123,8 +123,8 @@ void CanvasContext::updateSurface(ANativeWindow* window) { setSurface(window); } void CanvasContext::pauseSurface(ANativeWindow* window) { stopDrawing(); bool CanvasContext::pauseSurface(ANativeWindow* window) { return mRenderThread.removeFrameCallback(this); } // TODO: don't pass viewport size, it's automatic via EGL Loading