Index: src/effects/gradients/SkLinearGradient.h |
diff --git a/src/effects/gradients/SkLinearGradient.h b/src/effects/gradients/SkLinearGradient.h |
index 488775ea9330dd35e2a6b30ebb2a377829ffa18d..203d692cf33c41ceeaf178f64e06969f434af6d7 100644 |
--- a/src/effects/gradients/SkLinearGradient.h |
+++ b/src/effects/gradients/SkLinearGradient.h |
@@ -9,6 +9,7 @@ |
#define SkLinearGradient_DEFINED |
#include "SkGradientShaderPriv.h" |
+#include "SkNx.h" |
class SkLinearGradient : public SkGradientShaderBase { |
public: |
@@ -19,12 +20,25 @@ public: |
class LinearGradientContext : public SkGradientShaderBase::GradientShaderBaseContext { |
public: |
LinearGradientContext(const SkLinearGradient&, const ContextRec&); |
- ~LinearGradientContext() {} |
void shadeSpan(int x, int y, SkPMColor dstC[], int count) override; |
void shadeSpan16(int x, int y, uint16_t dstC[], int count) override; |
+ struct Rec { |
+ Sk4f fColor; |
+ float fPos; |
+ float fPosScale; |
+ }; |
private: |
+ SkTDArray<Rec> fRecs; |
+ bool fApplyAlphaAfterInterp; |
+ |
+ void shade4_clamp(int x, int y, SkPMColor dstC[], int count); |
+ template <bool> void shade4_pos_clamp(SkPMColor dstC[], int count, float fx, float dx, |
+ float invDx, Sk4f dither0, Sk4f dither1); |
+ template <bool> void shade4_neg_clamp(SkPMColor dstC[], int count, float fx, float dx, |
+ float invDx, Sk4f dither0, Sk4f dither1); |
+ |
typedef SkGradientShaderBase::GradientShaderBaseContext INHERITED; |
}; |