diff options
author | benjaminwagner <benjaminwagner@google.com> | 2016-02-24 06:51:52 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-24 06:51:52 -0800 |
commit | 7ea5cb18389db11a94175de95c9db2b44972630c (patch) | |
tree | 3e87b6ec8c453081a1666fca96dfb5bfbbda2141 /src | |
parent | 8f7b0b2d809510d4af4e6ff6f731bac78eded6c4 (diff) |
Cleanups related to SkFixed.
Remove SK_FixedNaN. It does not seem to be supported or used anywhere in Skia, Chromium, Android, or Google3, (except accidentally by TwoPtRadial::kDontDrawT). I think supporting it would erase any benefit of SkFixed over float.
Remove SkBitmapFilter::lookup. It does not appear to be used anywhere in Skia, Chromium, Android, or Google3.
Fix a bug in SkPaint::breakText that limited it to ~5kB of text. Now it can handle more than 1GB.
BUG=skia:4632
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1683743005
Review URL: https://codereview.chromium.org/1683743005
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkBitmapFilter.h | 12 | ||||
-rw-r--r-- | src/core/SkPaint.cpp | 2 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.h | 1 |
3 files changed, 2 insertions, 13 deletions
diff --git a/src/core/SkBitmapFilter.h b/src/core/SkBitmapFilter.h index 6fa8edde34..ca3e0930f2 100644 --- a/src/core/SkBitmapFilter.h +++ b/src/core/SkBitmapFilter.h @@ -28,15 +28,6 @@ public: } virtual ~SkBitmapFilter() {} - SkFixed lookup(float x) const { - if (!fPrecomputed) { - precomputeTable(); - } - int filter_idx = int(sk_float_abs(x * fLookupMultiplier)); - SkASSERT(filter_idx < SKBITMAP_FILTER_TABLE_SIZE); - return fFilterTable[filter_idx]; - } - SkScalar lookupScalar(float x) const { if (!fPrecomputed) { precomputeTable(); @@ -67,19 +58,16 @@ protected: float fLookupMultiplier; mutable bool fPrecomputed; - mutable SkFixed fFilterTable[SKBITMAP_FILTER_TABLE_SIZE]; mutable SkScalar fFilterTableScalar[SKBITMAP_FILTER_TABLE_SIZE]; private: void precomputeTable() const { fPrecomputed = true; - SkFixed *ftp = fFilterTable; SkScalar *ftpScalar = fFilterTableScalar; for (int x = 0; x < SKBITMAP_FILTER_TABLE_SIZE; ++x) { float fx = ((float)x + .5f) * this->width() / SKBITMAP_FILTER_TABLE_SIZE; float filter_value = evaluate(fx); *ftpScalar++ = filter_value; - *ftp++ = SkFloatToFixed(filter_value); } } }; diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index d3384a628d..638e251b36 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -925,7 +925,7 @@ size_t SkPaint::breakText(const void* textD, size_t length, SkScalar maxWidth, GlyphCacheProc glyphCacheProc = paint.getGlyphCacheProc(false); const int xyIndex = paint.isVerticalText() ? 1 : 0; // use 64bits for our accumulator, to avoid overflowing 16.16 - Sk48Dot16 max = SkScalarToFixed(maxWidth); + Sk48Dot16 max = SkScalarTo48Dot16(maxWidth); Sk48Dot16 width = 0; SkAutoKern autokern; diff --git a/src/effects/gradients/SkTwoPointConicalGradient.h b/src/effects/gradients/SkTwoPointConicalGradient.h index f468de8007..954b09698e 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.h +++ b/src/effects/gradients/SkTwoPointConicalGradient.h @@ -15,6 +15,7 @@ // Should only be initialized once via init(). Immutable afterwards. struct TwoPtRadial { enum { + // This value is outside the range SK_FixedMin to SK_FixedMax. kDontDrawT = 0x80000000 }; |