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

Unified Diff: cc/software_renderer.cc

Issue 11274017: Added support for YUV videos to the software compositor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More cosmetics. Created 8 years, 2 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: cc/software_renderer.cc
diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc
index 7781b552fcc7ba495afd90d02c6040b9ba6e8fe3..2f42ed61d3f6dd58a382c52ada143a0c8a5c2ddf 100644
--- a/cc/software_renderer.cc
+++ b/cc/software_renderer.cc
@@ -11,18 +11,20 @@
#include "cc/solid_color_draw_quad.h"
#include "cc/texture_draw_quad.h"
#include "cc/tile_draw_quad.h"
+#include "cc/video_frame_draw_quad.h"
+#include "media/filters/skcanvas_video_renderer.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkColor.h"
#include "third_party/skia/include/core/SkMatrix.h"
#include "third_party/skia/include/core/SkShader.h"
#include "third_party/skia/include/effects/SkLayerRasterizer.h"
#include "ui/gfx/rect_conversions.h"
+#include <public/WebCompositorSoftwareOutputDevice.h>
#include <public/WebImage.h>
#include <public/WebSize.h>
#include <public/WebTransformationMatrix.h>
using WebKit::WebCompositorSoftwareOutputDevice;
-using WebKit::WebImage;
using WebKit::WebSize;
using WebKit::WebTransformationMatrix;
@@ -215,6 +217,9 @@ void SoftwareRenderer::drawQuad(DrawingFrame& frame, const DrawQuad* quad)
case DrawQuad::RenderPass:
drawRenderPassQuad(frame, RenderPassDrawQuad::materialCast(quad));
break;
+ case DrawQuad::VideoFrameContent:
+ drawVideoFrameQuad(frame, VideoFrameDrawQuad::materialCast(quad));
+ break;
default:
drawUnsupportedQuad(frame, quad);
break;
@@ -324,6 +329,14 @@ void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende
}
}
+void SoftwareRenderer::drawVideoFrameQuad(const DrawingFrame& frame, const VideoFrameDrawQuad* quad)
+{
+ if (!m_videoRenderer)
+ m_videoRenderer.reset(new media::SkCanvasVideoRenderer);
+ m_videoRenderer->Paint(quad->frame(), m_skCurrentCanvas, quadVertexRect(),
+ quad->opacity() * 255);
+}
+
void SoftwareRenderer::drawUnsupportedQuad(const DrawingFrame& frame, const DrawQuad* quad)
{
m_skCurrentPaint.setColor(SK_ColorMAGENTA);
« no previous file with comments | « cc/software_renderer.h ('k') | cc/video_frame_draw_quad.h » ('j') | cc/video_frame_draw_quad.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698