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

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

Issue 503833002: Reimplement deserialization of SkImageFilter's uniqueID. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 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
« no previous file with comments | « src/effects/SkColorFilterImageFilter.cpp ('k') | src/effects/SkDropShadowImageFilter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 157
158 } // end namespace 158 } // end namespace
159 159
160 /////////////////////////////////////////////////////////////////////////////// 160 ///////////////////////////////////////////////////////////////////////////////
161 161
162 SkDisplacementMapEffect* SkDisplacementMapEffect::Create(ChannelSelectorType xCh annelSelector, 162 SkDisplacementMapEffect* SkDisplacementMapEffect::Create(ChannelSelectorType xCh annelSelector,
163 ChannelSelectorType yCh annelSelector, 163 ChannelSelectorType yCh annelSelector,
164 SkScalar scale, 164 SkScalar scale,
165 SkImageFilter* displace ment, 165 SkImageFilter* displace ment,
166 SkImageFilter* color, 166 SkImageFilter* color,
167 const CropRect* cropRec t) { 167 const CropRect* cropRec t, uint32_t uniqueID) {
168 if (!channel_selector_type_is_valid(xChannelSelector) || 168 if (!channel_selector_type_is_valid(xChannelSelector) ||
169 !channel_selector_type_is_valid(yChannelSelector)) { 169 !channel_selector_type_is_valid(yChannelSelector)) {
170 return NULL; 170 return NULL;
171 } 171 }
172 172
173 SkImageFilter* inputs[2] = { displacement, color }; 173 SkImageFilter* inputs[2] = { displacement, color };
174 return SkNEW_ARGS(SkDisplacementMapEffect, (xChannelSelector, yChannelSelect or, scale, 174 return SkNEW_ARGS(SkDisplacementMapEffect, (xChannelSelector, yChannelSelect or, scale,
175 inputs, cropRect)); 175 inputs, cropRect, uniqueID));
176 } 176 }
177 177
178 SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel ector, 178 SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel ector,
179 ChannelSelectorType yChannelSel ector, 179 ChannelSelectorType yChannelSel ector,
180 SkScalar scale, 180 SkScalar scale,
181 SkImageFilter* inputs[2], 181 SkImageFilter* inputs[2],
182 const CropRect* cropRect) 182 const CropRect* cropRect,
183 : INHERITED(2, inputs, cropRect) 183 uint32_t uniqueID)
184 : INHERITED(2, inputs, cropRect, uniqueID)
184 , fXChannelSelector(xChannelSelector) 185 , fXChannelSelector(xChannelSelector)
185 , fYChannelSelector(yChannelSelector) 186 , fYChannelSelector(yChannelSelector)
186 , fScale(scale) 187 , fScale(scale)
187 { 188 {
188 } 189 }
189 190
190 SkDisplacementMapEffect::~SkDisplacementMapEffect() { 191 SkDisplacementMapEffect::~SkDisplacementMapEffect() {
191 } 192 }
192 193
193 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING 194 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
194 SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer) 195 SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer)
195 : INHERITED(2, buffer) 196 : INHERITED(2, buffer)
196 { 197 {
197 fXChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt(); 198 fXChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt();
198 fYChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt(); 199 fYChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re adInt();
199 fScale = buffer.readScalar(); 200 fScale = buffer.readScalar();
200 buffer.validate(channel_selector_type_is_valid(fXChannelSelector) && 201 buffer.validate(channel_selector_type_is_valid(fXChannelSelector) &&
201 channel_selector_type_is_valid(fYChannelSelector) && 202 channel_selector_type_is_valid(fYChannelSelector) &&
202 SkScalarIsFinite(fScale)); 203 SkScalarIsFinite(fScale));
203 } 204 }
204 #endif 205 #endif
205 206
206 SkFlattenable* SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) { 207 SkFlattenable* SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) {
207 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); 208 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2);
208 ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt(); 209 ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt();
209 ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt(); 210 ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt();
210 SkScalar scale = buffer.readScalar(); 211 SkScalar scale = buffer.readScalar();
211 return Create(xsel, ysel, scale, common.getInput(0), common.getInput(1), &co mmon.cropRect()); 212 return Create(xsel, ysel, scale, common.getInput(0), common.getInput(1), &co mmon.cropRect(), common.uniqueID());
212 } 213 }
213 214
214 void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const { 215 void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const {
215 this->INHERITED::flatten(buffer); 216 this->INHERITED::flatten(buffer);
216 buffer.writeInt((int) fXChannelSelector); 217 buffer.writeInt((int) fXChannelSelector);
217 buffer.writeInt((int) fYChannelSelector); 218 buffer.writeInt((int) fYChannelSelector);
218 buffer.writeScalar(fScale); 219 buffer.writeScalar(fScale);
219 } 220 }
220 221
221 bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy, 222 bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy,
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 const GrGLCaps&, GrEffectKeyBuilder* b) { 635 const GrGLCaps&, GrEffectKeyBuilder* b) {
635 const GrDisplacementMapEffect& displacementMap = 636 const GrDisplacementMapEffect& displacementMap =
636 drawEffect.castEffect<GrDisplacementMapEffect>(); 637 drawEffect.castEffect<GrDisplacementMapEffect>();
637 638
638 uint32_t xKey = displacementMap.xChannelSelector(); 639 uint32_t xKey = displacementMap.xChannelSelector();
639 uint32_t yKey = displacementMap.yChannelSelector() << kChannelSelectorKeyBit s; 640 uint32_t yKey = displacementMap.yChannelSelector() << kChannelSelectorKeyBit s;
640 641
641 b->add32(xKey | yKey); 642 b->add32(xKey | yKey);
642 } 643 }
643 #endif 644 #endif
OLDNEW
« no previous file with comments | « src/effects/SkColorFilterImageFilter.cpp ('k') | src/effects/SkDropShadowImageFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698