1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2021 Google LLC 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#ifndef SkBlender_DEFINED 9cb93a386Sopenharmony_ci#define SkBlender_DEFINED 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "include/core/SkBlendMode.h" 12cb93a386Sopenharmony_ci#include "include/core/SkFlattenable.h" 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_ci/** 15cb93a386Sopenharmony_ci * SkBlender represents a custom blend function in the Skia pipeline. When an SkBlender is 16cb93a386Sopenharmony_ci * present in a paint, the SkBlendMode is ignored. A blender combines a source color (the 17cb93a386Sopenharmony_ci * result of our paint) and destination color (from the canvas) into a final color. 18cb93a386Sopenharmony_ci */ 19cb93a386Sopenharmony_ciclass SK_API SkBlender : public SkFlattenable { 20cb93a386Sopenharmony_cipublic: 21cb93a386Sopenharmony_ci /** 22cb93a386Sopenharmony_ci * Create a blender that implements the specified BlendMode. 23cb93a386Sopenharmony_ci */ 24cb93a386Sopenharmony_ci static sk_sp<SkBlender> Mode(SkBlendMode mode); 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ciprivate: 27cb93a386Sopenharmony_ci SkBlender() = default; 28cb93a386Sopenharmony_ci friend class SkBlenderBase; 29cb93a386Sopenharmony_ci 30cb93a386Sopenharmony_ci using INHERITED = SkFlattenable; 31cb93a386Sopenharmony_ci}; 32cb93a386Sopenharmony_ci 33cb93a386Sopenharmony_ci#endif 34