Coverage Report

Created: 2024-05-20 07:14

/src/skia/src/shaders/gradients/SkSweepGradient.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 SkSweepGradientShader_DEFINED
8
#define SkSweepGradientShader_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 SkSweepGradient final : public SkGradientBaseShader {
22
public:
23
    SkSweepGradient(const SkPoint& center, SkScalar t0, SkScalar t1, const Descriptor&);
24
25
    GradientType asGradient(GradientInfo* info, SkMatrix* localMatrix) const override;
26
27
0
    const SkPoint& center() const { return fCenter; }
28
90
    SkScalar tBias() const { return fTBias; }
29
90
    SkScalar tScale() const { return fTScale; }
30
31
protected:
32
    void flatten(SkWriteBuffer& buffer) const override;
33
34
    void appendGradientStages(SkArenaAlloc* alloc,
35
                              SkRasterPipeline* tPipeline,
36
                              SkRasterPipeline* postPipeline) const override;
37
38
private:
39
    friend void ::SkRegisterSweepGradientShaderFlattenable();
40
    SK_FLATTENABLE_HOOKS(SkSweepGradient)
41
42
    const SkPoint fCenter;
43
    const SkScalar fTBias;
44
    const SkScalar fTScale;
45
};
46
47
#endif