| 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 "gm.h" | 8 #include "gm.h" | 
| 9 | 9 | 
| 10 #include "SkColorFilter.h" | 10 #include "SkColorFilter.h" | 
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 99 | 99 | 
| 100     SkPaint stroke; | 100     SkPaint stroke; | 
| 101     stroke.setStyle(SkPaint::kStroke_Style); | 101     stroke.setStyle(SkPaint::kStroke_Style); | 
| 102     stroke.setStrokeWidth(3); | 102     stroke.setStrokeWidth(3); | 
| 103 | 103 | 
| 104     SkPictureRecorder recorder; | 104     SkPictureRecorder recorder; | 
| 105 | 105 | 
| 106     static const SkScalar kBig = 10000.0f; | 106     static const SkScalar kBig = 10000.0f; | 
| 107     SkCanvas* canvas = recorder.beginRecording(kBig, kBig); | 107     SkCanvas* canvas = recorder.beginRecording(kBig, kBig); | 
| 108 | 108 | 
|  | 109     canvas->saveLayer(NULL, NULL); | 
|  | 110 | 
| 109     SkScalar xPos = 0.0f, yPos = 0.0f; | 111     SkScalar xPos = 0.0f, yPos = 0.0f; | 
| 110 | 112 | 
| 111     for (int y = 0; yPos < kBig; ++y) { | 113     for (int y = 0; yPos < kBig; ++y) { | 
| 112         xPos = 0; | 114         xPos = 0; | 
| 113 | 115 | 
| 114         for (int x = 0; xPos < kBig; ++x) { | 116         for (int x = 0; xPos < kBig; ++x) { | 
| 115             canvas->save(); | 117             canvas->save(); | 
| 116             canvas->translate(xPos, yPos + ((x % 2) ? kRoot3Over2 * kHexSide : 0
     )); | 118             canvas->translate(xPos, yPos + ((x % 2) ? kRoot3Over2 * kHexSide : 0
     )); | 
| 117             // The color of the filled hex is swapped to yield a different | 119             // The color of the filled hex is swapped to yield a different | 
| 118             // pattern in each tile. This allows an error in layer hoisting (e.g
     ., | 120             // pattern in each tile. This allows an error in layer hoisting (e.g
     ., | 
| 119             // the clip isn't blocking cache reuse) to cause a visual discrepanc
     y. | 121             // the clip isn't blocking cache reuse) to cause a visual discrepanc
     y. | 
| 120             canvas->drawPath(hex, ((x+y) % 3) ? whiteFill : greyFill); | 122             canvas->drawPath(hex, ((x+y) % 3) ? whiteFill : greyFill); | 
| 121             canvas->drawPath(hex, stroke); | 123             canvas->drawPath(hex, stroke); | 
| 122             canvas->restore(); | 124             canvas->restore(); | 
| 123 | 125 | 
| 124             xPos += 1.5f * kHexSide; | 126             xPos += 1.5f * kHexSide; | 
| 125         } | 127         } | 
| 126 | 128 | 
| 127         yPos += 2 * kHexSide * kRoot3Over2; | 129         yPos += 2 * kHexSide * kRoot3Over2; | 
| 128     } | 130     } | 
| 129 | 131 | 
|  | 132     canvas->restore(); | 
|  | 133 | 
| 130     return recorder.endRecording(); | 134     return recorder.endRecording(); | 
| 131 } | 135 } | 
| 132 | 136 | 
| 133 // Make an equilateral triangle path with its top corner at (originX, originY) | 137 // Make an equilateral triangle path with its top corner at (originX, originY) | 
| 134 static SkPath make_tri_path(SkScalar originX, SkScalar originY) { | 138 static SkPath make_tri_path(SkScalar originX, SkScalar originY) { | 
| 135     SkPath tri; | 139     SkPath tri; | 
| 136     tri.moveTo(originX, originY); | 140     tri.moveTo(originX, originY); | 
| 137     tri.rLineTo(SkScalarHalf(kTriSide), 1.5f * kTriSide / kRoot3); | 141     tri.rLineTo(SkScalarHalf(kTriSide), 1.5f * kTriSide / kRoot3); | 
| 138     tri.rLineTo(-kTriSide, 0); | 142     tri.rLineTo(-kTriSide, 0); | 
| 139     tri.close(); | 143     tri.close(); | 
| (...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 542                                                 MultiPictureDraw::kTiled_Layout)
     );) | 546                                                 MultiPictureDraw::kTiled_Layout)
     );) | 
| 543     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kPathClipMulti
     _Content, | 547     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kPathClipMulti
     _Content, | 
| 544                                                 MultiPictureDraw::kTiled_Layout)
     );) | 548                                                 MultiPictureDraw::kTiled_Layout)
     );) | 
| 545     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kInvPathClipMu
     lti_Content, | 549     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kInvPathClipMu
     lti_Content, | 
| 546                                                 MultiPictureDraw::kTiled_Layout)
     );) | 550                                                 MultiPictureDraw::kTiled_Layout)
     );) | 
| 547     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kSierpinski_Co
     ntent, | 551     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kSierpinski_Co
     ntent, | 
| 548                                                 MultiPictureDraw::kTiled_Layout)
     );) | 552                                                 MultiPictureDraw::kTiled_Layout)
     );) | 
| 549     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kBigLayer_Cont
     ent, | 553     DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kBigLayer_Cont
     ent, | 
| 550                                                 MultiPictureDraw::kTiled_Layout)
     );) | 554                                                 MultiPictureDraw::kTiled_Layout)
     );) | 
| 551 } | 555 } | 
| OLD | NEW | 
|---|