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

Unified Diff: media/renderers/skcanvas_video_renderer.cc

Issue 2812763002: paint: Introduce PaintImage that wraps SkImage in paint calls. (Closed)
Patch Set: update Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: media/renderers/skcanvas_video_renderer.cc
diff --git a/media/renderers/skcanvas_video_renderer.cc b/media/renderers/skcanvas_video_renderer.cc
index 1e2e9b21ab1a7e25977f25aeb0a8452a56a533ca..ddddb2461279a5227fdb925899c48c7301af6981 100644
--- a/media/renderers/skcanvas_video_renderer.cc
+++ b/media/renderers/skcanvas_video_renderer.cc
@@ -11,6 +11,7 @@
#include "base/memory/ptr_util.h"
#include "cc/paint/paint_canvas.h"
#include "cc/paint/paint_flags.h"
+#include "cc/paint/paint_image.h"
#include "gpu/GLES2/gl2extchromium.h"
#include "gpu/command_buffer/client/gles2_interface.h"
#include "gpu/command_buffer/common/mailbox_holder.h"
@@ -416,12 +417,15 @@ void SkCanvasVideoRenderer::Paint(const scoped_refptr<VideoFrame>& video_frame,
// sw image into the SkPicture. The long term solution is for Skia to provide
// a SkPicture filter that makes a picture safe for multiple CPU raster
// threads. (skbug.com/4321).
- if (canvas->imageInfo().colorType() == kUnknown_SkColorType) {
- sk_sp<SkImage> swImage = last_image_->makeNonTextureImage();
- canvas->drawImage(swImage, 0, 0, &video_flags);
- } else {
- canvas->drawImage(last_image_, 0, 0, &video_flags);
- }
+ sk_sp<const SkImage> image;
+ if (canvas->imageInfo().colorType() == kUnknown_SkColorType)
+ image = last_image_->makeNonTextureImage();
+ else
+ image = last_image_;
+ canvas->drawImage(
+ cc::PaintImage(std::move(image), cc::PaintImage::AnimationType::VIDEO,
+ cc::PaintImage::CompletionState::DONE),
+ 0, 0, &video_flags);
if (need_transform)
canvas->restore();

Powered by Google App Engine
This is Rietveld 408576698