diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkRecordDraw.cpp | 9 | ||||
-rw-r--r-- | src/core/SkRecorder.cpp | 16 | ||||
-rw-r--r-- | src/core/SkRecords.h | 18 |
3 files changed, 30 insertions, 13 deletions
diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp index aa2593fc73..7e35d8a2c7 100644 --- a/src/core/SkRecordDraw.cpp +++ b/src/core/SkRecordDraw.cpp @@ -103,7 +103,11 @@ DRAW(DrawBitmap, drawBitmap(shallow_copy(r.bitmap), r.left, r.top, r.paint)); DRAW(DrawBitmapMatrix, drawBitmapMatrix(shallow_copy(r.bitmap), r.matrix, r.paint)); DRAW(DrawBitmapNine, drawBitmapNine(shallow_copy(r.bitmap), r.center, r.dst, r.paint)); DRAW(DrawBitmapRectToRect, - drawBitmapRectToRect(shallow_copy(r.bitmap), r.src, r.dst, r.paint, r.flags)); + drawBitmapRectToRect(shallow_copy(r.bitmap), r.src, r.dst, r.paint, + SkCanvas::kNone_DrawBitmapRectFlag)); +DRAW(DrawBitmapRectToRectBleed, + drawBitmapRectToRect(shallow_copy(r.bitmap), r.src, r.dst, r.paint, + SkCanvas::kBleed_DrawBitmapRectFlag)); DRAW(DrawDRRect, drawDRRect(r.outer, r.inner, r.paint)); DRAW(DrawImage, drawImage(r.image, r.left, r.top, r.paint)); DRAW(DrawImageRect, drawImageRect(r.image, r.src, r.dst, r.paint)); @@ -415,6 +419,9 @@ private: Bounds bounds(const DrawBitmapRectToRect& op) const { return this->adjustAndMap(op.dst, op.paint); } + Bounds bounds(const DrawBitmapRectToRectBleed& op) const { + return this->adjustAndMap(op.dst, op.paint); + } Bounds bounds(const DrawBitmapNine& op) const { return this->adjustAndMap(op.dst, op.paint); } diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp index 33d89d9079..3252e59f62 100644 --- a/src/core/SkRecorder.cpp +++ b/src/core/SkRecorder.cpp @@ -152,7 +152,7 @@ void SkRecorder::drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) { - APPEND(DrawPoints, delay_copy(paint), mode, count, this->copy(pts, count)); + APPEND(DrawPoints, delay_copy(paint), mode, SkToUInt(count), this->copy(pts, count)); } void SkRecorder::drawRect(const SkRect& rect, const SkPaint& paint) { @@ -192,8 +192,14 @@ void SkRecorder::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect& dst, const SkPaint* paint, DrawBitmapRectFlags flags) { + if (kBleed_DrawBitmapRectFlag == flags) { + APPEND(DrawBitmapRectToRectBleed, + this->copy(paint), delay_copy(bitmap), this->copy(src), dst); + return; + } + SkASSERT(kNone_DrawBitmapRectFlag == flags); APPEND(DrawBitmapRectToRect, - this->copy(paint), delay_copy(bitmap), this->copy(src), dst, flags); + this->copy(paint), delay_copy(bitmap), this->copy(src), dst); } void SkRecorder::drawBitmapMatrix(const SkBitmap& bitmap, @@ -246,9 +252,9 @@ void SkRecorder::onDrawPosTextH(const void* text, size_t byteLength, APPEND(DrawPosTextH, delay_copy(paint), this->copy((const char*)text, byteLength), - byteLength, - this->copy(xpos, points), - constY); + SkToUInt(byteLength), + constY, + this->copy(xpos, points)); } void SkRecorder::onDrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h index da0c884ae2..d6308a9130 100644 --- a/src/core/SkRecords.h +++ b/src/core/SkRecords.h @@ -45,6 +45,7 @@ namespace SkRecords { M(DrawBitmapMatrix) \ M(DrawBitmapNine) \ M(DrawBitmapRectToRect) \ + M(DrawBitmapRectToRectBleed) \ M(DrawDrawable) \ M(DrawImage) \ M(DrawImageRect) \ @@ -239,11 +240,14 @@ RECORD4(DrawBitmapNine, Optional<SkPaint>, paint, ImmutableBitmap, bitmap, SkIRect, center, SkRect, dst); -RECORD5(DrawBitmapRectToRect, Optional<SkPaint>, paint, +RECORD4(DrawBitmapRectToRect, Optional<SkPaint>, paint, ImmutableBitmap, bitmap, Optional<SkRect>, src, - SkRect, dst, - SkCanvas::DrawBitmapRectFlags, flags); + SkRect, dst); +RECORD4(DrawBitmapRectToRectBleed, Optional<SkPaint>, paint, + ImmutableBitmap, bitmap, + Optional<SkRect>, src, + SkRect, dst); RECORD3(DrawDRRect, SkPaint, paint, SkRRect, outer, SkRRect, inner); RECORD2(DrawDrawable, SkRect, worstCaseBounds, int32_t, index); RECORD4(DrawImage, Optional<SkPaint>, paint, @@ -260,16 +264,16 @@ RECORD2(DrawPath, SkPaint, paint, SkPath, path); RECORD3(DrawPicture, Optional<SkPaint>, paint, RefBox<const SkPicture>, picture, Optional<SkMatrix>, matrix); -RECORD4(DrawPoints, SkPaint, paint, SkCanvas::PointMode, mode, size_t, count, SkPoint*, pts); +RECORD4(DrawPoints, SkPaint, paint, SkCanvas::PointMode, mode, unsigned, count, SkPoint*, pts); RECORD4(DrawPosText, SkPaint, paint, PODArray<char>, text, size_t, byteLength, PODArray<SkPoint>, pos); RECORD5(DrawPosTextH, SkPaint, paint, PODArray<char>, text, - size_t, byteLength, - PODArray<SkScalar>, xpos, - SkScalar, y); + unsigned, byteLength, + SkScalar, y, + PODArray<SkScalar>, xpos); RECORD2(DrawRRect, SkPaint, paint, SkRRect, rrect); RECORD2(DrawRect, SkPaint, paint, SkRect, rect); RECORD4(DrawSprite, Optional<SkPaint>, paint, ImmutableBitmap, bitmap, int, left, int, top); |