Loading core/java/android/view/GLRenderer.java +5 −0 Original line number Diff line number Diff line Loading @@ -1226,6 +1226,11 @@ public class GLRenderer extends HardwareRenderer { } private static native void nSetDisplayListData(long displayList, long newData); @Override void fence() { // Everything is immediate, so this is a no-op } private RenderNode buildDisplayList(View view, HardwareCanvas canvas) { if (mDrawDelta <= 0) { return view.mRenderNode; Loading core/java/android/view/HardwareRenderer.java +5 −0 Original line number Diff line number Diff line Loading @@ -575,6 +575,11 @@ public abstract class HardwareRenderer { abstract void setDisplayListData(long displayList, long newData); /** * Blocks until all previously queued work has completed. */ abstract void fence(); /** * Describes a series of frames that should be drawn on screen as a graph. * Each frame is composed of 1 or more elements. Loading core/java/android/view/ThreadedRenderer.java +7 −0 Original line number Diff line number Diff line Loading @@ -244,6 +244,11 @@ public class ThreadedRenderer extends HardwareRenderer { void setName(String name) { } @Override void fence() { nFence(mNativeProxy); } @Override protected void finalize() throws Throwable { try { Loading Loading @@ -277,4 +282,6 @@ public class ThreadedRenderer extends HardwareRenderer { private static native long nCreateTextureLayer(long nativeProxy); private static native boolean nCopyLayerInto(long nativeProxy, long layer, long bitmap); private static native void nDestroyLayer(long nativeProxy, long layer); private static native void nFence(long nativeProxy); } core/java/android/view/ViewRootImpl.java +3 −0 Original line number Diff line number Diff line Loading @@ -2259,6 +2259,9 @@ public final class ViewRootImpl implements ViewParent, if (mReportNextDraw) { mReportNextDraw = false; if (mAttachInfo.mHardwareRenderer != null) { mAttachInfo.mHardwareRenderer.fence(); } if (LOCAL_LOGV) { Log.v(TAG, "FINISHED DRAWING: " + mWindowAttributes.getTitle()); Loading core/jni/android_view_ThreadedRenderer.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,12 @@ static void android_view_ThreadedRenderer_destroyLayer(JNIEnv* env, jobject claz proxy->destroyLayer(layer); } static void android_view_ThreadedRenderer_fence(JNIEnv* env, jobject clazz, jlong proxyPtr) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); proxy->fence(); } #endif // ---------------------------------------------------------------------------- Loading Loading @@ -209,6 +215,7 @@ static JNINativeMethod gMethods[] = { { "nCreateTextureLayer", "(J)J", (void*) android_view_ThreadedRenderer_createTextureLayer }, { "nCopyLayerInto", "(JJJ)Z", (void*) android_view_ThreadedRenderer_copyLayerInto }, { "nDestroyLayer", "(JJ)V", (void*) android_view_ThreadedRenderer_destroyLayer }, { "nFence", "(J)V", (void*) android_view_ThreadedRenderer_fence }, #endif }; Loading Loading
core/java/android/view/GLRenderer.java +5 −0 Original line number Diff line number Diff line Loading @@ -1226,6 +1226,11 @@ public class GLRenderer extends HardwareRenderer { } private static native void nSetDisplayListData(long displayList, long newData); @Override void fence() { // Everything is immediate, so this is a no-op } private RenderNode buildDisplayList(View view, HardwareCanvas canvas) { if (mDrawDelta <= 0) { return view.mRenderNode; Loading
core/java/android/view/HardwareRenderer.java +5 −0 Original line number Diff line number Diff line Loading @@ -575,6 +575,11 @@ public abstract class HardwareRenderer { abstract void setDisplayListData(long displayList, long newData); /** * Blocks until all previously queued work has completed. */ abstract void fence(); /** * Describes a series of frames that should be drawn on screen as a graph. * Each frame is composed of 1 or more elements. Loading
core/java/android/view/ThreadedRenderer.java +7 −0 Original line number Diff line number Diff line Loading @@ -244,6 +244,11 @@ public class ThreadedRenderer extends HardwareRenderer { void setName(String name) { } @Override void fence() { nFence(mNativeProxy); } @Override protected void finalize() throws Throwable { try { Loading Loading @@ -277,4 +282,6 @@ public class ThreadedRenderer extends HardwareRenderer { private static native long nCreateTextureLayer(long nativeProxy); private static native boolean nCopyLayerInto(long nativeProxy, long layer, long bitmap); private static native void nDestroyLayer(long nativeProxy, long layer); private static native void nFence(long nativeProxy); }
core/java/android/view/ViewRootImpl.java +3 −0 Original line number Diff line number Diff line Loading @@ -2259,6 +2259,9 @@ public final class ViewRootImpl implements ViewParent, if (mReportNextDraw) { mReportNextDraw = false; if (mAttachInfo.mHardwareRenderer != null) { mAttachInfo.mHardwareRenderer.fence(); } if (LOCAL_LOGV) { Log.v(TAG, "FINISHED DRAWING: " + mWindowAttributes.getTitle()); Loading
core/jni/android_view_ThreadedRenderer.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,12 @@ static void android_view_ThreadedRenderer_destroyLayer(JNIEnv* env, jobject claz proxy->destroyLayer(layer); } static void android_view_ThreadedRenderer_fence(JNIEnv* env, jobject clazz, jlong proxyPtr) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); proxy->fence(); } #endif // ---------------------------------------------------------------------------- Loading Loading @@ -209,6 +215,7 @@ static JNINativeMethod gMethods[] = { { "nCreateTextureLayer", "(J)J", (void*) android_view_ThreadedRenderer_createTextureLayer }, { "nCopyLayerInto", "(JJJ)Z", (void*) android_view_ThreadedRenderer_copyLayerInto }, { "nDestroyLayer", "(JJ)V", (void*) android_view_ThreadedRenderer_destroyLayer }, { "nFence", "(J)V", (void*) android_view_ThreadedRenderer_fence }, #endif }; Loading