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

Unified Diff: cc/output/software_renderer.cc

Issue 21154002: Add support for converting cc::FilterOperations into an SkImageFilter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 3 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
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/quads/draw_quad_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/software_renderer.cc
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
index fa8c178df35f8f425ed1735d844f9a911f4ce771..ace1b30470ab1eeb69acc9dd49a6d463989fb14a 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"
@@ -440,9 +441,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_,
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/quads/draw_quad_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698