• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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