1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2021 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef RuntimeBlendUtils_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define RuntimeBlendUtils_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkBlendMode.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h" 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard Worker class SkBlender; 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker /** 17*c8dee2aaSAndroid Build Coastguard Worker * Returns a Runtime Effect-based blender which is equivalent to the passed-in SkBlendMode. 18*c8dee2aaSAndroid Build Coastguard Worker * This should generate the same output as the equivalent SkBlendMode operation, but always uses 19*c8dee2aaSAndroid Build Coastguard Worker * SkSL to perform the blend operation instead of relying on specialized/fixed-function code. 20*c8dee2aaSAndroid Build Coastguard Worker * This is useful for verifying that Runtime Blends are working as expected throughout the pipeline. 21*c8dee2aaSAndroid Build Coastguard Worker */ 22*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkBlender> GetRuntimeBlendForBlendMode(SkBlendMode mode); 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker #endif 25