1 /* 2 * Copyright 2021 Google Inc. 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 #include "include/core/SkBlendMode.h" 9 #include "include/core/SkRefCnt.h" 10 #include "include/effects/SkRuntimeEffect.h" 11 #include "tools/RuntimeBlendUtils.h" 12 GetRuntimeBlendForBlendMode(SkBlendMode mode)13sk_sp<SkBlender> GetRuntimeBlendForBlendMode(SkBlendMode mode) { 14 static auto result = SkRuntimeEffect::MakeForBlender(SkString(R"( 15 uniform blender b; 16 half4 main(half4 src, half4 dst) { 17 return b.eval(src, dst); 18 } 19 )")); 20 21 SkASSERTF(result.effect, "%s", result.errorText.c_str()); 22 23 SkRuntimeBlendBuilder builder(result.effect); 24 builder.child("b") = SkBlender::Mode(mode); 25 return builder.makeBlender(); 26 } 27