diff options
author | benjaminwagner <benjaminwagner@google.com> | 2016-02-24 08:29:11 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-24 08:29:11 -0800 |
commit | c2d35d851365bb89f392fe2dd7af57e169de26b7 (patch) | |
tree | afa19bb232e8406edd7b29e2d4240da55ed04782 /samplecode | |
parent | f15b07b75ce6b1ad2bde91b3baf17ef9210241b3 (diff) |
Revert of Simple cleanups related to SkFixed. (patchset #4 id:120001 of https://codereview.chromium.org/1683743005/ )
Reason for revert:
New test is failing on Windows.
Original issue's description:
> 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
>
> Committed: https://skia.googlesource.com/skia/+/7ea5cb18389db11a94175de95c9db2b44972630c
TBR=mtklein@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4632
Review URL: https://codereview.chromium.org/1724283003
Diffstat (limited to 'samplecode')
-rw-r--r-- | samplecode/SampleText.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/samplecode/SampleText.cpp b/samplecode/SampleText.cpp index 87ca91406b..f5f8dbefa0 100644 --- a/samplecode/SampleText.cpp +++ b/samplecode/SampleText.cpp @@ -27,6 +27,41 @@ #include "SkStream.h" #include "SkXMLParser.h" +static void test_breakText() { + SkPaint paint; + const char* text = "sdfkljAKLDFJKEWkldfjlk#$%&sdfs.dsj"; + size_t length = strlen(text); + SkScalar width = paint.measureText(text, length); + + SkScalar mm = 0; + SkScalar nn = 0; + for (SkScalar w = 0; w <= width; w += SK_Scalar1) { + SkScalar m; + size_t n = paint.breakText(text, length, w, &m); + + SkASSERT(n <= length); + SkASSERT(m <= width); + + if (n == 0) { + SkASSERT(m == 0); + } else { + // now assert that we're monotonic + if (n == nn) { + SkASSERT(m == mm); + } else { + SkASSERT(n > nn); + SkASSERT(m > mm); + } + } + nn = SkIntToScalar((unsigned int)n); + mm = m; + } + + SkDEBUGCODE(size_t length2 =) paint.breakText(text, length, width, &mm); + SkASSERT(length2 == length); + SkASSERT(mm == width); +} + static const struct { const char* fName; uint32_t fFlags; @@ -74,6 +109,8 @@ public: TextSpeedView() { fHints = 0; fClickX = 0; + + test_breakText(); } protected: |