blob: fe59f201868799d054f48cca5f2f01b68a9abb06 [file] [log] [blame]
/*
* 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<int>(BuiltInCodeSnippetID::kLast)+1;
} // skgpu::graphite
#endif // skgpu_graphite_BuiltInCodeSnippetID_DEFINED