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