| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * Copyright 2014 Google Inc. |    2  * Copyright 2014 Google Inc. | 
|    3  * |    3  * | 
|    4  * Use of this source code is governed by a BSD-style license that can be |    4  * Use of this source code is governed by a BSD-style license that can be | 
|    5  * found in the LICENSE file. |    5  * found in the LICENSE file. | 
|    6  */ |    6  */ | 
|    7  |    7  | 
|    8 #include "SkPaint.h" |    8 #include "SkPaint.h" | 
|    9 #include "SkPoint.h" |    9 #include "SkPoint.h" | 
|   10 #include "SkTextBlob.h" |   10 #include "SkTextBlob.h" | 
|   11  |   11  | 
|   12 #include "Test.h" |   12 #include "Test.h" | 
|   13  |   13  | 
|   14  |   14  | 
|   15 class TextBlobTester { |   15 class TextBlobTester { | 
|   16 public: |   16 public: | 
|   17     // This unit test feeds an SkTextBlobBuilder various runs then checks to see
      if |   17     // This unit test feeds an SkTextBlobBuilder various runs then checks to see
      if | 
|   18     // the result contains the provided data and merges runs when appropriate. |   18     // the result contains the provided data and merges runs when appropriate. | 
|   19     static void TestBuilder(skiatest::Reporter* reporter) { |   19     static void TestBuilder(skiatest::Reporter* reporter) { | 
|   20         SkTextBlobBuilder builder; |   20         SkTextBlobBuilder builder; | 
|   21  |   21  | 
|   22         // empty run set |   22         // empty run set | 
|   23         RunBuilderTest(reporter, builder, NULL, 0, NULL, 0); |   23         RunBuilderTest(reporter, builder, nullptr, 0, nullptr, 0); | 
|   24  |   24  | 
|   25         RunDef set1[] = { |   25         RunDef set1[] = { | 
|   26             { 128, SkTextBlob::kDefault_Positioning, 100, 100 }, |   26             { 128, SkTextBlob::kDefault_Positioning, 100, 100 }, | 
|   27         }; |   27         }; | 
|   28         RunBuilderTest(reporter, builder, set1, SK_ARRAY_COUNT(set1), set1, SK_A
     RRAY_COUNT(set1)); |   28         RunBuilderTest(reporter, builder, set1, SK_ARRAY_COUNT(set1), set1, SK_A
     RRAY_COUNT(set1)); | 
|   29  |   29  | 
|   30         RunDef set2[] = { |   30         RunDef set2[] = { | 
|   31             { 128, SkTextBlob::kHorizontal_Positioning, 100, 100 }, |   31             { 128, SkTextBlob::kHorizontal_Positioning, 100, 100 }, | 
|   32         }; |   32         }; | 
|   33         RunBuilderTest(reporter, builder, set2, SK_ARRAY_COUNT(set2), set2, SK_A
     RRAY_COUNT(set2)); |   33         RunBuilderTest(reporter, builder, set2, SK_ARRAY_COUNT(set2), set2, SK_A
     RRAY_COUNT(set2)); | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  199             } |  199             } | 
|  200  |  200  | 
|  201             it.next(); |  201             it.next(); | 
|  202         } |  202         } | 
|  203  |  203  | 
|  204         REPORTER_ASSERT(reporter, it.done()); |  204         REPORTER_ASSERT(reporter, it.done()); | 
|  205     } |  205     } | 
|  206  |  206  | 
|  207     static void AddRun(const SkPaint& font, int count, SkTextBlob::GlyphPosition
     ing pos, |  207     static void AddRun(const SkPaint& font, int count, SkTextBlob::GlyphPosition
     ing pos, | 
|  208                        const SkPoint& offset, SkTextBlobBuilder& builder, |  208                        const SkPoint& offset, SkTextBlobBuilder& builder, | 
|  209                        const SkRect* bounds = NULL) { |  209                        const SkRect* bounds = nullptr) { | 
|  210         switch (pos) { |  210         switch (pos) { | 
|  211         case SkTextBlob::kDefault_Positioning: { |  211         case SkTextBlob::kDefault_Positioning: { | 
|  212             const SkTextBlobBuilder::RunBuffer& rb = builder.allocRun(font, coun
     t, offset.x(), |  212             const SkTextBlobBuilder::RunBuffer& rb = builder.allocRun(font, coun
     t, offset.x(), | 
|  213                                                                       offset.y()
     , bounds); |  213                                                                       offset.y()
     , bounds); | 
|  214             for (int i = 0; i < count; ++i) { |  214             for (int i = 0; i < count; ++i) { | 
|  215                 rb.glyphs[i] = i; |  215                 rb.glyphs[i] = i; | 
|  216             } |  216             } | 
|  217         } break; |  217         } break; | 
|  218         case SkTextBlob::kHorizontal_Positioning: { |  218         case SkTextBlob::kHorizontal_Positioning: { | 
|  219             const SkTextBlobBuilder::RunBuffer& rb = builder.allocRunPosH(font, 
     count, offset.y(), |  219             const SkTextBlobBuilder::RunBuffer& rb = builder.allocRunPosH(font, 
     count, offset.y(), | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|  234         default: |  234         default: | 
|  235             SkFAIL("unhandled positioning value"); |  235             SkFAIL("unhandled positioning value"); | 
|  236         } |  236         } | 
|  237     } |  237     } | 
|  238 }; |  238 }; | 
|  239  |  239  | 
|  240 DEF_TEST(TextBlob_builder, reporter) { |  240 DEF_TEST(TextBlob_builder, reporter) { | 
|  241     TextBlobTester::TestBuilder(reporter); |  241     TextBlobTester::TestBuilder(reporter); | 
|  242     TextBlobTester::TestBounds(reporter); |  242     TextBlobTester::TestBounds(reporter); | 
|  243 } |  243 } | 
| OLD | NEW |