/* * Copyright 2022 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef skgpu_graphite_BuiltInCodeSnippetID_DEFINED #define skgpu_graphite_BuiltInCodeSnippetID_DEFINED #include "include/core/SkTypes.h" namespace skgpu::graphite { // TODO: this needs to be expanded into a more flexible dictionary (esp. for user-supplied SkSL) enum class BuiltInCodeSnippetID : int32_t { // This isn't just a signal for a failure during paintparams key creation. It also actually // implements the default behavior for an erroneous draw. Currently it just draws solid // magenta. kError, // SkShader code snippets kPassthroughShader, kSolidColorShader, kLinearGradientShader4, kLinearGradientShader8, kRadialGradientShader4, kRadialGradientShader8, kSweepGradientShader4, kSweepGradientShader8, kConicalGradientShader4, kConicalGradientShader8, kLocalMatrixShader, kImageShader, kPorterDuffBlendShader, // ComposeShader (lightweight, only supports Porter-Duff blends) kBlendShader, // ComposeShader (more code, but supports every SkBlendMode) kColorFilterShader, kRuntimeShader, // SkColorFilter code snippets kMatrixColorFilter, kBlendColorFilter, kComposeColorFilter, kTableColorFilter, kGaussianColorFilter, kColorSpaceXformColorFilter, // SkBlender code snippets (evaluating a blend as part of the shader graph) kPassthroughBlender, // BlendMode code snippets (applying a blend to a destination) kFixedFunctionBlender, kShaderBasedBlender, kPrimitiveColorShaderBasedBlender, // Blend dst: primitiveColor variable emitted by RenderStep kLast = kPrimitiveColorShaderBasedBlender }; static constexpr int kBuiltInCodeSnippetIDCount = static_cast(BuiltInCodeSnippetID::kLast)+1; } // skgpu::graphite #endif // skgpu_graphite_BuiltInCodeSnippetID_DEFINED