diff options
author | Android Code Review <code-review@android.com> | 2009-11-10 09:59:52 -0800 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2009-11-10 09:59:52 -0800 |
commit | 2b63ff51d5202eb2b458e937d4b65b326238733e (patch) | |
tree | 83499e343eb11f297fc835b920eb7775ca49a878 | |
parent | df682c84434ae3560a975d50a2d16d814835e052 (diff) | |
parent | 83387a484c515e5234bd60f741578a6ac894bff5 (diff) | |
download | base-2b63ff51d5202eb2b458e937d4b65b326238733e.tar.gz |
Merge change I83387a48
* changes:
Correction of an error in the setRotate method of the ColorMatrix class. The matrix rotation params around the 2nd axis was not set correctly:
-rw-r--r-- | graphics/java/android/graphics/ColorMatrix.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/graphics/java/android/graphics/ColorMatrix.java b/graphics/java/android/graphics/ColorMatrix.java index 2478712ebb57..c22cda1cbf51 100644 --- a/graphics/java/android/graphics/ColorMatrix.java +++ b/graphics/java/android/graphics/ColorMatrix.java @@ -110,22 +110,31 @@ public class ColorMatrix { a[18] = aScale; } + /** + * Set the rotation on a color axis by the specified values. + * axis=0 correspond to a rotation around the RED color + * axis=1 correspond to a rotation around the GREEN color + * axis=2 correspond to a rotation around the BLUE color + */ public void setRotate(int axis, float degrees) { reset(); float radians = degrees * (float)Math.PI / 180; float cosine = FloatMath.cos(radians); float sine = FloatMath.sin(radians); switch (axis) { + // Rotation around the red color case 0: mArray[6] = mArray[12] = cosine; mArray[7] = sine; mArray[11] = -sine; break; + // Rotation around the green color case 1: - mArray[0] = mArray[17] = cosine; - mArray[2] = sine; - mArray[15] = -sine; + mArray[0] = mArray[12] = cosine; + mArray[2] = -sine; + mArray[10] = sine; break; + // Rotation around the blue color case 2: mArray[0] = mArray[6] = cosine; mArray[1] = sine; |