/src/skia/src/shaders/gradients/SkRadialGradient.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright 2023 Google LLC |
3 | | * |
4 | | * Use of this source code is governed by a BSD-style license that can be |
5 | | * found in the LICENSE file. |
6 | | */ |
7 | | #ifndef SkRadialGradient_DEFINED |
8 | | #define SkRadialGradient_DEFINED |
9 | | |
10 | | #include "include/core/SkFlattenable.h" |
11 | | #include "include/core/SkPoint.h" |
12 | | #include "include/core/SkScalar.h" |
13 | | #include "src/shaders/gradients/SkGradientBaseShader.h" |
14 | | |
15 | | class SkArenaAlloc; |
16 | | class SkMatrix; |
17 | | class SkRasterPipeline; |
18 | | class SkReadBuffer; |
19 | | class SkWriteBuffer; |
20 | | |
21 | | class SkRadialGradient final : public SkGradientBaseShader { |
22 | | public: |
23 | | SkRadialGradient(const SkPoint& center, SkScalar radius, const Descriptor&); |
24 | | |
25 | | GradientType asGradient(GradientInfo* info, SkMatrix* matrix) const override; |
26 | | |
27 | 0 | const SkPoint& center() const { return fCenter; } |
28 | 0 | SkScalar radius() const { return fRadius; } |
29 | | protected: |
30 | | SkRadialGradient(SkReadBuffer& buffer); |
31 | | void flatten(SkWriteBuffer& buffer) const override; |
32 | | |
33 | | void appendGradientStages(SkArenaAlloc* alloc, |
34 | | SkRasterPipeline* tPipeline, |
35 | | SkRasterPipeline* postPipeline) const override; |
36 | | private: |
37 | | friend void ::SkRegisterRadialGradientShaderFlattenable(); |
38 | | SK_FLATTENABLE_HOOKS(SkRadialGradient) |
39 | | |
40 | | const SkPoint fCenter; |
41 | | const SkScalar fRadius; |
42 | | }; |
43 | | |
44 | | #endif |