Index: src/effects/SkColorMatrix.cpp |
diff --git a/src/effects/SkColorMatrix.cpp b/src/effects/SkColorMatrix.cpp |
index 0e2ede2ce0196b27f0e616ae53d184e7b39d0a92..b07f3d50f9eda83893794fd95a1ca296188f3af3 100644 |
--- a/src/effects/SkColorMatrix.cpp |
+++ b/src/effects/SkColorMatrix.cpp |
@@ -9,23 +9,26 @@ |
#include "SkReadBuffer.h" |
#include "SkWriteBuffer.h" |
-#define kRScale 0 |
-#define kGScale 6 |
-#define kBScale 12 |
-#define kAScale 18 |
- |
void SkColorMatrix::setIdentity() { |
memset(fMat, 0, sizeof(fMat)); |
- fMat[kRScale] = fMat[kGScale] = fMat[kBScale] = fMat[kAScale] = SK_Scalar1; |
+ fMat[kR_Scale] = fMat[kG_Scale] = fMat[kB_Scale] = fMat[kA_Scale] = 1; |
} |
void SkColorMatrix::setScale(SkScalar rScale, SkScalar gScale, SkScalar bScale, |
SkScalar aScale) { |
memset(fMat, 0, sizeof(fMat)); |
- fMat[kRScale] = rScale; |
- fMat[kGScale] = gScale; |
- fMat[kBScale] = bScale; |
- fMat[kAScale] = aScale; |
+ fMat[kR_Scale] = rScale; |
+ fMat[kG_Scale] = gScale; |
+ fMat[kB_Scale] = bScale; |
+ fMat[kA_Scale] = aScale; |
+} |
+ |
+void SkColorMatrix::postTranslate(SkScalar dr, SkScalar dg, SkScalar db, |
+ SkScalar da) { |
+ fMat[kR_Trans] += dr; |
+ fMat[kG_Trans] += dg; |
+ fMat[kB_Trans] += db; |
+ fMat[kA_Trans] += da; |
} |
/////////////////////////////////////////////////////////////////////////////// |
@@ -116,14 +119,14 @@ static const SkScalar kHueB = 0.072f; |
void SkColorMatrix::setSaturation(SkScalar sat) { |
memset(fMat, 0, sizeof(fMat)); |
- const SkScalar R = SkScalarMul(kHueR, SK_Scalar1 - sat); |
- const SkScalar G = SkScalarMul(kHueG, SK_Scalar1 - sat); |
- const SkScalar B = SkScalarMul(kHueB, SK_Scalar1 - sat); |
+ const SkScalar R = kHueR * (1 - sat); |
+ const SkScalar G = kHueG * (1 - sat); |
+ const SkScalar B = kHueB * (1 - sat); |
setrow(fMat + 0, R + sat, G, B); |
setrow(fMat + 5, R, G + sat, B); |
setrow(fMat + 10, R, G, B + sat); |
- fMat[18] = SK_Scalar1; |
+ fMat[kA_Scale] = 1; |
} |
static const SkScalar kR2Y = 0.299f; |
@@ -144,7 +147,7 @@ void SkColorMatrix::setRGB2YUV() { |
setrow(fMat + 0, kR2Y, kG2Y, kB2Y); |
setrow(fMat + 5, kR2U, kG2U, kB2U); |
setrow(fMat + 10, kR2V, kG2V, kB2V); |
- fMat[18] = SK_Scalar1; |
+ fMat[kA_Scale] = 1; |
} |
static const SkScalar kV2R = 1.402f; |
@@ -155,8 +158,8 @@ static const SkScalar kU2B = 1.772f; |
void SkColorMatrix::setYUV2RGB() { |
memset(fMat, 0, sizeof(fMat)); |
- setrow(fMat + 0, SK_Scalar1, 0, kV2R); |
- setrow(fMat + 5, SK_Scalar1, kU2G, kV2G); |
- setrow(fMat + 10, SK_Scalar1, kU2B, 0); |
- fMat[18] = SK_Scalar1; |
+ setrow(fMat + 0, 1, 0, kV2R); |
+ setrow(fMat + 5, 1, kU2G, kV2G); |
+ setrow(fMat + 10, 1, kU2B, 0); |
+ fMat[kA_Scale] = 1; |
} |