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

Side by Side Diff: src/core/SkPictureRecord.cpp

Issue 835913002: Revert of move remaining virtual draw methods to onDraw (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 11 months 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/core/SkPictureRecord.h ('k') | src/core/SkRecorder.h » ('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 * Copyright 2011 Google Inc. 2 * Copyright 2011 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 "SkPictureRecord.h" 8 #include "SkPictureRecord.h"
9 #include "SkDevice.h" 9 #include "SkDevice.h"
10 #include "SkPatchUtils.h" 10 #include "SkPatchUtils.h"
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 } 444 }
445 size_t initialOffset = this->addDraw(CLIP_REGION, &size); 445 size_t initialOffset = this->addDraw(CLIP_REGION, &size);
446 this->addRegion(region); 446 this->addRegion(region);
447 this->addInt(ClipParams_pack(op, false)); 447 this->addInt(ClipParams_pack(op, false));
448 size_t offset = this->recordRestoreOffsetPlaceholder(op); 448 size_t offset = this->recordRestoreOffsetPlaceholder(op);
449 449
450 this->validate(initialOffset, size); 450 this->validate(initialOffset, size);
451 return offset; 451 return offset;
452 } 452 }
453 453
454 void SkPictureRecord::onDrawPaint(const SkPaint& paint) { 454 void SkPictureRecord::drawPaint(const SkPaint& paint) {
455 // op + paint index 455 // op + paint index
456 size_t size = 2 * kUInt32Size; 456 size_t size = 2 * kUInt32Size;
457 size_t initialOffset = this->addDraw(DRAW_PAINT, &size); 457 size_t initialOffset = this->addDraw(DRAW_PAINT, &size);
458 SkASSERT(initialOffset+get_paint_offset(DRAW_PAINT, size) == fWriter.bytesWr itten()); 458 SkASSERT(initialOffset+get_paint_offset(DRAW_PAINT, size) == fWriter.bytesWr itten());
459 this->addPaint(paint); 459 this->addPaint(paint);
460 this->validate(initialOffset, size); 460 this->validate(initialOffset, size);
461 } 461 }
462 462
463 void SkPictureRecord::onDrawPoints(PointMode mode, size_t count, const SkPoint p ts[], 463 void SkPictureRecord::drawPoints(PointMode mode, size_t count, const SkPoint pts [],
464 const SkPaint& paint) { 464 const SkPaint& paint) {
465 fContentInfo.onDrawPoints(count, paint); 465 fContentInfo.onDrawPoints(count, paint);
466 466
467 // op + paint index + mode + count + point data 467 // op + paint index + mode + count + point data
468 size_t size = 4 * kUInt32Size + count * sizeof(SkPoint); 468 size_t size = 4 * kUInt32Size + count * sizeof(SkPoint);
469 size_t initialOffset = this->addDraw(DRAW_POINTS, &size); 469 size_t initialOffset = this->addDraw(DRAW_POINTS, &size);
470 SkASSERT(initialOffset+get_paint_offset(DRAW_POINTS, size) == fWriter.bytesW ritten()); 470 SkASSERT(initialOffset+get_paint_offset(DRAW_POINTS, size) == fWriter.bytesW ritten());
471 this->addPaint(paint); 471 this->addPaint(paint);
472 472
473 this->addInt(mode); 473 this->addInt(mode);
474 this->addInt(SkToInt(count)); 474 this->addInt(SkToInt(count));
475 fWriter.writeMul4(pts, count * sizeof(SkPoint)); 475 fWriter.writeMul4(pts, count * sizeof(SkPoint));
476 this->validate(initialOffset, size); 476 this->validate(initialOffset, size);
477 } 477 }
478 478
479 void SkPictureRecord::onDrawOval(const SkRect& oval, const SkPaint& paint) { 479 void SkPictureRecord::drawOval(const SkRect& oval, const SkPaint& paint) {
480 // op + paint index + rect 480 // op + paint index + rect
481 size_t size = 2 * kUInt32Size + sizeof(oval); 481 size_t size = 2 * kUInt32Size + sizeof(oval);
482 size_t initialOffset = this->addDraw(DRAW_OVAL, &size); 482 size_t initialOffset = this->addDraw(DRAW_OVAL, &size);
483 SkASSERT(initialOffset+get_paint_offset(DRAW_OVAL, size) == fWriter.bytesWri tten()); 483 SkASSERT(initialOffset+get_paint_offset(DRAW_OVAL, size) == fWriter.bytesWri tten());
484 this->addPaint(paint); 484 this->addPaint(paint);
485 this->addRect(oval); 485 this->addRect(oval);
486 this->validate(initialOffset, size); 486 this->validate(initialOffset, size);
487 } 487 }
488 488
489 void SkPictureRecord::onDrawRect(const SkRect& rect, const SkPaint& paint) { 489 void SkPictureRecord::drawRect(const SkRect& rect, const SkPaint& paint) {
490 // op + paint index + rect 490 // op + paint index + rect
491 size_t size = 2 * kUInt32Size + sizeof(rect); 491 size_t size = 2 * kUInt32Size + sizeof(rect);
492 size_t initialOffset = this->addDraw(DRAW_RECT, &size); 492 size_t initialOffset = this->addDraw(DRAW_RECT, &size);
493 SkASSERT(initialOffset+get_paint_offset(DRAW_RECT, size) == fWriter.bytesWri tten()); 493 SkASSERT(initialOffset+get_paint_offset(DRAW_RECT, size) == fWriter.bytesWri tten());
494 this->addPaint(paint); 494 this->addPaint(paint);
495 this->addRect(rect); 495 this->addRect(rect);
496 this->validate(initialOffset, size); 496 this->validate(initialOffset, size);
497 } 497 }
498 498
499 void SkPictureRecord::onDrawRRect(const SkRRect& rrect, const SkPaint& paint) { 499 void SkPictureRecord::drawRRect(const SkRRect& rrect, const SkPaint& paint) {
500 // op + paint index + rrect 500 // op + paint index + rrect
501 size_t size = 2 * kUInt32Size + SkRRect::kSizeInMemory; 501 size_t size = 2 * kUInt32Size + SkRRect::kSizeInMemory;
502 size_t initialOffset = this->addDraw(DRAW_RRECT, &size); 502 size_t initialOffset = this->addDraw(DRAW_RRECT, &size);
503 SkASSERT(initialOffset+get_paint_offset(DRAW_RRECT, size) == fWriter.bytesWr itten()); 503 SkASSERT(initialOffset+get_paint_offset(DRAW_RRECT, size) == fWriter.bytesWr itten());
504 this->addPaint(paint); 504 this->addPaint(paint);
505 this->addRRect(rrect); 505 this->addRRect(rrect);
506 this->validate(initialOffset, size); 506 this->validate(initialOffset, size);
507 } 507 }
508 508
509 void SkPictureRecord::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, 509 void SkPictureRecord::onDrawDRRect(const SkRRect& outer, const SkRRect& inner,
510 const SkPaint& paint) { 510 const SkPaint& paint) {
511 // op + paint index + rrects 511 // op + paint index + rrects
512 size_t size = 2 * kUInt32Size + SkRRect::kSizeInMemory * 2; 512 size_t size = 2 * kUInt32Size + SkRRect::kSizeInMemory * 2;
513 size_t initialOffset = this->addDraw(DRAW_DRRECT, &size); 513 size_t initialOffset = this->addDraw(DRAW_DRRECT, &size);
514 SkASSERT(initialOffset+get_paint_offset(DRAW_DRRECT, size) == fWriter.bytesW ritten()); 514 SkASSERT(initialOffset+get_paint_offset(DRAW_DRRECT, size) == fWriter.bytesW ritten());
515 this->addPaint(paint); 515 this->addPaint(paint);
516 this->addRRect(outer); 516 this->addRRect(outer);
517 this->addRRect(inner); 517 this->addRRect(inner);
518 this->validate(initialOffset, size); 518 this->validate(initialOffset, size);
519 } 519 }
520 520
521 void SkPictureRecord::onDrawPath(const SkPath& path, const SkPaint& paint) { 521 void SkPictureRecord::drawPath(const SkPath& path, const SkPaint& paint) {
522 fContentInfo.onDrawPath(path, paint); 522 fContentInfo.onDrawPath(path, paint);
523 523
524 // op + paint index + path index 524 // op + paint index + path index
525 size_t size = 3 * kUInt32Size; 525 size_t size = 3 * kUInt32Size;
526 size_t initialOffset = this->addDraw(DRAW_PATH, &size); 526 size_t initialOffset = this->addDraw(DRAW_PATH, &size);
527 SkASSERT(initialOffset+get_paint_offset(DRAW_PATH, size) == fWriter.bytesWri tten()); 527 SkASSERT(initialOffset+get_paint_offset(DRAW_PATH, size) == fWriter.bytesWri tten());
528 this->addPaint(paint); 528 this->addPaint(paint);
529 this->addPath(path); 529 this->addPath(path);
530 this->validate(initialOffset, size); 530 this->validate(initialOffset, size);
531 } 531 }
532 532
533 void SkPictureRecord::onDrawBitmap(const SkBitmap& bitmap, SkScalar left, SkScal ar top, 533 void SkPictureRecord::drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top,
534 const SkPaint* paint) { 534 const SkPaint* paint = NULL) {
535 // op + paint index + bitmap index + left + top 535 // op + paint index + bitmap index + left + top
536 size_t size = 3 * kUInt32Size + 2 * sizeof(SkScalar); 536 size_t size = 3 * kUInt32Size + 2 * sizeof(SkScalar);
537 size_t initialOffset = this->addDraw(DRAW_BITMAP, &size); 537 size_t initialOffset = this->addDraw(DRAW_BITMAP, &size);
538 SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP, size) == fWriter.bytesW ritten()); 538 SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP, size) == fWriter.bytesW ritten());
539 this->addPaintPtr(paint); 539 this->addPaintPtr(paint);
540 this->addBitmap(bitmap); 540 this->addBitmap(bitmap);
541 this->addScalar(left); 541 this->addScalar(left);
542 this->addScalar(top); 542 this->addScalar(top);
543 this->validate(initialOffset, size); 543 this->validate(initialOffset, size);
544 } 544 }
545 545
546 void SkPictureRecord::onDrawBitmapRect(const SkBitmap& bitmap, const SkRect* src , const SkRect& dst, 546 void SkPictureRecord::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src,
547 const SkPaint* paint, DrawBitmapRectFlags flags) { 547 const SkRect& dst, const SkPaint* pai nt,
548 DrawBitmapRectFlags flags) {
548 // id + paint index + bitmap index + bool for 'src' + flags 549 // id + paint index + bitmap index + bool for 'src' + flags
549 size_t size = 5 * kUInt32Size; 550 size_t size = 5 * kUInt32Size;
550 if (src) { 551 if (src) {
551 size += sizeof(*src); // + rect 552 size += sizeof(*src); // + rect
552 } 553 }
553 size += sizeof(dst); // + rect 554 size += sizeof(dst); // + rect
554 555
555 size_t initialOffset = this->addDraw(DRAW_BITMAP_RECT_TO_RECT, &size); 556 size_t initialOffset = this->addDraw(DRAW_BITMAP_RECT_TO_RECT, &size);
556 SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_RECT_TO_RECT, size) 557 SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_RECT_TO_RECT, size)
557 == fWriter.bytesWritten()); 558 == fWriter.bytesWritten());
558 this->addPaintPtr(paint); 559 this->addPaintPtr(paint);
559 this->addBitmap(bitmap); 560 this->addBitmap(bitmap);
560 this->addRectPtr(src); // may be null 561 this->addRectPtr(src); // may be null
561 this->addRect(dst); 562 this->addRect(dst);
562 this->addInt(flags); 563 this->addInt(flags);
563 this->validate(initialOffset, size); 564 this->validate(initialOffset, size);
564 } 565 }
565 566
566 void SkPictureRecord::onDrawBitmapNine(const SkBitmap& bitmap, const SkIRect& ce nter, 567 void SkPictureRecord::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& cent er,
567 const SkRect& dst, const SkPaint* paint) { 568 const SkRect& dst, const SkPaint* paint) {
568 // op + paint index + bitmap id + center + dst rect 569 // op + paint index + bitmap id + center + dst rect
569 size_t size = 3 * kUInt32Size + sizeof(center) + sizeof(dst); 570 size_t size = 3 * kUInt32Size + sizeof(center) + sizeof(dst);
570 size_t initialOffset = this->addDraw(DRAW_BITMAP_NINE, &size); 571 size_t initialOffset = this->addDraw(DRAW_BITMAP_NINE, &size);
571 SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_NINE, size) == fWriter.b ytesWritten()); 572 SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_NINE, size) == fWriter.b ytesWritten());
572 this->addPaintPtr(paint); 573 this->addPaintPtr(paint);
573 this->addBitmap(bitmap); 574 this->addBitmap(bitmap);
574 this->addIRect(center); 575 this->addIRect(center);
575 this->addRect(dst); 576 this->addRect(dst);
576 this->validate(initialOffset, size); 577 this->validate(initialOffset, size);
577 } 578 }
578 579
579 void SkPictureRecord::onDrawSprite(const SkBitmap& bitmap, int left, int top, 580 void SkPictureRecord::drawSprite(const SkBitmap& bitmap, int left, int top,
580 const SkPaint* paint) { 581 const SkPaint* paint = NULL) {
581 // op + paint index + bitmap index + left + top 582 // op + paint index + bitmap index + left + top
582 size_t size = 5 * kUInt32Size; 583 size_t size = 5 * kUInt32Size;
583 size_t initialOffset = this->addDraw(DRAW_SPRITE, &size); 584 size_t initialOffset = this->addDraw(DRAW_SPRITE, &size);
584 SkASSERT(initialOffset+get_paint_offset(DRAW_SPRITE, size) == fWriter.bytesW ritten()); 585 SkASSERT(initialOffset+get_paint_offset(DRAW_SPRITE, size) == fWriter.bytesW ritten());
585 this->addPaintPtr(paint); 586 this->addPaintPtr(paint);
586 this->addBitmap(bitmap); 587 this->addBitmap(bitmap);
587 this->addInt(left); 588 this->addInt(left);
588 this->addInt(top); 589 this->addInt(top);
589 this->validate(initialOffset, size); 590 this->validate(initialOffset, size);
590 } 591 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 initialOffset = this->addDraw(DRAW_PICTURE_MATRIX_PAINT, &size); 686 initialOffset = this->addDraw(DRAW_PICTURE_MATRIX_PAINT, &size);
686 SkASSERT(initialOffset + get_paint_offset(DRAW_PICTURE_MATRIX_PAINT, siz e) 687 SkASSERT(initialOffset + get_paint_offset(DRAW_PICTURE_MATRIX_PAINT, siz e)
687 == fWriter.bytesWritten()); 688 == fWriter.bytesWritten());
688 this->addPaintPtr(paint); 689 this->addPaintPtr(paint);
689 this->addMatrix(m); 690 this->addMatrix(m);
690 this->addPicture(picture); 691 this->addPicture(picture);
691 } 692 }
692 this->validate(initialOffset, size); 693 this->validate(initialOffset, size);
693 } 694 }
694 695
695 void SkPictureRecord::onDrawVertices(VertexMode vmode, int vertexCount, 696 void SkPictureRecord::drawVertices(VertexMode vmode, int vertexCount,
696 const SkPoint vertices[], const SkPoint tex s[], 697 const SkPoint vertices[], const SkPoint texs[],
697 const SkColor colors[], SkXfermode* xfer, 698 const SkColor colors[], SkXfermode* xfer,
698 const uint16_t indices[], int indexCount, 699 const uint16_t indices[], int indexCount,
699 const SkPaint& paint) { 700 const SkPaint& paint) {
700 uint32_t flags = 0; 701 uint32_t flags = 0;
701 if (texs) { 702 if (texs) {
702 flags |= DRAW_VERTICES_HAS_TEXS; 703 flags |= DRAW_VERTICES_HAS_TEXS;
703 } 704 }
704 if (colors) { 705 if (colors) {
705 flags |= DRAW_VERTICES_HAS_COLORS; 706 flags |= DRAW_VERTICES_HAS_COLORS;
706 } 707 }
707 if (indexCount > 0) { 708 if (indexCount > 0) {
708 flags |= DRAW_VERTICES_HAS_INDICES; 709 flags |= DRAW_VERTICES_HAS_INDICES;
709 } 710 }
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 void SkPictureRecord::addTextBlob(const SkTextBlob *blob) { 992 void SkPictureRecord::addTextBlob(const SkTextBlob *blob) {
992 int index = fTextBlobRefs.count(); 993 int index = fTextBlobRefs.count();
993 *fTextBlobRefs.append() = blob; 994 *fTextBlobRefs.append() = blob;
994 blob->ref(); 995 blob->ref();
995 // follow the convention of recording a 1-based index 996 // follow the convention of recording a 1-based index
996 this->addInt(index + 1); 997 this->addInt(index + 1);
997 } 998 }
998 999
999 /////////////////////////////////////////////////////////////////////////////// 1000 ///////////////////////////////////////////////////////////////////////////////
1000 1001
OLDNEW
« no previous file with comments | « src/core/SkPictureRecord.h ('k') | src/core/SkRecorder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698