| Index: cc/output/software_renderer.cc
|
| diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
|
| index 7735e3c8c10f77a9613667bc7013850edad6b533..8d3bd1870c3efd83988852c220de1d93c5c70311 100644
|
| --- a/cc/output/software_renderer.cc
|
| +++ b/cc/output/software_renderer.cc
|
| @@ -19,6 +19,7 @@
|
| #include "cc/quads/solid_color_draw_quad.h"
|
| #include "cc/quads/texture_draw_quad.h"
|
| #include "cc/quads/tile_draw_quad.h"
|
| +#include "skia/ext/alpha_proxy_canvas.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| #include "third_party/skia/include/core/SkColor.h"
|
| #include "third_party/skia/include/core/SkDevice.h"
|
| @@ -297,8 +298,8 @@ void SoftwareRenderer::DrawDebugBorderQuad(const DrawingFrame* frame,
|
| current_paint_.setAlpha(quad->opacity() * SkColorGetA(quad->color));
|
| current_paint_.setStyle(SkPaint::kStroke_Style);
|
| current_paint_.setStrokeWidth(quad->width);
|
| - current_canvas_->drawPoints(SkCanvas::kPolygon_PointMode,
|
| - 4, transformed_vertices, current_paint_);
|
| + current_canvas_->drawPoints(
|
| + SkCanvas::kPolygon_PointMode, 4, transformed_vertices, current_paint_);
|
| }
|
|
|
| void SoftwareRenderer::DrawPictureQuad(const DrawingFrame* frame,
|
| @@ -310,27 +311,10 @@ void SoftwareRenderer::DrawPictureQuad(const DrawingFrame* frame,
|
| SkMatrix::kFill_ScaleToFit);
|
| current_canvas_->concat(content_matrix);
|
|
|
| - if (quad->ShouldDrawWithBlending()) {
|
| - TRACE_EVENT0("cc", "SoftwareRenderer::DrawPictureQuad with blending");
|
| - SkBitmap temp_bitmap;
|
| - temp_bitmap.setConfig(SkBitmap::kARGB_8888_Config,
|
| - quad->texture_size.width(),
|
| - quad->texture_size.height());
|
| - temp_bitmap.allocPixels();
|
| - SkDevice temp_device(temp_bitmap);
|
| - SkCanvas temp_canvas(&temp_device);
|
| -
|
| - quad->picture_pile->RasterToBitmap(
|
| - &temp_canvas, quad->content_rect, quad->contents_scale, NULL);
|
| -
|
| - current_paint_.setFilterBitmap(true);
|
| - current_canvas_->drawBitmap(temp_bitmap, 0, 0, ¤t_paint_);
|
| - } else {
|
| - TRACE_EVENT0("cc",
|
| - "SoftwareRenderer::DrawPictureQuad direct from PicturePile");
|
| - quad->picture_pile->RasterDirect(
|
| - current_canvas_, quad->content_rect, quad->contents_scale, NULL);
|
| - }
|
| + TRACE_EVENT0("cc", "SoftwareRenderer::DrawPictureQuad");
|
| + skia::AlphaProxyCanvas proxy_canvas(current_canvas_, quad->opacity(), false);
|
| + quad->picture_pile->RasterDirect(
|
| + &proxy_canvas, quad->content_rect, quad->contents_scale, NULL);
|
| }
|
|
|
| void SoftwareRenderer::DrawSolidColorQuad(const DrawingFrame* frame,
|
|
|