1 /* 2 * Copyright 2022 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 skgpu_graphite_BuiltInCodeSnippetID_DEFINED 9 #define skgpu_graphite_BuiltInCodeSnippetID_DEFINED 10 11 #include "include/core/SkTypes.h" 12 13 namespace skgpu::graphite { 14 15 // TODO: this needs to be expanded into a more flexible dictionary (esp. for user-supplied SkSL) 16 enum class BuiltInCodeSnippetID : int32_t { 17 // This isn't just a signal for a failure during paintparams key creation. It also actually 18 // implements the default behavior for an erroneous draw. Currently it just draws solid 19 // magenta. 20 kError, 21 22 // SkShader code snippets 23 kPassthroughShader, 24 kSolidColorShader, 25 kLinearGradientShader4, 26 kLinearGradientShader8, 27 kRadialGradientShader4, 28 kRadialGradientShader8, 29 kSweepGradientShader4, 30 kSweepGradientShader8, 31 kConicalGradientShader4, 32 kConicalGradientShader8, 33 34 kLocalMatrixShader, 35 kImageShader, 36 kPorterDuffBlendShader, // ComposeShader (lightweight, only supports Porter-Duff blends) 37 kBlendShader, // ComposeShader (more code, but supports every SkBlendMode) 38 kColorFilterShader, 39 kRuntimeShader, 40 41 // SkColorFilter code snippets 42 kMatrixColorFilter, 43 kBlendColorFilter, 44 kComposeColorFilter, 45 kTableColorFilter, 46 kGaussianColorFilter, 47 kColorSpaceXformColorFilter, 48 49 // SkBlender code snippets (evaluating a blend as part of the shader graph) 50 kPassthroughBlender, 51 52 // BlendMode code snippets (applying a blend to a destination) 53 kFixedFunctionBlender, 54 kShaderBasedBlender, 55 kPrimitiveColorShaderBasedBlender, // Blend dst: primitiveColor variable emitted by RenderStep 56 57 kLast = kPrimitiveColorShaderBasedBlender 58 }; 59 static constexpr int kBuiltInCodeSnippetIDCount = static_cast<int>(BuiltInCodeSnippetID::kLast)+1; 60 61 } // skgpu::graphite 62 63 #endif // skgpu_graphite_BuiltInCodeSnippetID_DEFINED 64