summaryrefslogtreecommitdiffstats
path: root/cc/software_renderer.cc
diff options
context:
space:
mode:
authorskaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-30 06:45:48 +0000
committerskaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-30 06:45:48 +0000
commit59cb7b35151638108e0e53684bb24501bda0dc2d (patch)
tree0b90e2a0add6bed171183a3acbf15164c46361c4 /cc/software_renderer.cc
parentf450de71db124fda30a79278039ae2e2de937a4b (diff)
downloadchromium_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.cc7
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)