1 2 /* 3 * Copyright 2012 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 #ifndef SkLinearGradient_DEFINED 10 #define SkLinearGradient_DEFINED 11 12 #include "SkGradientShaderPriv.h" 13 14 class SkLinearGradient : public SkGradientShaderBase { 15 public: 16 SkLinearGradient(const SkPoint pts[2], const Descriptor&); 17 18 virtual bool setContext(const SkBitmap&, const SkPaint&, const SkMatrix&) SK_OVERRIDE; 19 virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count) SK_OVERRIDE; 20 virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count) SK_OVERRIDE; 21 virtual BitmapType asABitmap(SkBitmap*, SkMatrix*, TileMode*) const SK_OVERRIDE; 22 virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; 23 virtual GrEffectRef* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE; 24 25 SK_DEVELOPER_TO_STRING() 26 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLinearGradient) 27 28 protected: 29 SkLinearGradient(SkFlattenableReadBuffer& buffer); 30 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE; 31 32 private: 33 typedef SkGradientShaderBase INHERITED; 34 const SkPoint fStart; 35 const SkPoint fEnd; 36 }; 37 38 #endif 39