8#ifndef skgpu_graphite_ContextUtils_DEFINED
9#define skgpu_graphite_ContextUtils_DEFINED
32class GraphicsPipelineDesc;
34class PipelineDataGatherer;
38class RuntimeEffectDictionary;
40class UniquePaintParamsID;
42struct ResourceBindingRequirements;
65std::tuple<UniquePaintParamsID, const UniformDataBlock*, const TextureDataBlock*>
70 const SkM44& local2Dev,
88 bool defineShadingSsboIndexVarying,
89 bool defineLocalCoordsVarying);
96 bool useStorageBuffers,
109 int* numPaintUniforms,
110 int* paintUniformsTotalBytes,
111 bool* wrotePaintColor);
115 int* renderStepUniformsTotalBytes);
118 int* numPaintUniforms,
119 bool* wrotePaintColor);
123 const char* ssboIndex,
126 const char* ssboIndex,
127 const char* uniformName);
133 const char* direction,
134 bool emitSsboIndicesVarying,
135 bool emitLocalCoordsVarying);
static int step(int x, SkScalar min, SkScalar max)
static bool ComputeStep(const SkPoint &a, const SkPoint &b, SkScalar radius, SkPoint *step)
const EmbeddedViewParams * params
VertSkSLInfo BuildVertexSkSL(const ResourceBindingRequirements &bindingReqs, const RenderStep *step, bool useStorageBuffers, bool defineLocalCoordsVarying)
std::string EmitPaintParamsUniforms(int bufferID, const Layout layout, SkSpan< const ShaderNode * > nodes, int *numUniforms, int *uniformsTotalBytes, bool *wrotePaintColor)
std::string BuildComputeSkSL(const Caps *caps, const ComputeStep *step)
std::string EmitStorageBufferAccess(const char *bufferNamePrefix, const char *ssboIndex, const char *uniformName)
DstReadRequirement GetDstReadRequirement(const Caps *caps, std::optional< SkBlendMode > blendMode, Coverage coverage)
std::string EmitTexturesAndSamplers(const ResourceBindingRequirements &bindingReqs, SkSpan< const ShaderNode * > nodes, int *binding)
FragSkSLInfo BuildFragmentSkSL(const Caps *caps, const ShaderCodeDictionary *dict, const RuntimeEffectDictionary *rteDict, const RenderStep *step, UniquePaintParamsID paintID, bool useStorageBuffers, skgpu::Swizzle writeSwizzle)
std::string GetPipelineLabel(const ShaderCodeDictionary *dict, const RenderPassDesc &renderPassDesc, const RenderStep *renderStep, UniquePaintParamsID paintID)
std::string EmitRenderStepStorageBuffer(int bufferID, SkSpan< const Uniform > uniforms)
std::string EmitRenderStepUniforms(int bufferID, const Layout layout, SkSpan< const Uniform > uniforms, int *renderStepUniformsTotalBytes)
std::tuple< UniquePaintParamsID, const UniformDataBlock *, const TextureDataBlock * > ExtractPaintData(Recorder *recorder, PipelineDataGatherer *gatherer, PaintParamsKeyBuilder *builder, const Layout layout, const SkM44 &local2Dev, const PaintParams &p, sk_sp< TextureProxy > dstTexture, SkIPoint dstOffset, const SkColorInfo &targetColorInfo)
std::string EmitVaryings(const RenderStep *step, const char *direction, bool emitSsboIndicesVarying, bool emitLocalCoordsVarying)
std::string EmitPaintParamsStorageBuffer(int bufferID, SkSpan< const ShaderNode * > nodes, int *numUniforms, bool *wrotePaintColor)
std::tuple< const UniformDataBlock *, const TextureDataBlock * > ExtractRenderStepData(UniformDataCache *uniformDataCache, TextureDataCache *textureDataCache, PipelineDataGatherer *gatherer, const Layout layout, const RenderStep *step, const DrawParams ¶ms)
std::string EmitSamplerLayout(const ResourceBindingRequirements &bindingReqs, int *binding)
std::string EmitUniformsFromStorageBuffer(const char *bufferNamePrefix, const char *ssboIndex, SkSpan< const Uniform > uniforms)
bool fRequiresLocalCoords
int fNumTexturesAndSamplers
int fPaintUniformsTotalBytes
int fRenderStepUniformsTotalBytes
int fRenderStepUniformsTotalBytes