aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar benjaminwagner <benjaminwagner@google.com>2016-02-24 06:51:52 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-02-24 06:51:52 -0800
commit7ea5cb18389db11a94175de95c9db2b44972630c (patch)
tree3e87b6ec8c453081a1666fca96dfb5bfbbda2141 /src
parent8f7b0b2d809510d4af4e6ff6f731bac78eded6c4 (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.h12
-rw-r--r--src/core/SkPaint.cpp2
-rw-r--r--src/effects/gradients/SkTwoPointConicalGradient.h1
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
};