Loading core/jni/android_view_RenderNode.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -59,13 +59,14 @@ static void android_view_RenderNode_output(JNIEnv* env, static jlong android_view_RenderNode_create(JNIEnv* env, jobject clazz) { RenderNode* displayList = new RenderNode(); displayList->incStrong(0); return reinterpret_cast<jlong>(displayList); } static void android_view_RenderNode_destroyDisplayList(JNIEnv* env, jobject clazz, jlong displayListPtr) { RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr); RenderNode::destroyDisplayListDeferred(displayList); displayList->decStrong(0); } // ---------------------------------------------------------------------------- Loading libs/hwui/Caches.cpp +1 −15 Original line number Diff line number Diff line Loading @@ -315,24 +315,15 @@ void Caches::clearGarbage() { pathCache.clearGarbage(); patchCache.clearGarbage(); Vector<RenderNode*> displayLists; Vector<Layer*> layers; { // scope for the lock Mutex::Autolock _l(mGarbageLock); displayLists = mDisplayListGarbage; layers = mLayerGarbage; mDisplayListGarbage.clear(); mLayerGarbage.clear(); } size_t count = displayLists.size(); for (size_t i = 0; i < count; i++) { RenderNode* displayList = displayLists.itemAt(i); delete displayList; } count = layers.size(); size_t count = layers.size(); for (size_t i = 0; i < count; i++) { Layer* layer = layers.itemAt(i); delete layer; Loading @@ -345,11 +336,6 @@ void Caches::deleteLayerDeferred(Layer* layer) { mLayerGarbage.push(layer); } void Caches::deleteDisplayListDeferred(RenderNode* displayList) { Mutex::Autolock _l(mGarbageLock); mDisplayListGarbage.push(displayList); } void Caches::flush(FlushMode mode) { FLUSH_LOGD("Flushing caches (mode %d)", mode); Loading libs/hwui/Caches.h +0 −6 Original line number Diff line number Diff line Loading @@ -166,11 +166,6 @@ public: */ void deleteLayerDeferred(Layer* layer); /* * Can be used to delete a display list from a non EGL thread. */ void deleteDisplayListDeferred(RenderNode* layer); /** * Binds the VBO used to render simple textured quads. */ Loading Loading @@ -420,7 +415,6 @@ private: mutable Mutex mGarbageLock; Vector<Layer*> mLayerGarbage; Vector<RenderNode*> mDisplayListGarbage; DebugLevel mDebugLevel; bool mInitialized; Loading libs/hwui/DeferredLayerUpdater.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -68,13 +68,13 @@ bool DeferredLayerUpdater::apply() { mLayer->setColorFilter(mColorFilter); mLayer->setAlpha(mAlpha, mMode); if (mDisplayList) { if (mDisplayList.get()) { if (mWidth != mLayer->layer.getWidth() || mHeight != mLayer->layer.getHeight()) { success = LayerRenderer::resizeLayer(mLayer, mWidth, mHeight); } mLayer->setBlend(mBlend); mDisplayList->updateProperties(); mLayer->updateDeferred(mDisplayList, mLayer->updateDeferred(mDisplayList.get(), mDirtyRect.left, mDirtyRect.top, mDirtyRect.right, mDirtyRect.bottom); mDirtyRect.setEmpty(); mDisplayList = 0; Loading libs/hwui/DeferredLayerUpdater.h +1 −1 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ private: // Layer type specific properties // displayList and surfaceTexture are mutually exclusive, only 1 may be set // dirtyRect is only valid if displayList is set RenderNode* mDisplayList; sp<RenderNode> mDisplayList; Rect mDirtyRect; sp<GLConsumer> mSurfaceTexture; SkMatrix* mTransform; Loading Loading
core/jni/android_view_RenderNode.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -59,13 +59,14 @@ static void android_view_RenderNode_output(JNIEnv* env, static jlong android_view_RenderNode_create(JNIEnv* env, jobject clazz) { RenderNode* displayList = new RenderNode(); displayList->incStrong(0); return reinterpret_cast<jlong>(displayList); } static void android_view_RenderNode_destroyDisplayList(JNIEnv* env, jobject clazz, jlong displayListPtr) { RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr); RenderNode::destroyDisplayListDeferred(displayList); displayList->decStrong(0); } // ---------------------------------------------------------------------------- Loading
libs/hwui/Caches.cpp +1 −15 Original line number Diff line number Diff line Loading @@ -315,24 +315,15 @@ void Caches::clearGarbage() { pathCache.clearGarbage(); patchCache.clearGarbage(); Vector<RenderNode*> displayLists; Vector<Layer*> layers; { // scope for the lock Mutex::Autolock _l(mGarbageLock); displayLists = mDisplayListGarbage; layers = mLayerGarbage; mDisplayListGarbage.clear(); mLayerGarbage.clear(); } size_t count = displayLists.size(); for (size_t i = 0; i < count; i++) { RenderNode* displayList = displayLists.itemAt(i); delete displayList; } count = layers.size(); size_t count = layers.size(); for (size_t i = 0; i < count; i++) { Layer* layer = layers.itemAt(i); delete layer; Loading @@ -345,11 +336,6 @@ void Caches::deleteLayerDeferred(Layer* layer) { mLayerGarbage.push(layer); } void Caches::deleteDisplayListDeferred(RenderNode* displayList) { Mutex::Autolock _l(mGarbageLock); mDisplayListGarbage.push(displayList); } void Caches::flush(FlushMode mode) { FLUSH_LOGD("Flushing caches (mode %d)", mode); Loading
libs/hwui/Caches.h +0 −6 Original line number Diff line number Diff line Loading @@ -166,11 +166,6 @@ public: */ void deleteLayerDeferred(Layer* layer); /* * Can be used to delete a display list from a non EGL thread. */ void deleteDisplayListDeferred(RenderNode* layer); /** * Binds the VBO used to render simple textured quads. */ Loading Loading @@ -420,7 +415,6 @@ private: mutable Mutex mGarbageLock; Vector<Layer*> mLayerGarbage; Vector<RenderNode*> mDisplayListGarbage; DebugLevel mDebugLevel; bool mInitialized; Loading
libs/hwui/DeferredLayerUpdater.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -68,13 +68,13 @@ bool DeferredLayerUpdater::apply() { mLayer->setColorFilter(mColorFilter); mLayer->setAlpha(mAlpha, mMode); if (mDisplayList) { if (mDisplayList.get()) { if (mWidth != mLayer->layer.getWidth() || mHeight != mLayer->layer.getHeight()) { success = LayerRenderer::resizeLayer(mLayer, mWidth, mHeight); } mLayer->setBlend(mBlend); mDisplayList->updateProperties(); mLayer->updateDeferred(mDisplayList, mLayer->updateDeferred(mDisplayList.get(), mDirtyRect.left, mDirtyRect.top, mDirtyRect.right, mDirtyRect.bottom); mDirtyRect.setEmpty(); mDisplayList = 0; Loading
libs/hwui/DeferredLayerUpdater.h +1 −1 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ private: // Layer type specific properties // displayList and surfaceTexture are mutually exclusive, only 1 may be set // dirtyRect is only valid if displayList is set RenderNode* mDisplayList; sp<RenderNode> mDisplayList; Rect mDirtyRect; sp<GLConsumer> mSurfaceTexture; SkMatrix* mTransform; Loading