Index: include/gpu/GrBlend.h |
diff --git a/src/gpu/GrBlend.h b/include/gpu/GrBlend.h |
similarity index 74% |
rename from src/gpu/GrBlend.h |
rename to include/gpu/GrBlend.h |
index 7021902765bd07024cbe4b8c0d88961c87504908..c8b931da73e0b6a6f84f39ec4834586dc71877b4 100644 |
--- a/src/gpu/GrBlend.h |
+++ b/include/gpu/GrBlend.h |
@@ -7,12 +7,73 @@ |
*/ |
#include "GrTypes.h" |
-#include "SkTLogic.h" |
-#include "GrXferProcessor.h" |
+#include "../../src/utils/SkTLogic.h" |
mtklein
2015/06/12 15:15:45
Boy this line of code LGTM.
|
#ifndef GrBlend_DEFINED |
#define GrBlend_DEFINED |
+/** |
+ * Equations for alpha-blending. |
+ */ |
+enum GrBlendEquation { |
+ // Basic blend equations. |
+ kAdd_GrBlendEquation, //<! Cs*S + Cd*D |
+ kSubtract_GrBlendEquation, //<! Cs*S - Cd*D |
+ kReverseSubtract_GrBlendEquation, //<! Cd*D - Cs*S |
+ |
+ // Advanced blend equations. These are described in the SVG and PDF specs. |
+ kScreen_GrBlendEquation, |
+ kOverlay_GrBlendEquation, |
+ kDarken_GrBlendEquation, |
+ kLighten_GrBlendEquation, |
+ kColorDodge_GrBlendEquation, |
+ kColorBurn_GrBlendEquation, |
+ kHardLight_GrBlendEquation, |
+ kSoftLight_GrBlendEquation, |
+ kDifference_GrBlendEquation, |
+ kExclusion_GrBlendEquation, |
+ kMultiply_GrBlendEquation, |
+ kHSLHue_GrBlendEquation, |
+ kHSLSaturation_GrBlendEquation, |
+ kHSLColor_GrBlendEquation, |
+ kHSLLuminosity_GrBlendEquation, |
+ |
+ kFirstAdvancedGrBlendEquation = kScreen_GrBlendEquation, |
+ kLast_GrBlendEquation = kHSLLuminosity_GrBlendEquation |
+}; |
+ |
+static const int kGrBlendEquationCnt = kLast_GrBlendEquation + 1; |
+ |
+ |
+/** |
+ * Coeffecients for alpha-blending. |
+ */ |
+enum GrBlendCoeff { |
+ kZero_GrBlendCoeff, //<! 0 |
+ kOne_GrBlendCoeff, //<! 1 |
+ kSC_GrBlendCoeff, //<! src color |
+ kISC_GrBlendCoeff, //<! one minus src color |
+ kDC_GrBlendCoeff, //<! dst color |
+ kIDC_GrBlendCoeff, //<! one minus dst color |
+ kSA_GrBlendCoeff, //<! src alpha |
+ kISA_GrBlendCoeff, //<! one minus src alpha |
+ kDA_GrBlendCoeff, //<! dst alpha |
+ kIDA_GrBlendCoeff, //<! one minus dst alpha |
+ kConstC_GrBlendCoeff, //<! constant color |
+ kIConstC_GrBlendCoeff, //<! one minus constant color |
+ kConstA_GrBlendCoeff, //<! constant color alpha |
+ kIConstA_GrBlendCoeff, //<! one minus constant color alpha |
+ kS2C_GrBlendCoeff, |
+ kIS2C_GrBlendCoeff, |
+ kS2A_GrBlendCoeff, |
+ kIS2A_GrBlendCoeff, |
+ |
+ kLast_GrBlendCoeff = kIS2A_GrBlendCoeff |
+}; |
+ |
+static const int kGrBlendCoeffCnt = kLast_GrBlendCoeff + 1; |
+ |
+ |
template<GrBlendCoeff Coeff> |
struct GrTBlendCoeffRefsSrc : SkTBool<kSC_GrBlendCoeff == Coeff || |
kISC_GrBlendCoeff == Coeff || |