summaryrefslogtreecommitdiffstats
path: root/chromium/cc/paint/record_paint_canvas.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2023-04-14 15:24:54 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-05-26 11:29:55 +0000
commitab965b1c2c3e7e4cd62a4b45abfaf393f4fb4618 (patch)
tree906ba4a71162c3ebcae0b742dbe01076af2abb22 /chromium/cc/paint/record_paint_canvas.cc
parent813d9ae984a99e739b99cf694a9d5b24d0a6b7a7 (diff)
BASELINE: Update Chromium to 112.0.5615.132
Change-Id: I59e23789618066826010171a36efbf8a68965ed0 Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/472282 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/cc/paint/record_paint_canvas.cc')
-rw-r--r--chromium/cc/paint/record_paint_canvas.cc115
1 files changed, 36 insertions, 79 deletions
diff --git a/chromium/cc/paint/record_paint_canvas.cc b/chromium/cc/paint/record_paint_canvas.cc
index d08866332b1..af8e6a0d7ff 100644
--- a/chromium/cc/paint/record_paint_canvas.cc
+++ b/chromium/cc/paint/record_paint_canvas.cc
@@ -21,12 +21,12 @@ namespace cc {
RecordPaintCanvas::RecordPaintCanvas() = default;
RecordPaintCanvas::~RecordPaintCanvas() = default;
-sk_sp<PaintRecord> RecordPaintCanvas::ReleaseAsRecord() {
+PaintRecord RecordPaintCanvas::ReleaseAsRecord() {
// Some users expect that their saves are automatically closed for them.
// Maybe we could remove this assumption and just have callers do it.
restoreToCount(1);
needs_flush_ = false;
- return buffer_.MoveRetainingBufferIfPossible();
+ return buffer_.ReleaseAsRecord();
}
template <typename T, typename... Args>
@@ -72,25 +72,24 @@ int RecordPaintCanvas::save() {
return save_count_++;
}
-int RecordPaintCanvas::saveLayer(const SkRect* bounds,
- const PaintFlags* flags) {
- if (flags && flags->IsSimpleOpacity()) {
- // TODO(enne): maybe more callers should know this and call
- // saveLayerAlpha instead of needing to check here.
- uint8_t alpha = SkColorGetA(flags->getColor());
- return saveLayerAlpha(bounds, alpha);
- }
- return saveLayerInternal(bounds, flags);
+int RecordPaintCanvas::saveLayer(const PaintFlags& flags) {
+ push<SaveLayerOp>(flags);
+ return save_count_++;
}
-int RecordPaintCanvas::saveLayerInternal(const SkRect* bounds,
- const PaintFlags* flags) {
+int RecordPaintCanvas::saveLayer(const SkRect& bounds,
+ const PaintFlags& flags) {
push<SaveLayerOp>(bounds, flags);
return save_count_++;
}
-int RecordPaintCanvas::saveLayerAlpha(const SkRect* bounds, uint8_t alpha) {
- push<SaveLayerAlphaOp>(bounds, static_cast<float>(alpha / 255.0f));
+int RecordPaintCanvas::saveLayerAlphaf(float alpha) {
+ push<SaveLayerAlphaOp>(alpha);
+ return save_count_++;
+}
+
+int RecordPaintCanvas::saveLayerAlphaf(const SkRect& bounds, float alpha) {
+ push<SaveLayerAlphaOp>(bounds, alpha);
return save_count_++;
}
@@ -124,18 +123,10 @@ void RecordPaintCanvas::rotate(SkScalar degrees) {
push<RotateOp>(degrees);
}
-void RecordPaintCanvas::concat(const SkMatrix& matrix) {
- concat(SkM44(matrix));
-}
-
void RecordPaintCanvas::concat(const SkM44& matrix) {
push<ConcatOp>(matrix);
}
-void RecordPaintCanvas::setMatrix(const SkMatrix& matrix) {
- setMatrix(SkM44(matrix));
-}
-
void RecordPaintCanvas::setMatrix(const SkM44& matrix) {
push<SetMatrixOp>(matrix);
}
@@ -198,36 +189,16 @@ SkImageInfo RecordPaintCanvas::imageInfo() const {
return SkImageInfo();
}
-SkRect RecordPaintCanvas::getLocalClipBounds() const {
- NOTREACHED();
- return SkRect();
-}
-
bool RecordPaintCanvas::getLocalClipBounds(SkRect* bounds) const {
NOTREACHED();
return false;
}
-SkIRect RecordPaintCanvas::getDeviceClipBounds() const {
- NOTREACHED();
- return SkIRect();
-}
-
bool RecordPaintCanvas::getDeviceClipBounds(SkIRect* bounds) const {
NOTREACHED();
return false;
}
-bool RecordPaintCanvas::isClipEmpty() const {
- NOTREACHED();
- return true;
-}
-
-SkMatrix RecordPaintCanvas::getTotalMatrix() const {
- NOTREACHED();
- return SkMatrix();
-}
-
SkM44 RecordPaintCanvas::getLocalToDevice() const {
NOTREACHED();
return SkM44();
@@ -342,9 +313,9 @@ void RecordPaintCanvas::drawTextBlob(sk_sp<SkTextBlob> blob,
push<DrawTextBlobOp>(std::move(blob), x, y, node_id, flags);
}
-void RecordPaintCanvas::drawPicture(sk_sp<const PaintRecord> record) {
+void RecordPaintCanvas::drawPicture(PaintRecord record) {
// TODO(enne): If this is small, maybe flatten it?
- push<DrawRecordOp>(record);
+ push<DrawRecordOp>(std::move(record));
}
void RecordPaintCanvas::Annotate(AnnotationType type,
@@ -371,26 +342,28 @@ int InspectableRecordPaintCanvas::save() {
return CheckSaveCount(RecordPaintCanvas::save(), canvas_.save());
}
-int InspectableRecordPaintCanvas::saveLayerInternal(const SkRect* bounds,
- const PaintFlags* flags) {
- int canvas_prev_save_count;
- // TODO(enne): it appears that image filters affect matrices and color
- // matrices affect transparent flags on SkCanvas layers, but it's not clear
- // whether those are actually needed and we could just skip ToSkPaint here.
- if (flags) {
- SkPaint paint = flags->ToSkPaint();
- canvas_prev_save_count = canvas_.saveLayer(bounds, &paint);
- } else {
- canvas_prev_save_count = canvas_.saveLayer(bounds, nullptr);
- }
- return CheckSaveCount(RecordPaintCanvas::saveLayerInternal(bounds, flags),
- canvas_prev_save_count);
+int InspectableRecordPaintCanvas::saveLayer(const PaintFlags& flags) {
+ SkPaint paint = flags.ToSkPaint();
+ return CheckSaveCount(RecordPaintCanvas::saveLayer(flags),
+ canvas_.saveLayer(nullptr, &paint));
+}
+
+int InspectableRecordPaintCanvas::saveLayer(const SkRect& bounds,
+ const PaintFlags& flags) {
+ SkPaint paint = flags.ToSkPaint();
+ return CheckSaveCount(RecordPaintCanvas::saveLayer(bounds, flags),
+ canvas_.saveLayer(&bounds, &paint));
+}
+
+int InspectableRecordPaintCanvas::saveLayerAlphaf(float alpha) {
+ return CheckSaveCount(RecordPaintCanvas::saveLayerAlphaf(alpha),
+ canvas_.saveLayerAlphaf(nullptr, alpha));
}
-int InspectableRecordPaintCanvas::saveLayerAlpha(const SkRect* bounds,
- uint8_t alpha) {
- return CheckSaveCount(RecordPaintCanvas::saveLayerAlpha(bounds, alpha),
- canvas_.saveLayerAlpha(bounds, alpha));
+int InspectableRecordPaintCanvas::saveLayerAlphaf(const SkRect& bounds,
+ float alpha) {
+ return CheckSaveCount(RecordPaintCanvas::saveLayerAlphaf(bounds, alpha),
+ canvas_.saveLayerAlphaf(&bounds, alpha));
}
void InspectableRecordPaintCanvas::restore() {
@@ -458,30 +431,14 @@ SkImageInfo InspectableRecordPaintCanvas::imageInfo() const {
return canvas_.imageInfo();
}
-SkRect InspectableRecordPaintCanvas::getLocalClipBounds() const {
- return canvas_.getLocalClipBounds();
-}
-
bool InspectableRecordPaintCanvas::getLocalClipBounds(SkRect* bounds) const {
return canvas_.getLocalClipBounds(bounds);
}
-SkIRect InspectableRecordPaintCanvas::getDeviceClipBounds() const {
- return canvas_.getDeviceClipBounds();
-}
-
bool InspectableRecordPaintCanvas::getDeviceClipBounds(SkIRect* bounds) const {
return canvas_.getDeviceClipBounds(bounds);
}
-bool InspectableRecordPaintCanvas::isClipEmpty() const {
- return canvas_.isClipEmpty();
-}
-
-SkMatrix InspectableRecordPaintCanvas::getTotalMatrix() const {
- return canvas_.getTotalMatrix();
-}
-
SkM44 InspectableRecordPaintCanvas::getLocalToDevice() const {
return canvas_.getLocalToDevice();
}