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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 } | 251 } |
252 | 252 |
253 return surface; | 253 return surface; |
254 } | 254 } |
255 | 255 |
256 // This class stores the information required to compose all the result | 256 // This class stores the information required to compose all the result |
257 // fragments potentially generated by the MultiPictureDraw object | 257 // fragments potentially generated by the MultiPictureDraw object |
258 class ComposeStep { | 258 class ComposeStep { |
259 public: | 259 public: |
260 ComposeStep() : fSurf(NULL), fX(0.0f), fY(0.0f), fPaint(NULL) { } | 260 ComposeStep() : fSurf(NULL), fX(0.0f), fY(0.0f), fPaint(NULL) { } |
261 ~ComposeStep() { SkSafeUnref(fSurf); SkDELETE(fPaint); } | 261 ~ComposeStep() { |
| 262 SkSafeUnref(fSurf); |
| 263 delete fPaint; |
| 264 } |
262 | 265 |
263 SkSurface* fSurf; | 266 SkSurface* fSurf; |
264 SkScalar fX; | 267 SkScalar fX; |
265 SkScalar fY; | 268 SkScalar fY; |
266 SkPaint* fPaint; | 269 SkPaint* fPaint; |
267 }; | 270 }; |
268 | 271 |
269 typedef void (*PFContentMtd)(SkCanvas* canvas, const SkPicture* pictures[kNumPic
tures]); | 272 typedef void (*PFContentMtd)(SkCanvas* canvas, const SkPicture* pictures[kNumPic
tures]); |
270 | 273 |
271 // Just a single picture with no clip | 274 // Just a single picture with no clip |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 { SK_ColorCYAN, SK_ColorMAGENTA }, | 411 { SK_ColorCYAN, SK_ColorMAGENTA }, |
409 { SK_ColorYELLOW, SK_ColorGREEN } | 412 { SK_ColorYELLOW, SK_ColorGREEN } |
410 }; | 413 }; |
411 | 414 |
412 for (int y = 0; y < kNumTilesY; ++y) { | 415 for (int y = 0; y < kNumTilesY; ++y) { |
413 for (int x = 0; x < kNumTilesX; ++x) { | 416 for (int x = 0; x < kNumTilesX; ++x) { |
414 ComposeStep& step = composeSteps->push_back(); | 417 ComposeStep& step = composeSteps->push_back(); |
415 | 418 |
416 step.fX = SkIntToScalar(x*kTileWidth); | 419 step.fX = SkIntToScalar(x*kTileWidth); |
417 step.fY = SkIntToScalar(y*kTileHeight); | 420 step.fY = SkIntToScalar(y*kTileHeight); |
418 step.fPaint = SkNEW(SkPaint); | 421 step.fPaint = new SkPaint; |
419 step.fPaint->setColorFilter( | 422 step.fPaint->setColorFilter( |
420 SkColorFilter::CreateModeFilter(colors[x][y], SkXfermode::kModul
ate_Mode))->unref(); | 423 SkColorFilter::CreateModeFilter(colors[x][y], SkXfermode::kModul
ate_Mode))->unref(); |
421 | 424 |
422 step.fSurf = create_compat_surface(finalCanvas, kTileWidth, kTileHei
ght); | 425 step.fSurf = create_compat_surface(finalCanvas, kTileWidth, kTileHei
ght); |
423 | 426 |
424 SkCanvas* subCanvas = step.fSurf->getCanvas(); | 427 SkCanvas* subCanvas = step.fSurf->getCanvas(); |
425 | 428 |
426 const SkMatrix trans = SkMatrix::MakeTrans(-SkIntToScalar(x*kTileWid
th), | 429 const SkMatrix trans = SkMatrix::MakeTrans(-SkIntToScalar(x*kTileWid
th), |
427 -SkIntToScalar(y*kTileHei
ght)); | 430 -SkIntToScalar(y*kTileHei
ght)); |
428 | 431 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 name.append(gLayoutNames[fLayout]); | 536 name.append(gLayoutNames[fLayout]); |
534 return name; | 537 return name; |
535 } | 538 } |
536 | 539 |
537 bool runAsBench() const override { return true; } | 540 bool runAsBench() const override { return true; } |
538 | 541 |
539 private: | 542 private: |
540 typedef GM INHERITED; | 543 typedef GM INHERITED; |
541 }; | 544 }; |
542 | 545 |
543 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kNoClipSingle_
Content, | 546 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kNoClipSingle_Content, |
544 MultiPictureDraw::kSimple_Layout
));) | 547 MultiPictureDraw::kSimple_Layout);) |
545 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kRectClipMulti
_Content, | 548 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kRectClipMulti_Content, |
546 MultiPictureDraw::kSimple_Layout
));) | 549 MultiPictureDraw::kSimple_Layout);) |
547 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kRRectClipMult
i_Content, | 550 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kRRectClipMulti_Content
, |
548 MultiPictureDraw::kSimple_Layout
));) | 551 MultiPictureDraw::kSimple_Layout);) |
549 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kPathClipMulti
_Content, | 552 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kPathClipMulti_Content, |
550 MultiPictureDraw::kSimple_Layout
));) | 553 MultiPictureDraw::kSimple_Layout);) |
551 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kInvPathClipMu
lti_Content, | 554 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kInvPathClipMulti_Conte
nt, |
552 MultiPictureDraw::kSimple_Layout
));) | 555 MultiPictureDraw::kSimple_Layout);) |
553 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kSierpinski_Co
ntent, | 556 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kSierpinski_Content, |
554 MultiPictureDraw::kSimple_Layout
));) | 557 MultiPictureDraw::kSimple_Layout);) |
555 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kBigLayer_Cont
ent, | 558 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kBigLayer_Content, |
556 MultiPictureDraw::kSimple_Layout
));) | 559 MultiPictureDraw::kSimple_Layout);) |
557 | 560 |
558 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kNoClipSingle_
Content, | 561 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kNoClipSingle_Content, |
559 MultiPictureDraw::kTiled_Layout)
);) | 562 MultiPictureDraw::kTiled_Layout);) |
560 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kRectClipMulti
_Content, | 563 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kRectClipMulti_Content, |
561 MultiPictureDraw::kTiled_Layout)
);) | 564 MultiPictureDraw::kTiled_Layout);) |
562 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kRRectClipMult
i_Content, | 565 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kRRectClipMulti_Content
, |
563 MultiPictureDraw::kTiled_Layout)
);) | 566 MultiPictureDraw::kTiled_Layout);) |
564 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kPathClipMulti
_Content, | 567 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kPathClipMulti_Content, |
565 MultiPictureDraw::kTiled_Layout)
);) | 568 MultiPictureDraw::kTiled_Layout);) |
566 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kInvPathClipMu
lti_Content, | 569 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kInvPathClipMulti_Conte
nt, |
567 MultiPictureDraw::kTiled_Layout)
);) | 570 MultiPictureDraw::kTiled_Layout);) |
568 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kSierpinski_Co
ntent, | 571 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kSierpinski_Content, |
569 MultiPictureDraw::kTiled_Layout)
);) | 572 MultiPictureDraw::kTiled_Layout);) |
570 DEF_GM(return SkNEW_ARGS(MultiPictureDraw, (MultiPictureDraw::kBigLayer_Cont
ent, | 573 DEF_GM(return new MultiPictureDraw(MultiPictureDraw::kBigLayer_Content, |
571 MultiPictureDraw::kTiled_Layout)
);) | 574 MultiPictureDraw::kTiled_Layout);) |
572 } | 575 } |
OLD | NEW |