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 GetRuntimeBlendForBlendMode(SkBlendMode mode)12sk_sp<SkBlender> GetRuntimeBlendForBlendMode(SkBlendMode mode) { 13 static auto result = SkRuntimeEffect::MakeForBlender(SkString(R"( 14 uniform blender b; 15 half4 main(half4 src, half4 dst) { 16 return b.eval(src, dst); 17 } 18 )")); 19 20 SkASSERTF(result.effect, "%s", result.errorText.c_str()); 21 22 SkRuntimeBlendBuilder builder(result.effect); 23 builder.child("b") = SkBlender::Mode(mode); 24 return builder.makeBlender(); 25 } 26