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 SkRadialGradient_DEFINED 10 #define SkRadialGradient_DEFINED 11 12 #include "SkGradientShaderPriv.h" 13 14 class SkRadialGradient : public SkGradientShaderBase { 15 public: 16 SkRadialGradient(const SkPoint& center, SkScalar radius, 17 const SkColor colors[], const SkScalar pos[], int colorCount, 18 SkShader::TileMode mode, SkUnitMapper* mapper); 19 virtual void shadeSpan(int x, int y, SkPMColor* dstC, int count) 20 SK_OVERRIDE; 21 virtual void shadeSpan16(int x, int y, uint16_t* dstCParam, 22 int count) SK_OVERRIDE; 23 virtual BitmapType asABitmap(SkBitmap* bitmap, 24 SkMatrix* matrix, 25 TileMode* xy) const SK_OVERRIDE; 26 virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; 27 virtual GrEffectRef* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE; 28 29 SK_DEVELOPER_TO_STRING() 30 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRadialGradient) 31 32 protected: 33 SkRadialGradient(SkFlattenableReadBuffer& buffer); 34 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE; 35 36 private: 37 typedef SkGradientShaderBase INHERITED; 38 const SkPoint fCenter; 39 const SkScalar fRadius; 40 }; 41 42 #endif 43