xref: /third_party/skia/include/core/SkBlender.h (revision cb93a386)
1/*
2 * Copyright 2021 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
8#ifndef SkBlender_DEFINED
9#define SkBlender_DEFINED
10
11#include "include/core/SkBlendMode.h"
12#include "include/core/SkFlattenable.h"
13
14/**
15 * SkBlender represents a custom blend function in the Skia pipeline. When an SkBlender is
16 * present in a paint, the SkBlendMode is ignored. A blender combines a source color (the
17 * result of our paint) and destination color (from the canvas) into a final color.
18 */
19class SK_API SkBlender : public SkFlattenable {
20public:
21    /**
22     * Create a blender that implements the specified BlendMode.
23     */
24    static sk_sp<SkBlender> Mode(SkBlendMode mode);
25
26private:
27    SkBlender() = default;
28    friend class SkBlenderBase;
29
30    using INHERITED = SkFlattenable;
31};
32
33#endif
34