Loading core/java/android/view/HardwareLayer.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -66,8 +66,7 @@ final class HardwareLayer { * @see View#setLayerPaint(android.graphics.Paint) * @see View#setLayerPaint(android.graphics.Paint) */ */ public void setLayerPaint(Paint paint) { public void setLayerPaint(Paint paint) { nSetLayerPaint(mFinalizer.mDeferredUpdater, paint.mNativePaint, nSetLayerPaint(mFinalizer.mDeferredUpdater, paint.mNativePaint); paint.getColorFilter() != null ? paint.getColorFilter().native_instance : 0); } } /** /** Loading Loading @@ -270,7 +269,7 @@ final class HardwareLayer { private static native void nDestroyLayerUpdater(long layerUpdater); private static native void nDestroyLayerUpdater(long layerUpdater); private static native boolean nPrepare(long layerUpdater, int width, int height, boolean isOpaque); private static native boolean nPrepare(long layerUpdater, int width, int height, boolean isOpaque); private static native void nSetLayerPaint(long layerUpdater, long paint, long colorFilter); private static native void nSetLayerPaint(long layerUpdater, long paint); private static native void nSetTransform(long layerUpdater, long matrix); private static native void nSetTransform(long layerUpdater, long matrix); private static native void nSetSurfaceTexture(long layerUpdater, private static native void nSetSurfaceTexture(long layerUpdater, SurfaceTexture surface, boolean isAlreadyAttached); SurfaceTexture surface, boolean isAlreadyAttached); Loading core/jni/android_view_HardwareLayer.cpp +2 −4 Original line number Original line Diff line number Diff line Loading @@ -88,13 +88,11 @@ static jboolean android_view_HardwareLayer_prepare(JNIEnv* env, jobject clazz, } } static void android_view_HardwareLayer_setLayerPaint(JNIEnv* env, jobject clazz, static void android_view_HardwareLayer_setLayerPaint(JNIEnv* env, jobject clazz, jlong layerUpdaterPtr, jlong paintPtr, jlong colorFilterPtr) { jlong layerUpdaterPtr, jlong paintPtr) { DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); if (layer) { if (layer) { SkPaint* paint = reinterpret_cast<SkPaint*>(paintPtr); SkPaint* paint = reinterpret_cast<SkPaint*>(paintPtr); SkColorFilter* colorFilter = reinterpret_cast<SkColorFilter*>(colorFilterPtr); layer->setPaint(paint); layer->setPaint(paint); layer->setColorFilter(colorFilter); } } } } Loading Loading @@ -162,7 +160,7 @@ static JNINativeMethod gMethods[] = { { "nDestroyLayerUpdater", "(J)V", (void*) android_view_HardwareLayer_destroyLayerUpdater }, { "nDestroyLayerUpdater", "(J)V", (void*) android_view_HardwareLayer_destroyLayerUpdater }, { "nPrepare", "(JIIZ)Z", (void*) android_view_HardwareLayer_prepare }, { "nPrepare", "(JIIZ)Z", (void*) android_view_HardwareLayer_prepare }, { "nSetLayerPaint", "(JJJ)V", (void*) android_view_HardwareLayer_setLayerPaint }, { "nSetLayerPaint", "(JJ)V", (void*) android_view_HardwareLayer_setLayerPaint }, { "nSetTransform", "(JJ)V", (void*) android_view_HardwareLayer_setTransform }, { "nSetTransform", "(JJ)V", (void*) android_view_HardwareLayer_setTransform }, { "nSetSurfaceTexture", "(JLandroid/graphics/SurfaceTexture;Z)V", { "nSetSurfaceTexture", "(JLandroid/graphics/SurfaceTexture;Z)V", (void*) android_view_HardwareLayer_setSurfaceTexture }, (void*) android_view_HardwareLayer_setSurfaceTexture }, Loading libs/hwui/DeferredLayerUpdater.cpp +5 −3 Original line number Original line Diff line number Diff line Loading @@ -34,21 +34,23 @@ DeferredLayerUpdater::DeferredLayerUpdater(Layer* layer, OpenGLRenderer* rendere mWidth = mLayer->layer.getWidth(); mWidth = mLayer->layer.getWidth(); mHeight = mLayer->layer.getHeight(); mHeight = mLayer->layer.getHeight(); mBlend = mLayer->isBlend(); mBlend = mLayer->isBlend(); mColorFilter = mLayer->getColorFilter(); mColorFilter = SkSafeRef(mLayer->getColorFilter()); mAlpha = mLayer->getAlpha(); mAlpha = mLayer->getAlpha(); mMode = mLayer->getMode(); mMode = mLayer->getMode(); mDirtyRect.setEmpty(); mDirtyRect.setEmpty(); } } DeferredLayerUpdater::~DeferredLayerUpdater() { DeferredLayerUpdater::~DeferredLayerUpdater() { setColorFilter(NULL); SkSafeUnref(mColorFilter); if (mLayer) { if (mLayer) { mCaches.resourceCache.decrementRefcount(mLayer); mCaches.resourceCache.decrementRefcount(mLayer); } } delete mRenderer; delete mRenderer; } } void DeferredLayerUpdater::setColorFilter(SkColorFilter* colorFilter) { void DeferredLayerUpdater::setPaint(const SkPaint* paint) { OpenGLRenderer::getAlphaAndModeDirect(paint, &mAlpha, &mMode); SkColorFilter* colorFilter = (paint) ? paint->getColorFilter() : NULL; SkRefCnt_SafeAssign(mColorFilter, colorFilter); SkRefCnt_SafeAssign(mColorFilter, colorFilter); } } Loading libs/hwui/DeferredLayerUpdater.h +1 −5 Original line number Original line Diff line number Diff line Loading @@ -75,11 +75,7 @@ public: ANDROID_API void setDisplayList(DisplayList* displayList, ANDROID_API void setDisplayList(DisplayList* displayList, int left, int top, int right, int bottom); int left, int top, int right, int bottom); ANDROID_API void setPaint(const SkPaint* paint) { ANDROID_API void setPaint(const SkPaint* paint); OpenGLRenderer::getAlphaAndModeDirect(paint, &mAlpha, &mMode); } ANDROID_API void setColorFilter(SkColorFilter* colorFilter); ANDROID_API bool apply(); ANDROID_API bool apply(); Loading libs/hwui/Layer.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -131,8 +131,9 @@ void Layer::removeFbo(bool flush) { } } } } void Layer::setPaint(SkPaint* paint) { void Layer::setPaint(const SkPaint* paint) { OpenGLRenderer::getAlphaAndModeDirect(paint, &alpha, &mode); OpenGLRenderer::getAlphaAndModeDirect(paint, &alpha, &mode); setColorFilter((paint) ? paint->getColorFilter() : NULL); } } void Layer::setColorFilter(SkColorFilter* filter) { void Layer::setColorFilter(SkColorFilter* filter) { Loading Loading
core/java/android/view/HardwareLayer.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -66,8 +66,7 @@ final class HardwareLayer { * @see View#setLayerPaint(android.graphics.Paint) * @see View#setLayerPaint(android.graphics.Paint) */ */ public void setLayerPaint(Paint paint) { public void setLayerPaint(Paint paint) { nSetLayerPaint(mFinalizer.mDeferredUpdater, paint.mNativePaint, nSetLayerPaint(mFinalizer.mDeferredUpdater, paint.mNativePaint); paint.getColorFilter() != null ? paint.getColorFilter().native_instance : 0); } } /** /** Loading Loading @@ -270,7 +269,7 @@ final class HardwareLayer { private static native void nDestroyLayerUpdater(long layerUpdater); private static native void nDestroyLayerUpdater(long layerUpdater); private static native boolean nPrepare(long layerUpdater, int width, int height, boolean isOpaque); private static native boolean nPrepare(long layerUpdater, int width, int height, boolean isOpaque); private static native void nSetLayerPaint(long layerUpdater, long paint, long colorFilter); private static native void nSetLayerPaint(long layerUpdater, long paint); private static native void nSetTransform(long layerUpdater, long matrix); private static native void nSetTransform(long layerUpdater, long matrix); private static native void nSetSurfaceTexture(long layerUpdater, private static native void nSetSurfaceTexture(long layerUpdater, SurfaceTexture surface, boolean isAlreadyAttached); SurfaceTexture surface, boolean isAlreadyAttached); Loading
core/jni/android_view_HardwareLayer.cpp +2 −4 Original line number Original line Diff line number Diff line Loading @@ -88,13 +88,11 @@ static jboolean android_view_HardwareLayer_prepare(JNIEnv* env, jobject clazz, } } static void android_view_HardwareLayer_setLayerPaint(JNIEnv* env, jobject clazz, static void android_view_HardwareLayer_setLayerPaint(JNIEnv* env, jobject clazz, jlong layerUpdaterPtr, jlong paintPtr, jlong colorFilterPtr) { jlong layerUpdaterPtr, jlong paintPtr) { DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); if (layer) { if (layer) { SkPaint* paint = reinterpret_cast<SkPaint*>(paintPtr); SkPaint* paint = reinterpret_cast<SkPaint*>(paintPtr); SkColorFilter* colorFilter = reinterpret_cast<SkColorFilter*>(colorFilterPtr); layer->setPaint(paint); layer->setPaint(paint); layer->setColorFilter(colorFilter); } } } } Loading Loading @@ -162,7 +160,7 @@ static JNINativeMethod gMethods[] = { { "nDestroyLayerUpdater", "(J)V", (void*) android_view_HardwareLayer_destroyLayerUpdater }, { "nDestroyLayerUpdater", "(J)V", (void*) android_view_HardwareLayer_destroyLayerUpdater }, { "nPrepare", "(JIIZ)Z", (void*) android_view_HardwareLayer_prepare }, { "nPrepare", "(JIIZ)Z", (void*) android_view_HardwareLayer_prepare }, { "nSetLayerPaint", "(JJJ)V", (void*) android_view_HardwareLayer_setLayerPaint }, { "nSetLayerPaint", "(JJ)V", (void*) android_view_HardwareLayer_setLayerPaint }, { "nSetTransform", "(JJ)V", (void*) android_view_HardwareLayer_setTransform }, { "nSetTransform", "(JJ)V", (void*) android_view_HardwareLayer_setTransform }, { "nSetSurfaceTexture", "(JLandroid/graphics/SurfaceTexture;Z)V", { "nSetSurfaceTexture", "(JLandroid/graphics/SurfaceTexture;Z)V", (void*) android_view_HardwareLayer_setSurfaceTexture }, (void*) android_view_HardwareLayer_setSurfaceTexture }, Loading
libs/hwui/DeferredLayerUpdater.cpp +5 −3 Original line number Original line Diff line number Diff line Loading @@ -34,21 +34,23 @@ DeferredLayerUpdater::DeferredLayerUpdater(Layer* layer, OpenGLRenderer* rendere mWidth = mLayer->layer.getWidth(); mWidth = mLayer->layer.getWidth(); mHeight = mLayer->layer.getHeight(); mHeight = mLayer->layer.getHeight(); mBlend = mLayer->isBlend(); mBlend = mLayer->isBlend(); mColorFilter = mLayer->getColorFilter(); mColorFilter = SkSafeRef(mLayer->getColorFilter()); mAlpha = mLayer->getAlpha(); mAlpha = mLayer->getAlpha(); mMode = mLayer->getMode(); mMode = mLayer->getMode(); mDirtyRect.setEmpty(); mDirtyRect.setEmpty(); } } DeferredLayerUpdater::~DeferredLayerUpdater() { DeferredLayerUpdater::~DeferredLayerUpdater() { setColorFilter(NULL); SkSafeUnref(mColorFilter); if (mLayer) { if (mLayer) { mCaches.resourceCache.decrementRefcount(mLayer); mCaches.resourceCache.decrementRefcount(mLayer); } } delete mRenderer; delete mRenderer; } } void DeferredLayerUpdater::setColorFilter(SkColorFilter* colorFilter) { void DeferredLayerUpdater::setPaint(const SkPaint* paint) { OpenGLRenderer::getAlphaAndModeDirect(paint, &mAlpha, &mMode); SkColorFilter* colorFilter = (paint) ? paint->getColorFilter() : NULL; SkRefCnt_SafeAssign(mColorFilter, colorFilter); SkRefCnt_SafeAssign(mColorFilter, colorFilter); } } Loading
libs/hwui/DeferredLayerUpdater.h +1 −5 Original line number Original line Diff line number Diff line Loading @@ -75,11 +75,7 @@ public: ANDROID_API void setDisplayList(DisplayList* displayList, ANDROID_API void setDisplayList(DisplayList* displayList, int left, int top, int right, int bottom); int left, int top, int right, int bottom); ANDROID_API void setPaint(const SkPaint* paint) { ANDROID_API void setPaint(const SkPaint* paint); OpenGLRenderer::getAlphaAndModeDirect(paint, &mAlpha, &mMode); } ANDROID_API void setColorFilter(SkColorFilter* colorFilter); ANDROID_API bool apply(); ANDROID_API bool apply(); Loading
libs/hwui/Layer.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -131,8 +131,9 @@ void Layer::removeFbo(bool flush) { } } } } void Layer::setPaint(SkPaint* paint) { void Layer::setPaint(const SkPaint* paint) { OpenGLRenderer::getAlphaAndModeDirect(paint, &alpha, &mode); OpenGLRenderer::getAlphaAndModeDirect(paint, &alpha, &mode); setColorFilter((paint) ? paint->getColorFilter() : NULL); } } void Layer::setColorFilter(SkColorFilter* filter) { void Layer::setColorFilter(SkColorFilter* filter) { Loading