43 float4 devPosition = localToDevice * float4(position, depth, 1.0);
44 stepLocalCoords = position;
45 scaledShapeCoords = (deviceToScaledShape * devPosition.xy1).xy;
55 return "outputCoverage = blur_coverage_fn(scaledShapeCoords, "
66 const Rect& r =
params.geometry().analyticBlurMask().drawBounds();
92 gatherer->add(samplingOptions, kTileModes, blur.
refProxy());
const SkM44 & deviceToScaledShape() const
const Rect & shapeData() const
sk_sp< TextureProxy > refProxy() const
float invSixSigma() const
ShapeType shapeType() const
std::string texturesAndSamplersSkSL(const ResourceBindingRequirements &, int *nextBindingIndex) const override
std::string vertexSkSL() const override
void writeVertices(DrawWriter *, const DrawParams &, skvx::ushort2 ssboIndices) const override
void writeUniformsAndTextures(const DrawParams &, PipelineDataGatherer *) const override
const char * fragmentCoverageSkSL() const override
void writeHalf(const T &t)
AI SkRect asSkRect() const
SkSpan< const Uniform > uniforms() const
const EmbeddedViewParams * params
static constexpr DepthStencilSettings kDirectDepthGreaterPass
std::string EmitSamplerLayout(const ResourceBindingRequirements &bindingReqs, int *binding)