| Index: media/renderers/skcanvas_video_renderer.cc
|
| diff --git a/media/renderers/skcanvas_video_renderer.cc b/media/renderers/skcanvas_video_renderer.cc
|
| index 9376b5dd96d56f931727b29f809432b9bbc95427..79a7266902689f40c2805550cf1cbcc2e49ff870 100644
|
| --- a/media/renderers/skcanvas_video_renderer.cc
|
| +++ b/media/renderers/skcanvas_video_renderer.cc
|
| @@ -13,6 +13,8 @@
|
| #include "media/base/video_frame.h"
|
| #include "media/base/yuv_convert.h"
|
| #include "skia/ext/texture_handle.h"
|
| +#include "skia/ext/cdl_canvas.h"
|
| +#include "skia/ext/cdl_paint.h"
|
| #include "third_party/libyuv/include/libyuv.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| #include "third_party/skia/include/core/SkImage.h"
|
| @@ -331,9 +333,9 @@ SkCanvasVideoRenderer::~SkCanvasVideoRenderer() {
|
| }
|
|
|
| void SkCanvasVideoRenderer::Paint(const scoped_refptr<VideoFrame>& video_frame,
|
| - SkCanvas* canvas,
|
| + CdlCanvas* canvas,
|
| const gfx::RectF& dest_rect,
|
| - SkPaint& paint,
|
| + CdlPaint& paint,
|
| VideoRotation video_rotation,
|
| const Context3D& context_3d) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| @@ -350,7 +352,7 @@ void SkCanvasVideoRenderer::Paint(const scoped_refptr<VideoFrame>& video_frame,
|
| !(media::IsYuvPlanar(video_frame->format()) ||
|
| video_frame->format() == media::PIXEL_FORMAT_Y16 ||
|
| video_frame->HasTextures())) {
|
| - SkPaint blackWithAlphaPaint;
|
| + CdlPaint blackWithAlphaPaint;
|
| blackWithAlphaPaint.setAlpha(paint.getAlpha());
|
| canvas->drawRect(dest, blackWithAlphaPaint);
|
| canvas->flush();
|
| @@ -361,7 +363,7 @@ void SkCanvasVideoRenderer::Paint(const scoped_refptr<VideoFrame>& video_frame,
|
| if (!UpdateLastImage(video_frame, context_3d))
|
| return;
|
|
|
| - SkPaint videoPaint;
|
| + CdlPaint videoPaint;
|
| videoPaint.setAlpha(paint.getAlpha());
|
| videoPaint.setBlendMode(paint.getBlendMode());
|
| videoPaint.setFilterQuality(paint.getFilterQuality());
|
| @@ -412,8 +414,9 @@ 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) {
|
| + if (GetSkCanvas(canvas)->imageInfo().colorType() == kUnknown_SkColorType) {
|
| sk_sp<SkImage> swImage = last_image_->makeNonTextureImage();
|
| +
|
| canvas->drawImage(swImage, 0, 0, &videoPaint);
|
| } else {
|
| canvas->drawImage(last_image_.get(), 0, 0, &videoPaint);
|
| @@ -432,9 +435,9 @@ void SkCanvasVideoRenderer::Paint(const scoped_refptr<VideoFrame>& video_frame,
|
| }
|
|
|
| void SkCanvasVideoRenderer::Copy(const scoped_refptr<VideoFrame>& video_frame,
|
| - SkCanvas* canvas,
|
| + CdlCanvas* canvas,
|
| const Context3D& context_3d) {
|
| - SkPaint paint;
|
| + CdlPaint paint;
|
| paint.setBlendMode(SkBlendMode::kSrc);
|
| paint.setFilterQuality(kLow_SkFilterQuality);
|
| Paint(video_frame, canvas, gfx::RectF(video_frame->visible_rect()), paint,
|
|
|