#ifndef skgpu_graphite_KeyHelpers_DEFINED
#define skgpu_graphite_KeyHelpers_DEFINED
#include "include/core/SkBitmap.h"
#include "include/core/SkBlendMode.h"
#include "include/core/SkM44.h"
#include "include/core/SkPoint3.h"
#include "include/core/SkSamplingOptions.h"
#include "include/core/SkShader.h"
#include "include/core/SkSpan.h"
#include "include/core/SkTileMode.h"
#include "include/effects/SkGradientShader.h"
#include "include/gpu/graphite/Context.h"
#include "include/private/SkColorData.h"
#include "include/private/base/SkTArray.h"
#include "src/core/SkColorSpaceXformSteps.h"
#include "src/gpu/graphite/ReadSwizzle.h"
#include "src/gpu/graphite/TextureProxy.h"
#include "src/shaders/SkShaderBase.h"
#include "src/shaders/gradients/SkGradientBaseShader.h"
class SkColorFilter;
class SkData;
class SkRuntimeEffect;
namespace skgpu::graphite {
class DrawContext;
class KeyContext;
class PaintParamsKeyBuilder;
class PipelineDataGatherer;
class UniquePaintParamsID;
enum class ReadSwizzle;
enum class DstColorType { … };
struct DstReadSampleBlock { … };
struct SolidColorShaderBlock { … };
struct RGBPaintColorBlock { … };
struct AlphaOnlyPaintColorBlock { … };
struct GradientShaderBlocks { … };
struct LocalMatrixShaderBlock { … };
struct ImageShaderBlock { … };
struct YUVImageShaderBlock { … };
struct CoordClampShaderBlock { … };
struct DitherShaderBlock { … };
struct PerlinNoiseShaderBlock { … };
struct BlendComposeBlock { … };
struct PorterDuffBlenderBlock { … };
struct HSLCBlenderBlock { … };
struct ClipShaderBlock { … };
struct ComposeBlock { … };
struct MatrixColorFilterBlock { … };
struct TableColorFilterBlock { … };
struct ColorSpaceTransformBlock { … };
struct CircularRRectClipBlock { … };
struct PrimitiveColorBlock { … };
void AddBlendModeColorFilter(const KeyContext&,
PaintParamsKeyBuilder*,
PipelineDataGatherer*,
SkBlendMode,
const SkPMColor4f& srcColor);
struct RuntimeEffectBlock { … };
void AddToKey(const KeyContext&,
PaintParamsKeyBuilder*,
PipelineDataGatherer*,
const SkBlender*);
void AddToKey(const KeyContext& keyContext,
PaintParamsKeyBuilder* builder,
PipelineDataGatherer* gatherer,
const SkColorFilter* filter);
void AddToKey(const KeyContext& keyContext,
PaintParamsKeyBuilder* builder,
PipelineDataGatherer* gatherer,
const SkShader* shader);
void NotifyImagesInUse(Recorder*, DrawContext*, const SkBlender*);
void NotifyImagesInUse(Recorder*, DrawContext*, const SkColorFilter*);
void NotifyImagesInUse(Recorder*, DrawContext*, const SkShader*);
}
#endif