diff options
author | 2016-03-31 10:27:26 -0700 | |
---|---|---|
committer | 2016-03-31 10:27:26 -0700 | |
commit | ca9206e10fbbee0e8f8d2df76743ffe3a38cef71 (patch) | |
tree | 4f084bda4f06bfcd0ae77df97369d3abe5bb1fee /src/core/SkLinearBitmapPipeline_tile.h | |
parent | 3e4616ff10fad7ee7dae48f465223b4591ec8ffd (diff) |
Revert of Add unit repeat tiler (patchset #4 id:60001 of https://codereview.chromium.org/1837893004/ )
Reason for revert:
ASAN bot failures
Original issue's description:
> Add unit repeat tiler.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837893004
>
> Committed: https://skia.googlesource.com/skia/+/865a289bfec169cb19970c734e9aa855c267f060
TBR=mtklein@google.com,fmalita@chromium.org,herb@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1844713005
Diffstat (limited to 'src/core/SkLinearBitmapPipeline_tile.h')
-rw-r--r-- | src/core/SkLinearBitmapPipeline_tile.h | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/core/SkLinearBitmapPipeline_tile.h b/src/core/SkLinearBitmapPipeline_tile.h index 19bdedcfba..60cc2a5ef0 100644 --- a/src/core/SkLinearBitmapPipeline_tile.h +++ b/src/core/SkLinearBitmapPipeline_tile.h @@ -234,79 +234,6 @@ private: const Sk4s fXsInvMax; }; -class XRepeatUnitScaleStrategy { -public: - XRepeatUnitScaleStrategy(int32_t max) - : fXMax{SkScalar(max)} - , fXsMax{SkScalar(max)} - , fXsCap{SkScalar(nextafterf(SkScalar(max), 0.0f))} - , fXsInvMax{1.0f / SkScalar(max)} { } - - void tileXPoints(Sk4s* xs) { - Sk4s divX = *xs * fXsInvMax; - Sk4s modX = *xs - divX.floor() * fXsMax; - *xs = Sk4s::Min(fXsCap, modX); - SkASSERT(0 <= (*xs)[0] && (*xs)[0] < fXMax); - SkASSERT(0 <= (*xs)[1] && (*xs)[1] < fXMax); - SkASSERT(0 <= (*xs)[2] && (*xs)[2] < fXMax); - SkASSERT(0 <= (*xs)[3] && (*xs)[3] < fXMax); - } - - template<typename Next> - bool maybeProcessSpan(Span originalSpan, Next* next) { - SkASSERT(!originalSpan.isEmpty()); - SkPoint start; SkScalar length; int count; - std::tie(start, length, count) = originalSpan; - // Make x and y in range on the tile. - SkScalar x = tile_mod(X(start), fXMax); - SkScalar y = Y(start); - - // No need trying to go fast because the steps are larger than a tile or there is one point. - if (fXMax == 1 || count <= 1) { - return false; - } - - // x should be on the tile. - SkASSERT(0.0f <= x && x < fXMax); - Span span({x, y}, length, count); - - if (SkScalarFloorToScalar(x) != 0.0f) { - Span toDraw = span.breakAt(fXMax, 1.0f); - next->pointSpan(toDraw); - span.offset(-fXMax); - } - - // All of the span could have been on the first tile. If so, then no work to do. - if (span.isEmpty()) return true; - - // At this point the span should be aligned to zero. - SkASSERT(SkScalarFloorToScalar(span.startX()) == 0.0f); - - SkScalar div = span.length() / fXMax; - int32_t repeatCount = SkScalarFloorToInt(div); - Span repeatableSpan{{0.0f, y}, fXMax - 1.0f, SkScalarFloorToInt(fXMax)}; - - // Repeat the center section. - next->repeatSpan(repeatableSpan, repeatCount); - - // There may be some of the span left over. - span.breakAt(SkScalar(repeatCount) * fXMax, 1.0f); - - // All on a single tile. - if (!span.isEmpty()) { - next->pointSpan(span); - } - - return true; - } - -private: - const SkScalar fXMax; - const Sk4s fXsMax; - const Sk4s fXsCap; - const Sk4s fXsInvMax; -}; - class YRepeatStrategy { public: YRepeatStrategy(int32_t max) |