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

Side by Side Diff: cc/output/render_surface_filters.cc

Issue 317663005: Scale the ALPHA_THRESHOLD filter's region based on the device scale factor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use SkMatrix when creating AlphaFilter Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/render_surface_filters.h" 5 #include "cc/output/render_surface_filters.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "cc/output/filter_operation.h" 10 #include "cc/output/filter_operation.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 skia::RefPtr<SkColorFilter> color_filter = 155 skia::RefPtr<SkColorFilter> color_filter =
156 skia::AdoptRef(SkColorMatrixFilter::Create(matrix)); 156 skia::AdoptRef(SkColorMatrixFilter::Create(matrix));
157 return skia::AdoptRef( 157 return skia::AdoptRef(
158 SkColorFilterImageFilter::Create(color_filter.get(), input.get())); 158 SkColorFilterImageFilter::Create(color_filter.get(), input.get()));
159 } 159 }
160 160
161 } // namespace 161 } // namespace
162 162
163 skia::RefPtr<SkImageFilter> RenderSurfaceFilters::BuildImageFilter( 163 skia::RefPtr<SkImageFilter> RenderSurfaceFilters::BuildImageFilter(
164 const FilterOperations& filters, 164 const FilterOperations& filters,
165 const gfx::Vector2dF& scale,
165 const gfx::SizeF& size) { 166 const gfx::SizeF& size) {
166 skia::RefPtr<SkImageFilter> image_filter; 167 skia::RefPtr<SkImageFilter> image_filter;
167 SkScalar matrix[20]; 168 SkScalar matrix[20];
168 for (size_t i = 0; i < filters.size(); ++i) { 169 for (size_t i = 0; i < filters.size(); ++i) {
169 const FilterOperation& op = filters.at(i); 170 const FilterOperation& op = filters.at(i);
170 switch (op.type()) { 171 switch (op.type()) {
171 case FilterOperation::GRAYSCALE: 172 case FilterOperation::GRAYSCALE:
172 GetGrayscaleMatrix(1.f - op.amount(), matrix); 173 GetGrayscaleMatrix(1.f - op.amount(), matrix);
173 image_filter = CreateMatrixImageFilter(matrix, image_filter); 174 image_filter = CreateMatrixImageFilter(matrix, image_filter);
174 break; 175 break;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 image_filter = CreateMatrixImageFilter(matrix, image_filter); 257 image_filter = CreateMatrixImageFilter(matrix, image_filter);
257 } else if (image_filter) { 258 } else if (image_filter) {
258 image_filter = skia::AdoptRef(SkComposeImageFilter::Create( 259 image_filter = skia::AdoptRef(SkComposeImageFilter::Create(
259 op.image_filter().get(), image_filter.get())); 260 op.image_filter().get(), image_filter.get()));
260 } else { 261 } else {
261 image_filter = op.image_filter(); 262 image_filter = op.image_filter();
262 } 263 }
263 break; 264 break;
264 } 265 }
265 case FilterOperation::ALPHA_THRESHOLD: { 266 case FilterOperation::ALPHA_THRESHOLD: {
266 skia::RefPtr<SkImageFilter> alpha_filter = skia::AdoptRef( 267 SkMatrix transform;
267 SkAlphaThresholdFilter::Create( 268 transform.setScale(scale.x(), scale.y());
268 op.region(), op.amount(), op.outer_threshold())); 269 skia::RefPtr<SkImageFilter> alpha_filter =
270 skia::AdoptRef(SkAlphaThresholdFilter::Create(
271 op.region(), transform, op.amount(), op.outer_threshold()));
269 if (image_filter.get()) { 272 if (image_filter.get()) {
270 image_filter = skia::AdoptRef(SkComposeImageFilter::Create( 273 image_filter = skia::AdoptRef(SkComposeImageFilter::Create(
271 alpha_filter.get(), image_filter.get())); 274 alpha_filter.get(), image_filter.get()));
272 } else { 275 } else {
273 image_filter = alpha_filter; 276 image_filter = alpha_filter;
274 } 277 }
275 break; 278 break;
276 } 279 }
277 } 280 }
278 } 281 }
279 return image_filter; 282 return image_filter;
280 } 283 }
281 284
282 } // namespace cc 285 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698