diff options
author | skaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-30 06:45:48 +0000 |
---|---|---|
committer | skaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-30 06:45:48 +0000 |
commit | 59cb7b35151638108e0e53684bb24501bda0dc2d (patch) | |
tree | 0b90e2a0add6bed171183a3acbf15164c46361c4 /cc/software_renderer.cc | |
parent | f450de71db124fda30a79278039ae2e2de937a4b (diff) | |
download | chromium_src-59cb7b35151638108e0e53684bb24501bda0dc2d.zip chromium_src-59cb7b35151638108e0e53684bb24501bda0dc2d.tar.gz chromium_src-59cb7b35151638108e0e53684bb24501bda0dc2d.tar.bz2 |
Added support for YUV videos to the software compositor.
Those Layout Tests pass with this patch (minus filtering differences):
platform/chromium/virtual/softwarecompositing/geometry/video-fixed-scrolling.html
platform/chromium/virtual/softwarecompositing/geometry/video-opacity-overlay.html
platform/chromium/virtual/softwarecompositing/layers-inside-overflow-scroll.html
platform/chromium/virtual/softwarecompositing/overflow/scroll-ancestor-update.html
platform/chromium/virtual/softwarecompositing/self-painting-layers.html
platform/chromium/virtual/softwarecompositing/reflections/load-video-in-reflection.html
platform/chromium/virtual/softwarecompositing/video-page-visibility.html
platform/chromium/virtual/softwarecompositing/visibility/visibility-simple-video-layer.html
BUG=150016
Review URL: https://chromiumcodereview.appspot.com/11274017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164871 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/software_renderer.cc')
-rw-r--r-- | cc/software_renderer.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc index 52256cc..312d873 100644 --- a/cc/software_renderer.cc +++ b/cc/software_renderer.cc @@ -17,12 +17,12 @@ #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; @@ -255,11 +255,12 @@ void SoftwareRenderer::drawTextureQuad(const DrawingFrame& frame, const TextureD // FIXME: Add support for non-premultiplied alpha. ResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvider, quad->resourceId()); - gfx::RectF uvRect = gfx::ScaleRect(quad->uvRect(), quad->quadRect().width(), quad->quadRect().height()); + const SkBitmap* bitmap = quadResourceLock.skBitmap(); + gfx::RectF uvRect = gfx::ScaleRect(quad->uvRect(), bitmap->width(), bitmap->height()); SkIRect skUvRect = toSkIRect(gfx::ToEnclosingRect(uvRect)); if (quad->flipped()) m_skCurrentCanvas->scale(1, -1); - m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &skUvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint); + m_skCurrentCanvas->drawBitmapRect(*bitmap, &skUvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint); } void SoftwareRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQuad* quad) |