summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc')
-rw-r--r--chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc38
1 files changed, 18 insertions, 20 deletions
diff --git a/chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc b/chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc
index 4e674990b21..20da31898b3 100644
--- a/chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc
+++ b/chromium/third_party/blink/renderer/platform/graphics/picture_snapshot.cc
@@ -88,9 +88,9 @@ bool PictureSnapshot::IsEmpty() const {
return picture_->cullRect().isEmpty();
}
-std::unique_ptr<Vector<char>> PictureSnapshot::Replay(unsigned from_step,
- unsigned to_step,
- double scale) const {
+Vector<char> PictureSnapshot::Replay(unsigned from_step,
+ unsigned to_step,
+ double scale) const {
const SkIRect bounds = picture_->cullRect().roundOut();
int width = ceil(scale * bounds.width());
int height = ceil(scale * bounds.height());
@@ -113,7 +113,7 @@ std::unique_ptr<Vector<char>> PictureSnapshot::Replay(unsigned from_step,
canvas.ResetStepCount();
picture_->playback(&canvas, &canvas);
}
- std::unique_ptr<Vector<char>> base64_data = std::make_unique<Vector<char>>();
+ Vector<char> base64_data;
Vector<char> encoded_image;
SkPixmap src;
@@ -123,37 +123,34 @@ std::unique_ptr<Vector<char>> PictureSnapshot::Replay(unsigned from_step,
SkPngEncoder::Options options;
options.fFilterFlags = SkPngEncoder::FilterFlag::kSub;
options.fZLibLevel = 3;
- options.fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore;
if (!ImageEncoder::Encode(
reinterpret_cast<Vector<unsigned char>*>(&encoded_image), src,
options)) {
- return nullptr;
+ return Vector<char>();
}
- Base64Encode(encoded_image, *base64_data);
+ Base64Encode(encoded_image, base64_data);
return base64_data;
}
-std::unique_ptr<PictureSnapshot::Timings> PictureSnapshot::Profile(
+Vector<Vector<TimeDelta>> PictureSnapshot::Profile(
unsigned min_repeat_count,
- double min_duration,
+ TimeDelta min_duration,
const FloatRect* clip_rect) const {
- std::unique_ptr<PictureSnapshot::Timings> timings =
- std::make_unique<PictureSnapshot::Timings>();
- timings->ReserveCapacity(min_repeat_count);
+ Vector<Vector<TimeDelta>> timings;
+ timings.ReserveInitialCapacity(min_repeat_count);
const SkIRect bounds = picture_->cullRect().roundOut();
SkBitmap bitmap;
bitmap.allocPixels(
SkImageInfo::MakeN32Premul(bounds.width(), bounds.height()));
bitmap.eraseARGB(0, 0, 0, 0);
- double now = WTF::CurrentTimeTicksInSeconds();
- double stop_time = now + min_duration;
+ TimeTicks now = WTF::CurrentTimeTicks();
+ TimeTicks stop_time = now + min_duration;
for (unsigned step = 0; step < min_repeat_count || now < stop_time; ++step) {
- timings->push_back(Vector<double>());
- Vector<double>* current_timings = &timings->back();
- if (timings->size() > 1)
- current_timings->ReserveCapacity(timings->begin()->size());
+ Vector<TimeDelta> current_timings;
+ if (!timings.IsEmpty())
+ current_timings.ReserveInitialCapacity(timings.front().size());
ProfilingCanvas canvas(bitmap);
if (clip_rect) {
canvas.clipRect(SkRect::MakeXYWH(clip_rect->X(), clip_rect->Y(),
@@ -161,9 +158,10 @@ std::unique_ptr<PictureSnapshot::Timings> PictureSnapshot::Profile(
clip_rect->Height()));
canvas.ResetStepCount();
}
- canvas.SetTimings(current_timings);
+ canvas.SetTimings(&current_timings);
picture_->playback(&canvas);
- now = WTF::CurrentTimeTicksInSeconds();
+ timings.push_back(std::move(current_timings));
+ now = WTF::CurrentTimeTicks();
}
return timings;
}