History log of /frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c1a8e3311fe63d3b1edad542aea9c7e4f118808a 08-Feb-2016 Diego Perez <diegoperez@google.com> Remove BufferedImage allocation from PorterDuff filter

Change-Id: Iedc280081e1889d316df17863f6ddf377592bc4c
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
1a10ca7e526736b4fd143f7c9f3b29643c0062a4 26-Feb-2015 Deepanshu Gupta <deepanshu@google.com> Correct PorterDuff filters.

1. Remove unused modes - makes the class more manageable, and missing
modes can always be readded from the git history.
2. Reuse the existing BlendComposite instances where possible.
3. Fix incorrect alpha computation for multiply mode.
4. Change the alpha computation for all blend modes to compenstate for
the fact that the color filter image that we create extends beyond the
image it is inteded to be applied to.

Change-Id: Iedebf289a23325ee4c6d406dcad46a9edb1855c7
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
8ee6bcf8096803fe5c4fbc3838a296a692173e49 16-Jul-2014 Deepanshu Gupta <deepanshu@google.com> Use BlendComposite for advanced PorterDuff Modes. [DO NOT MERGE]

Not all PorterDuff modes are supported by Java's AlphaComposite. Use
BlendComposite for such modes.

Change-Id: I51486a40f09186cf8a87ce1e6a3d1cfcf39fb2d3
(cherry picked from commit b15709cd36d28c47660b0ae30918642bfd3d85f7)
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
7a139f3fc9b8c90e4580bb3f4f8f4c90a2b8d088 25-Jun-2014 Deepanshu Gupta <deepanshu@google.com> Improve PorterDuff support.

1. Don't cache the src image used for applying the filter. The filter
delegate is not always cleared. This probably results in slighly slower
rendering, but doesn't run Studio out of memory.
2. Support more PorterDuff modes.
3. Fix a bug where the alpha was applied twice and thus the filter had
less effect than it should have had.

Change-Id: I2a481a64ba7f1ff8e9683bbc46ae110433e82ebc
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
ead9ce3ff6c7dd9c0607b3eb6496317f8e58e871 24-Jun-2014 Deepanshu Gupta <deepanshu@google.com> Temporarily change PorterDuff mode MULTIPLY to SRC_IN

Overflow pop up dialog for action bar uses PorterDuff color filters in
mode SRC_IN. The mode is not supported by AlphaComposite currently. So,
in order to render something, we swap it out with SRC_IN.

Change-Id: I987e101728ecb76b5e3d5cd91f831e6f63a4321f
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
f2af1f5d8aaff684f8cc6d8e31454c945e190976 22-Jun-2014 Deepanshu Gupta <deepanshu@google.com> LayoutLib: Support PorterDuffColorFilter

Add support for select modes for PorterDuffColorFilter.

Change-Id: Ia7b4a6a92c326be977dd87a70f54c1f8954b546d
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
98f33350b10106cda14543700a6c46032a590bb1 18-Feb-2014 Deepanshu Gupta <deepanshu@google.com> Fix native methods

Fix native method signatures as changed by the following commits:
56f57ccbd4fbbf4d572cc966d1cb76d7ae7ad334
76d3a1b8d035d27bc80b0f2fc480a903bd001514

Change-Id: I5db31d3665a5e8c84c107cf84ec3bd5ccfb9a9fe
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
88a8364c386c694f7ad56662ef89713dbf7c9d63 27-Jan-2014 Narayan Kamath <narayan@google.com> Track 64bit changes to android/graphics.

All pointers are now 64bits wide, so should be
represented as java longs and not ints.

Also changed DelegateManager and SparseWeakArray to
reflect the new world order.

Change-Id: Ic32b6b53818dbae9b949f03004c4fb6dae26cdbe
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
282e181b58cf72b6ca770dc7ca5f91f135444502 24-Jan-2014 Adam Lesinski <adamlesinski@google.com> Revert "Move frameworks/base/tools/ to frameworks/tools/"

This reverts commit 9f6a119c8aa276432ece4fe2118bd8a3c9b1067e.
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
9f6a119c8aa276432ece4fe2118bd8a3c9b1067e 28-Aug-2013 Mike Lockwood <lockwood@google.com> Move frameworks/base/tools/ to frameworks/tools/

Change-Id: I3ffafdab27cc4aca256c3a5806b630795b75d5c8
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
cc4977d0fdaf657907912fd6cc2f9426dc8d2e36 22-Feb-2011 Xavier Ducrohet <xav@android.com> LayoutLib: Hold onto delegate references.

When an object is given a delegate to hold onto, keep
the reference to the delegate instead of its native integer.

Also change the way the finalizer works by not explicitely deleting
the delegate. Instead we want the delegate to be deleted when
nothing holds a reference to it. To do this, instead of using
a regular SparseArray, we use a SparseArray of WeakReferences.
Because the main Java object that "owns" the delegate does not
actually holds a reference to the delegate, we fake this by
having the delegate manager hold a reference to delegates for
the main object. This is added/removed as the object is created
and the native finalized is called.

This makes layoutlib behave more like the JNI code where the native
objects are reference counted, and where the Java object can be
deleted but the delegate it owns is kept around (usually because
another type of delegates hold a reference on it.)

To properly handle the WeakReferences, we need to be able to
regularly clear the SparseArray of WeakReference that were
referencing objects that have been GC'ed.
Since the SparseArray is regularly being compacted (actually only
when items are removed), we use a custom SparseWeakArray (started
as a straight copy of SparseArray) that handles the WeakReference
and takes care of compacting the array by removing deleted indices
and WeakReference that returns null. Since our specific use case
doesn't call actually delete() or remove(), the compacting
only happens when the array needs to be resized.

Change-Id: Iacc5c1ff5b21732b8816fda87eb090da12d034e0
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
9a4fe29c8d92014d2d9a848e9116b8cc9d0842f9 10-Feb-2011 Xavier Ducrohet <xav@android.com> LayoutLib: Annotate the custom delegate methods.

Every method implementing a delegate needed by the
layoutlib_create bytecode modification must now be
annotated with LayoutlibDelegate.

The methods in the original source code that are delegated
are already automatically annotated. Now with the implementations
being annotated we can do bi-directional tests and find not
only missing implementations but also dead obsolete code.

This will be useful when backporting to earlier versions of
Android, or when native (non public) method disappear. In fact,
the new test detected one such method in Shader.

Change-Id: I491708b68ac2736ca5669aa86cd5e930a00f9db3
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java
d43909c7503e11eb335a452d296a10804bb01fd6 23-Dec-2010 Xavier Ducrohet <xav@android.com> LayoutLib: add support for unsupported drawing modifiers.

DrawFilter, Rasterizer, ColorFilter and MaskFilter
are not supported but we need to provide their
JNI counterparts anyway, to at least display warnings
when they are used.

Also improved the API to query Paint for Shaders
and PathEffects, and clean up some code by
moving asserts into the DelegateManager.

Change-Id: I8942514565d28576d5608c6373bda25d86d42ff2
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/PorterDuffColorFilter_Delegate.java