1589708bf7c706348b763e8277004cb160b202bdbrileya@google.com/* 2589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * Copyright 2012 Google Inc. 3589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * 4589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * Use of this source code is governed by a BSD-style license that can be 5589708bf7c706348b763e8277004cb160b202bdbrileya@google.com * found in the LICENSE file. 6589708bf7c706348b763e8277004cb160b202bdbrileya@google.com */ 7589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 8589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#ifndef SkSweepGradient_DEFINED 9589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#define SkSweepGradient_DEFINED 10589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 11589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#include "SkGradientShaderPriv.h" 12589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 13589708bf7c706348b763e8277004cb160b202bdbrileya@google.comclass SkSweepGradient : public SkGradientShaderBase { 14589708bf7c706348b763e8277004cb160b202bdbrileya@google.compublic: 15addf2edf3da20f053daa3897cfe2c52d7369a7b1reed SkSweepGradient(SkScalar cx, SkScalar cy, const Descriptor&); 1687fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 1787fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org class SweepGradientContext : public SkGradientShaderBase::GradientShaderBaseContext { 1887fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org public: 19e901b6de3ef8dea842008a08fc81e92fb1478d61commit-bot@chromium.org SweepGradientContext(const SkSweepGradient& shader, const ContextRec&); 2087fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 2136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void shadeSpan(int x, int y, SkPMColor dstC[], int count) override; 2287fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 2387fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org private: 2487fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org typedef SkGradientShaderBase::GradientShaderBaseContext INHERITED; 2587fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org }; 26589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 2736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein GradientType asAGradient(GradientInfo* info) const override; 28589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 29c21b09eec91c9e263cb0b88467ea44e348ed4962bsalomon#if SK_SUPPORT_GPU 30839345d63466a4209a0985654ec033624821fd78brianosman sk_sp<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; 31c21b09eec91c9e263cb0b88467ea44e348ed4962bsalomon#endif 32589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 330f10f7bf1fb43ca6346dc220a076773b1f19a367commit-bot@chromium.org SK_TO_STRING_OVERRIDE() 34589708bf7c706348b763e8277004cb160b202bdbrileya@google.com SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSweepGradient) 35589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 36589708bf7c706348b763e8277004cb160b202bdbrileya@google.comprotected: 3736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void flatten(SkWriteBuffer& buffer) const override; 3883e939bcb79790f5ae3b28c398fbcf034675a6e5Herb Derby Context* onMakeContext(const ContextRec&, SkArenaAlloc*) const override; 39589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 40589708bf7c706348b763e8277004cb160b202bdbrileya@google.comprivate: 416e5671d8c9b2d9885e351b631b1dfbb4ed403789commit-bot@chromium.org const SkPoint fCenter; 4287fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 439fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed friend class SkGradientShader; 4487fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org typedef SkGradientShaderBase INHERITED; 45589708bf7c706348b763e8277004cb160b202bdbrileya@google.com}; 46589708bf7c706348b763e8277004cb160b202bdbrileya@google.com 47589708bf7c706348b763e8277004cb160b202bdbrileya@google.com#endif 48