42 float4 devPosition = localToDevice * float4(position, depth, 1.0);
43 stepLocalCoords = position;
44 scaledShapeCoords = (deviceToScaledShape * devPosition.xy1).xy;
54 return "outputCoverage = blur_coverage_fn(scaledShapeCoords, "
64 const Rect& r =
params.geometry().analyticBlurMask().drawBounds();
91 gatherer->add(blur.
refProxy(), {samplingOptions, kTileModes});
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
const SkM44 & deviceToScaledShape() const
const Rect & shapeData() const
sk_sp< TextureProxy > refProxy() const
const SkV2 & blurData() 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)