Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/pipe/SkGPipeWrite.cpp

Issue 1533953002: change signature for virtual related to saveLayer, passing SaveLayerRec (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update comment Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pipe/SkGPipeRead.cpp ('k') | src/utils/SkDumpCanvas.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkAnnotation.h" 9 #include "SkAnnotation.h"
10 #include "SkBitmapHeap.h" 10 #include "SkBitmapHeap.h"
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 /** 241 /**
242 * Flatten an SkBitmap to send to the reader, where it will be referenced 242 * Flatten an SkBitmap to send to the reader, where it will be referenced
243 * according to slot. 243 * according to slot.
244 */ 244 */
245 bool shuttleBitmap(const SkBitmap&, int32_t slot); 245 bool shuttleBitmap(const SkBitmap&, int32_t slot);
246 246
247 void resetImageHeap(); 247 void resetImageHeap();
248 248
249 protected: 249 protected:
250 void willSave() override; 250 void willSave() override;
251 SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) ov erride; 251 SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) override;
252 void willRestore() override; 252 void willRestore() override;
253 253
254 void didConcat(const SkMatrix&) override; 254 void didConcat(const SkMatrix&) override;
255 void didSetMatrix(const SkMatrix&) override; 255 void didSetMatrix(const SkMatrix&) override;
256 256
257 void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override; 257 void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override;
258 void onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, 258 void onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y,
259 const SkPaint&) override; 259 const SkPaint&) override;
260 void onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[], 260 void onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[],
261 const SkPaint&) override; 261 const SkPaint&) override;
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 535
536 void SkGPipeCanvas::willSave() { 536 void SkGPipeCanvas::willSave() {
537 NOTIFY_SETUP(this); 537 NOTIFY_SETUP(this);
538 if (this->needOpBytes()) { 538 if (this->needOpBytes()) {
539 this->writeOp(kSave_DrawOp); 539 this->writeOp(kSave_DrawOp);
540 } 540 }
541 541
542 this->INHERITED::willSave(); 542 this->INHERITED::willSave();
543 } 543 }
544 544
545 SkCanvas::SaveLayerStrategy SkGPipeCanvas::willSaveLayer(const SkRect* bounds, c onst SkPaint* paint, 545 SkCanvas::SaveLayerStrategy SkGPipeCanvas::getSaveLayerStrategy(const SaveLayerR ec& rec) {
546 SaveFlags saveFlags) {
547 NOTIFY_SETUP(this); 546 NOTIFY_SETUP(this);
548 size_t size = 0; 547 size_t size = 0;
549 unsigned opFlags = 0; 548 unsigned opFlags = 0;
550 549
551 if (bounds) { 550 if (rec.fBounds) {
552 opFlags |= kSaveLayer_HasBounds_DrawOpFlag; 551 opFlags |= kSaveLayer_HasBounds_DrawOpFlag;
553 size += sizeof(SkRect); 552 size += sizeof(SkRect);
554 } 553 }
555 if (paint) { 554 if (rec.fPaint) {
556 opFlags |= kSaveLayer_HasPaint_DrawOpFlag; 555 opFlags |= kSaveLayer_HasPaint_DrawOpFlag;
557 this->writePaint(*paint); 556 this->writePaint(*rec.fPaint);
558 } 557 }
559 558
560 if (this->needOpBytes(size)) { 559 if (this->needOpBytes(size)) {
561 this->writeOp(kSaveLayer_DrawOp, opFlags, saveFlags); 560 this->writeOp(kSaveLayer_DrawOp, opFlags, rec.fSaveLayerFlags);
562 if (bounds) { 561 if (rec.fBounds) {
563 fWriter.writeRect(*bounds); 562 fWriter.writeRect(*rec.fBounds);
564 } 563 }
565 } 564 }
566 565
567 this->INHERITED::willSaveLayer(bounds, paint, saveFlags); 566 (void)this->INHERITED::getSaveLayerStrategy(rec);
568 // we don't create a layer 567 // we don't create a layer
569 return kNoLayer_SaveLayerStrategy; 568 return kNoLayer_SaveLayerStrategy;
570 } 569 }
571 570
572 void SkGPipeCanvas::willRestore() { 571 void SkGPipeCanvas::willRestore() {
573 NOTIFY_SETUP(this); 572 NOTIFY_SETUP(this);
574 if (this->needOpBytes()) { 573 if (this->needOpBytes()) {
575 this->writeOp(kRestore_DrawOp); 574 this->writeOp(kRestore_DrawOp);
576 } 575 }
577 576
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 int32_t slot = this->find(img); 1474 int32_t slot = this->find(img);
1476 if (slot) { 1475 if (slot) {
1477 return slot; 1476 return slot;
1478 } 1477 }
1479 // TODO: SkImage does not expose bytes per pixel, 4 is just a best guess. 1478 // TODO: SkImage does not expose bytes per pixel, 4 is just a best guess.
1480 fBytesInCache += img->width() * img->height() * 4; 1479 fBytesInCache += img->width() * img->height() * 4;
1481 *fArray.append() = SkRef(img); 1480 *fArray.append() = SkRef(img);
1482 return fArray.count(); // slot is always index+1 1481 return fArray.count(); // slot is always index+1
1483 } 1482 }
1484 1483
OLDNEW
« no previous file with comments | « src/pipe/SkGPipeRead.cpp ('k') | src/utils/SkDumpCanvas.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698