| Index: cc/output/software_renderer.cc
|
| diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
|
| index 241968efc373a9f8327ac65b94d4a6d23475f3e7..38d65b75cd00ef32cf4d915f3616a1025480a283 100644
|
| --- a/cc/output/software_renderer.cc
|
| +++ b/cc/output/software_renderer.cc
|
| @@ -11,6 +11,7 @@
|
| #include "cc/output/compositor_frame_metadata.h"
|
| #include "cc/output/copy_output_request.h"
|
| #include "cc/output/output_surface.h"
|
| +#include "cc/output/render_surface_filters.h"
|
| #include "cc/output/software_output_device.h"
|
| #include "cc/quads/checkerboard_draw_quad.h"
|
| #include "cc/quads/debug_border_draw_quad.h"
|
| @@ -436,9 +437,14 @@ void SoftwareRenderer::DrawRenderPassQuad(const DrawingFrame* frame,
|
| shader->setLocalMatrix(content_mat);
|
| current_paint_.setShader(shader.get());
|
|
|
| - SkImageFilter* filter = quad->filter.get();
|
| - if (filter)
|
| - current_paint_.setImageFilter(filter);
|
| + // TODO(ajuma): Remove this condition once general CSS filters are working
|
| + // correctly (http://crbug.com/160302), and add corresponding pixel tests.
|
| + if (quad->filters.HasReferenceFilter()) {
|
| + skia::RefPtr<SkImageFilter> filter = RenderSurfaceFilters::BuildImageFilter(
|
| + quad->filters, content_texture->size());
|
| + if (filter)
|
| + current_paint_.setImageFilter(filter.get());
|
| + }
|
|
|
| if (quad->mask_resource_id) {
|
| ResourceProvider::ScopedReadLockSoftware mask_lock(resource_provider_,
|
|
|