337 {
340 }
341
343 if (!is_visible(pathDevBounds, drawBounds)) {
344
345
346
349 }
350
353 if (!this->pathFitsInAtlas(pathDevBounds, fallbackAAType)) {
354
356 }
357
360 bool transposedInAtlas;
361
362
363 auto drawRefsAtlasCallback = [opBeingClipped, &inputFP](
const GrSurfaceProxy* atlasProxy) {
364 return refs_atlas(opBeingClipped, atlasProxy) ||
365 refs_atlas(inputFP.get(), atlasProxy);
366 };
367
368 if (!this->addPathToAtlas(sdc->
recordingContext(), viewMatrix,
path, pathDevBounds, &devIBounds,
369 &locationInAtlas, &transposedInAtlas, drawRefsAtlasCallback)) {
370
372 }
373
375 auto [atlasX, atlasY] = locationInAtlas;
376 if (!transposedInAtlas) {
378 } else {
379 atlasMatrix.
setAll(0, 1, atlasX - devIBounds.
top(),
380 1, 0, atlasY - devIBounds.
left(),
381 0, 0, 1);
382 }
384 if (
path.isInverseFillType()) {
386 }
387 if (!devIBounds.
contains(drawBounds)) {
389
390
391
393 }
395 return GrFPSuccess(std::make_unique<GrModulateAtlasCoverageEffect>(
flags, std::move(inputFP),
396 std::move(atlasView),
397 atlasMatrix, devIBounds));
398}
static GrFPResult GrFPNullableSuccess(std::unique_ptr< GrFragmentProcessor > fp)
static GrFPResult GrFPSuccess(std::unique_ptr< GrFragmentProcessor > fp)
static GrFPResult GrFPFailure(std::unique_ptr< GrFragmentProcessor > fp)
static SkMatrix Translate(SkScalar dx, SkScalar dy)
SkMatrix & setAll(SkScalar scaleX, SkScalar skewX, SkScalar transX, SkScalar skewY, SkScalar scaleY, SkScalar transY, SkScalar persp0, SkScalar persp1, SkScalar persp2)
bool hasPerspective() const
bool mapRect(SkRect *dst, const SkRect &src, SkApplyPerspectiveClip pc=SkApplyPerspectiveClip::kYes) const
const GrCaps * caps() const
GrRecordingContext * recordingContext() const
bool canUseDynamicMSAA() const
FlutterSemanticsFlag flags
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
constexpr int32_t top() const
constexpr int32_t left() const
bool contains(int32_t x, int32_t y) const