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

Side by Side Diff: src/effects/SkDisplacementMapEffect.cpp

Issue 2198263002: Image filters: force near-zero floating point parameters to zero. Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 4 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 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkDisplacementMapEffect.h" 8 #include "SkDisplacementMapEffect.h"
9 9
10 #include "SkBitmap.h" 10 #include "SkBitmap.h"
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 181 }
182 182
183 SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel ector, 183 SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel ector,
184 ChannelSelectorType yChannelSel ector, 184 ChannelSelectorType yChannelSel ector,
185 SkScalar scale, 185 SkScalar scale,
186 sk_sp<SkImageFilter> inputs[2], 186 sk_sp<SkImageFilter> inputs[2],
187 const CropRect* cropRect) 187 const CropRect* cropRect)
188 : INHERITED(inputs, 2, cropRect) 188 : INHERITED(inputs, 2, cropRect)
189 , fXChannelSelector(xChannelSelector) 189 , fXChannelSelector(xChannelSelector)
190 , fYChannelSelector(yChannelSelector) 190 , fYChannelSelector(yChannelSelector)
191 , fScale(scale) { 191 , fScale(SkScalarNormalize(scale)) {
192 } 192 }
193 193
194 SkDisplacementMapEffect::~SkDisplacementMapEffect() { 194 SkDisplacementMapEffect::~SkDisplacementMapEffect() {
195 } 195 }
196 196
197 sk_sp<SkFlattenable> SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) { 197 sk_sp<SkFlattenable> SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) {
198 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); 198 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2);
199 ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt(); 199 ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt();
200 ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt(); 200 ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt();
201 SkScalar scale = buffer.readScalar(); 201 SkScalar scale = buffer.readScalar();
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 void GrGLDisplacementMapEffect::GenKey(const GrProcessor& proc, 618 void GrGLDisplacementMapEffect::GenKey(const GrProcessor& proc,
619 const GrGLSLCaps&, GrProcessorKeyBuilder* b) { 619 const GrGLSLCaps&, GrProcessorKeyBuilder* b) {
620 const GrDisplacementMapEffect& displacementMap = proc.cast<GrDisplacementMap Effect>(); 620 const GrDisplacementMapEffect& displacementMap = proc.cast<GrDisplacementMap Effect>();
621 621
622 uint32_t xKey = displacementMap.xChannelSelector(); 622 uint32_t xKey = displacementMap.xChannelSelector();
623 uint32_t yKey = displacementMap.yChannelSelector() << kChannelSelectorKeyBit s; 623 uint32_t yKey = displacementMap.yChannelSelector() << kChannelSelectorKeyBit s;
624 624
625 b->add32(xKey | yKey); 625 b->add32(xKey | yKey);
626 } 626 }
627 #endif 627 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698