Coverage Report

Created: 2024-05-20 07:14

/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