History log of /frameworks/base/graphics/java/android/graphics/ColorMatrix.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6097eca72134034fcc6086c110673b5df94913b0 08-Mar-2017 Chris Craik <ccraik@google.com> Expose color filter mutate methods

Bug: 36025103
Test: cts-tradefed run singleCommand cts-dev --module CtsGraphicsTestCases

Now, similar to Shaders, we defer native creation until Paint is being
used, and ensure that we have an up to date filter when drawing.

Also implements ColorMatrix#equals to behave like Matrix#equals.

Change-Id: I5f74addd97f5662800802e6f660fead58d518725
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java
0d6512a8dd398e5eea79744ce4541664041dfdb8 21-Nov-2014 Chris Craik <ccraik@google.com> am 93ef9639: Merge "Improve ColorMatrix docs" into lmp-mr1-dev
automerge: 5b41215

* commit '5b41215b1647d9673b1231d046736c8e0590fa8a':
Improve ColorMatrix docs
db7cc60eb29c215e65081211dfe65ba4d017691c 19-Nov-2014 Chris Craik <ccraik@google.com> Improve ColorMatrix docs

bug:18415632

Clean up some text, and add a sample.

Change-Id: I39fdda2004e1932831058701f95f67355786ad9d
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java
c2a0b4482d7144e8382346ea4c22c7b89368fec0 02-Oct-2014 Neil Fuller <nfuller@google.com> resolved conflicts for merge of ee665151 to lmp-mr1-dev-plus-aosp

Change-Id: I2588c65b7a9fa43f968151a206924a804f0595a7
33253a4baa6279f81a73425b49dfb6abe5f5416e 01-Oct-2014 Neil Fuller <nfuller@google.com> Switch from FloatMath -> Math and Math.hypot where possible

The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java
d786a1900e94c4f0c919b50b44667cea32fd2939 02-Dec-2013 Katie McCormick <kmccormick@google.com> resolved conflicts for merge of 37e4c405 to master

Change-Id: I7df89be84384369ef5e89bb3b924ca38c1b5d9bd
f2ef28d840647d2f16792313bdc22b2114a5df6a 26-Nov-2013 Katie McCormick <kmccormick@google.com> Doc updates: Javadoc fixes

Change-Id: I82381056f9f13e53ab8a0525f5a53bf98674c052
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java
13656743cc21bac43676568314366497346713ee 20-Aug-2013 Romain Guy <romainguy@google.com> Make color filters mutable

Change-Id: I3d035d24a75e09db13d136a22bd7dbd326d0ce36
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java
83387a484c515e5234bd60f741578a6ac894bff5 05-Nov-2009 Olivier Goutet <olivier.goutet@gmail.com> Correction of an error in the setRotate method of the ColorMatrix class.
The matrix rotation params around the 2nd axis was not set correctly:

Initial matrix for axis 2 (green):
cos 0 sin 0 0
0 1 0 0 0
-sin 0 0 0 0
0 0 cos 1 0

After correction:
cos 0 -sin 0 0
0 1 0 0 0
sin 0 cos 0 0
0 0 0 1 0
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/graphics/java/android/graphics/ColorMatrix.java