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

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

Issue 395603002: Simplify flattening to just write enough to call the factory (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: simplify xfermodes, fix SkLayerDrawLooper Created 6 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 #include "SkReadBuffer.h" 9 #include "SkReadBuffer.h"
10 #include "SkWriteBuffer.h" 10 #include "SkWriteBuffer.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 : INHERITED(2, inputs, cropRect) 167 : INHERITED(2, inputs, cropRect)
168 , fXChannelSelector(xChannelSelector) 168 , fXChannelSelector(xChannelSelector)
169 , fYChannelSelector(yChannelSelector) 169 , fYChannelSelector(yChannelSelector)
170 , fScale(scale) 170 , fScale(scale)
171 { 171 {
172 } 172 }
173 173
174 SkDisplacementMapEffect::~SkDisplacementMapEffect() { 174 SkDisplacementMapEffect::~SkDisplacementMapEffect() {
175 } 175 }
176 176
177 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
177 SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer) 178 SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer)
178 : INHERITED(2, buffer) 179 : INHERITED(2, buffer)
179 { 180 {
180 fXChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt(); 181 fXChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt();
181 fYChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt(); 182 fYChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt();
182 fScale = buffer.readScalar(); 183 fScale = buffer.readScalar();
183 buffer.validate(channel_selector_type_is_valid(fXChannelSelector) && 184 buffer.validate(channel_selector_type_is_valid(fXChannelSelector) &&
184 channel_selector_type_is_valid(fYChannelSelector) && 185 channel_selector_type_is_valid(fYChannelSelector) &&
185 SkScalarIsFinite(fScale)); 186 SkScalarIsFinite(fScale));
186 } 187 }
188 #endif
189
190 SkFlattenable* SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) {
191 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2);
192 ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt();
193 ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt();
194 SkScalar scale = buffer.readScalar();
sugoi1 2014/08/19 18:46:17 I think the check for a finite scale should be kep
reed1 2014/08/19 19:58:06 Moved check into factory itself.
195 return Create(xsel, ysel, scale, common.inputAt(0), common.inputAt(1), &comm on.cropRect());
196 }
187 197
188 void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const { 198 void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const {
189 this->INHERITED::flatten(buffer); 199 this->INHERITED::flatten(buffer);
190 buffer.writeInt((int) fXChannelSelector); 200 buffer.writeInt((int) fXChannelSelector);
191 buffer.writeInt((int) fYChannelSelector); 201 buffer.writeInt((int) fYChannelSelector);
192 buffer.writeScalar(fScale); 202 buffer.writeScalar(fScale);
193 } 203 }
194 204
195 bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy, 205 bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy,
196 const SkBitmap& src, 206 const SkBitmap& src,
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 const GrGLCaps&, GrEffectKeyBuilder* b) { 617 const GrGLCaps&, GrEffectKeyBuilder* b) {
608 const GrDisplacementMapEffect& displacementMap = 618 const GrDisplacementMapEffect& displacementMap =
609 drawEffect.castEffect<GrDisplacementMapEffect>(); 619 drawEffect.castEffect<GrDisplacementMapEffect>();
610 620
611 uint32_t xKey = displacementMap.xChannelSelector(); 621 uint32_t xKey = displacementMap.xChannelSelector();
612 uint32_t yKey = displacementMap.yChannelSelector() << kChannelSelectorKeyBit s; 622 uint32_t yKey = displacementMap.yChannelSelector() << kChannelSelectorKeyBit s;
613 623
614 b->add32(xKey | yKey); 624 b->add32(xKey | yKey);
615 } 625 }
616 #endif 626 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698