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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp

Issue 2303703002: Revamp filter primitive region calculations for Filter Effects (Closed)
Patch Set: Baselines again; Manual for mac10.11-retina Created 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 for (size_t i = 0; i < operations.size(); ++i) { 107 for (size_t i = 0; i < operations.size(); ++i) {
108 const FilterOperation& op = *operations.at(i); 108 const FilterOperation& op = *operations.at(i);
109 switch (op.type()) { 109 switch (op.type()) {
110 case FilterOperation::REFERENCE: { 110 case FilterOperation::REFERENCE: {
111 Filter* referenceFilter = toReferenceFilterOperation(op).getFilter() ; 111 Filter* referenceFilter = toReferenceFilterOperation(op).getFilter() ;
112 if (referenceFilter && referenceFilter->lastEffect()) { 112 if (referenceFilter && referenceFilter->lastEffect()) {
113 populateSourceGraphicImageFilters(referenceFilter->getSourceGrap hic(), nullptr, currentColorSpace); 113 populateSourceGraphicImageFilters(referenceFilter->getSourceGrap hic(), nullptr, currentColorSpace);
114 114
115 FilterEffect* filterEffect = referenceFilter->lastEffect(); 115 FilterEffect* filterEffect = referenceFilter->lastEffect();
116 currentColorSpace = filterEffect->operatingColorSpace(); 116 currentColorSpace = filterEffect->operatingColorSpace();
117 filterEffect->determineFilterPrimitiveSubregion(MapRectForward); 117 filterEffect->determineMaximumEffectRect(MapRectForward);
118 filters->appendReferenceFilter(SkiaImageFilterBuilder::build(fil terEffect, currentColorSpace)); 118 filters->appendReferenceFilter(SkiaImageFilterBuilder::build(fil terEffect, currentColorSpace));
119 } 119 }
120 break; 120 break;
121 } 121 }
122 case FilterOperation::GRAYSCALE: 122 case FilterOperation::GRAYSCALE:
123 case FilterOperation::SEPIA: 123 case FilterOperation::SEPIA:
124 case FilterOperation::SATURATE: 124 case FilterOperation::SATURATE:
125 case FilterOperation::HUE_ROTATE: { 125 case FilterOperation::HUE_ROTATE: {
126 float amount = toBasicColorMatrixFilterOperation(op).amount(); 126 float amount = toBasicColorMatrixFilterOperation(op).amount();
127 switch (op.type()) { 127 switch (op.type()) {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 } else { 208 } else {
209 maskedInput = input; 209 maskedInput = input;
210 } 210 }
211 sk_sp<SkImageFilter> flipImageFilter = SkImageFilter::MakeMatrixFilter( 211 sk_sp<SkImageFilter> flipImageFilter = SkImageFilter::MakeMatrixFilter(
212 reflection.reflectionMatrix(), kLow_SkFilterQuality, std::move(maskedInp ut)); 212 reflection.reflectionMatrix(), kLow_SkFilterQuality, std::move(maskedInp ut));
213 return SkXfermodeImageFilter::Make(nullptr, std::move(flipImageFilter), std: :move(input), nullptr); 213 return SkXfermodeImageFilter::Make(nullptr, std::move(flipImageFilter), std: :move(input), nullptr);
214 } 214 }
215 215
216 } // namespace SkiaImageFilterBuilder 216 } // namespace SkiaImageFilterBuilder
217 } // namespace blink 217 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698