1589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 2589708bf7c706348b763e8277004cb160b202bdbrileya@google.com/* 3589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * Copyright 2012 Google Inc. 4589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * 5589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * Use of this source code is governed by a BSD-style license that can be 6589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * found in the LICENSE file. 7589708bf7c706348b763e8277004cb160b202bdbrileya@google.com */ 8589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 9589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#ifndef SkRadialGradient_DEFINED 10589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#define SkRadialGradient_DEFINED 11589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 12589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#include "SkGradientShaderPriv.h" 13589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 14589708bf7c706348b763e8277004cb160b202bdbrileya@google.comclass SkRadialGradient : public SkGradientShaderBase { 15589708bf7c706348b763e8277004cb160b202bdbrileya@google.compublic: 169c9005a347e9996f357bd79591bd34f74f8bbc66commit-bot@chromium.org SkRadialGradient(const SkPoint& center, SkScalar radius, const Descriptor&, 179c9005a347e9996f357bd79591bd34f74f8bbc66commit-bot@chromium.org const SkMatrix* localMatrix); 1887fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 1987fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org virtual size_t contextSize() const SK_OVERRIDE; 2087fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 2187fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org class RadialGradientContext : public SkGradientShaderBase::GradientShaderBaseContext { 2287fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org public: 23e901b6de3ef8dea842008a08fc81e92fb1478d61commit-bot@chromium.org RadialGradientContext(const SkRadialGradient&, const ContextRec&); 2487fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 2587fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count) SK_OVERRIDE; 2687fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count) SK_OVERRIDE; 2787fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 2887fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org private: 2987fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org typedef SkGradientShaderBase::GradientShaderBaseContext INHERITED; 3087fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org }; 3187fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 32589708bf7c706348b763e8277004cb160b202bdbrileya@google.com virtual BitmapType asABitmap(SkBitmap* bitmap, 33589708bf7c706348b763e8277004cb160b202bdbrileya@google.com SkMatrix* matrix, 34589708bf7c706348b763e8277004cb160b202bdbrileya@google.com TileMode* xy) const SK_OVERRIDE; 35589708bf7c706348b763e8277004cb160b202bdbrileya@google.com virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; 369de5b514d38c5b36066bcdc14fba2f7e5196d372dandov virtual bool asNewEffect(GrContext*, const SkPaint&, const SkMatrix*, GrColor*, GrEffectRef**) const SK_OVERRIDE; 37589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 380f10f7bf1fb43ca6346dc220a076773b1f19a367commit-bot@chromium.org SK_TO_STRING_OVERRIDE() 39589708bf7c706348b763e8277004cb160b202bdbrileya@google.com SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRadialGradient) 40589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 41589708bf7c706348b763e8277004cb160b202bdbrileya@google.comprotected: 428b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org SkRadialGradient(SkReadBuffer& buffer); 438b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE; 44ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org virtual Context* onCreateContext(const ContextRec&, void* storage) const SK_OVERRIDE; 45589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 46589708bf7c706348b763e8277004cb160b202bdbrileya@google.comprivate: 47589708bf7c706348b763e8277004cb160b202bdbrileya@google.com typedef SkGradientShaderBase INHERITED; 48589708bf7c706348b763e8277004cb160b202bdbrileya@google.com const SkPoint fCenter; 49589708bf7c706348b763e8277004cb160b202bdbrileya@google.com const SkScalar fRadius; 50589708bf7c706348b763e8277004cb160b202bdbrileya@google.com}; 51589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 52589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#endif 53