Loading core/java/android/view/ThreadedRenderer.java +2 −2 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ public class ThreadedRenderer extends HardwareRenderer { void destroy(boolean full) { mInitialized = false; updateEnabledState(null); nDestroyCanvas(mNativeProxy); nDestroyCanvasAndSurface(mNativeProxy); } private void updateEnabledState(Surface surface) { Loading Loading @@ -300,7 +300,7 @@ public class ThreadedRenderer extends HardwareRenderer { private static native void nDrawDisplayList(long nativeProxy, long displayList, int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom); private static native void nRunWithGlContext(long nativeProxy, Runnable runnable); private static native void nDestroyCanvas(long nativeProxy); private static native void nDestroyCanvasAndSurface(long nativeProxy); private static native void nInvokeFunctor(long nativeProxy, long functor, boolean waitForCompletion); Loading core/jni/android_view_ThreadedRenderer.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -121,10 +121,10 @@ static void android_view_ThreadedRenderer_drawDisplayList(JNIEnv* env, jobject c proxy->drawDisplayList(displayList, dirtyLeft, dirtyTop, dirtyRight, dirtyBottom); } static void android_view_ThreadedRenderer_destroyCanvas(JNIEnv* env, jobject clazz, static void android_view_ThreadedRenderer_destroyCanvasAndSurface(JNIEnv* env, jobject clazz, jlong proxyPtr) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); proxy->destroyCanvas(); proxy->destroyCanvasAndSurface(); } static void android_view_ThreadedRenderer_invokeFunctor(JNIEnv* env, jobject clazz, Loading Loading @@ -194,7 +194,7 @@ static JNINativeMethod gMethods[] = { { "nPauseSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_pauseSurface }, { "nSetup", "(JII)V", (void*) android_view_ThreadedRenderer_setup }, { "nDrawDisplayList", "(JJIIII)V", (void*) android_view_ThreadedRenderer_drawDisplayList }, { "nDestroyCanvas", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvas }, { "nDestroyCanvasAndSurface", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvasAndSurface }, { "nInvokeFunctor", "(JJZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor }, { "nRunWithGlContext", "(JLjava/lang/Runnable;)V", (void*) android_view_ThreadedRenderer_runWithGlContext }, { "nCreateDisplayListLayer", "(JII)J", (void*) android_view_ThreadedRenderer_createDisplayListLayer }, Loading libs/hwui/renderthread/CanvasContext.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -318,10 +318,10 @@ CanvasContext::CanvasContext(bool translucent) } CanvasContext::~CanvasContext() { destroyCanvas(); destroyCanvasAndSurface(); } void CanvasContext::destroyCanvas() { void CanvasContext::destroyCanvasAndSurface() { if (mCanvas) { delete mCanvas; mCanvas = 0; Loading libs/hwui/renderthread/CanvasContext.h +1 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ public: void setup(int width, int height); void processLayerUpdates(const Vector<DeferredLayerUpdater*>* layerUpdaters, bool* hasFunctors); void drawDisplayList(RenderNode* displayList, Rect* dirty); void destroyCanvas(); void destroyCanvasAndSurface(); bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap); Loading libs/hwui/renderthread/RenderProxy.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -140,15 +140,18 @@ void RenderProxy::drawDisplayList(RenderNode* displayList, mDrawFrameTask.drawFrame(&mRenderThread); } CREATE_BRIDGE1(destroyCanvas, CanvasContext* context) { args->context->destroyCanvas(); CREATE_BRIDGE1(destroyCanvasAndSurface, CanvasContext* context) { args->context->destroyCanvasAndSurface(); return NULL; } void RenderProxy::destroyCanvas() { SETUP_TASK(destroyCanvas); void RenderProxy::destroyCanvasAndSurface() { SETUP_TASK(destroyCanvasAndSurface); args->context = mContext; post(task); // destroyCanvasAndSurface() needs a fence as when it returns the // underlying BufferQueue is going to be released from under // the render thread. postAndWait(task); } CREATE_BRIDGE2(invokeFunctor, CanvasContext* context, Functor* functor) { Loading Loading
core/java/android/view/ThreadedRenderer.java +2 −2 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ public class ThreadedRenderer extends HardwareRenderer { void destroy(boolean full) { mInitialized = false; updateEnabledState(null); nDestroyCanvas(mNativeProxy); nDestroyCanvasAndSurface(mNativeProxy); } private void updateEnabledState(Surface surface) { Loading Loading @@ -300,7 +300,7 @@ public class ThreadedRenderer extends HardwareRenderer { private static native void nDrawDisplayList(long nativeProxy, long displayList, int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom); private static native void nRunWithGlContext(long nativeProxy, Runnable runnable); private static native void nDestroyCanvas(long nativeProxy); private static native void nDestroyCanvasAndSurface(long nativeProxy); private static native void nInvokeFunctor(long nativeProxy, long functor, boolean waitForCompletion); Loading
core/jni/android_view_ThreadedRenderer.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -121,10 +121,10 @@ static void android_view_ThreadedRenderer_drawDisplayList(JNIEnv* env, jobject c proxy->drawDisplayList(displayList, dirtyLeft, dirtyTop, dirtyRight, dirtyBottom); } static void android_view_ThreadedRenderer_destroyCanvas(JNIEnv* env, jobject clazz, static void android_view_ThreadedRenderer_destroyCanvasAndSurface(JNIEnv* env, jobject clazz, jlong proxyPtr) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); proxy->destroyCanvas(); proxy->destroyCanvasAndSurface(); } static void android_view_ThreadedRenderer_invokeFunctor(JNIEnv* env, jobject clazz, Loading Loading @@ -194,7 +194,7 @@ static JNINativeMethod gMethods[] = { { "nPauseSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_pauseSurface }, { "nSetup", "(JII)V", (void*) android_view_ThreadedRenderer_setup }, { "nDrawDisplayList", "(JJIIII)V", (void*) android_view_ThreadedRenderer_drawDisplayList }, { "nDestroyCanvas", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvas }, { "nDestroyCanvasAndSurface", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvasAndSurface }, { "nInvokeFunctor", "(JJZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor }, { "nRunWithGlContext", "(JLjava/lang/Runnable;)V", (void*) android_view_ThreadedRenderer_runWithGlContext }, { "nCreateDisplayListLayer", "(JII)J", (void*) android_view_ThreadedRenderer_createDisplayListLayer }, Loading
libs/hwui/renderthread/CanvasContext.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -318,10 +318,10 @@ CanvasContext::CanvasContext(bool translucent) } CanvasContext::~CanvasContext() { destroyCanvas(); destroyCanvasAndSurface(); } void CanvasContext::destroyCanvas() { void CanvasContext::destroyCanvasAndSurface() { if (mCanvas) { delete mCanvas; mCanvas = 0; Loading
libs/hwui/renderthread/CanvasContext.h +1 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ public: void setup(int width, int height); void processLayerUpdates(const Vector<DeferredLayerUpdater*>* layerUpdaters, bool* hasFunctors); void drawDisplayList(RenderNode* displayList, Rect* dirty); void destroyCanvas(); void destroyCanvasAndSurface(); bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap); Loading
libs/hwui/renderthread/RenderProxy.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -140,15 +140,18 @@ void RenderProxy::drawDisplayList(RenderNode* displayList, mDrawFrameTask.drawFrame(&mRenderThread); } CREATE_BRIDGE1(destroyCanvas, CanvasContext* context) { args->context->destroyCanvas(); CREATE_BRIDGE1(destroyCanvasAndSurface, CanvasContext* context) { args->context->destroyCanvasAndSurface(); return NULL; } void RenderProxy::destroyCanvas() { SETUP_TASK(destroyCanvas); void RenderProxy::destroyCanvasAndSurface() { SETUP_TASK(destroyCanvasAndSurface); args->context = mContext; post(task); // destroyCanvasAndSurface() needs a fence as when it returns the // underlying BufferQueue is going to be released from under // the render thread. postAndWait(task); } CREATE_BRIDGE2(invokeFunctor, CanvasContext* context, Functor* functor) { Loading