| OLD | NEW | 
|---|
| 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 "SkFlattenableBuffers.h" | 9 #include "SkFlattenableBuffers.h" | 
| 10 #include "SkUnPreMultiply.h" | 10 #include "SkUnPreMultiply.h" | 
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 119       case SkDisplacementMapEffect::kA_ChannelSelectorType: | 119       case SkDisplacementMapEffect::kA_ChannelSelectorType: | 
| 120         computeDisplacement<SkDisplacementMapEffect::kA_ChannelSelectorType>( | 120         computeDisplacement<SkDisplacementMapEffect::kA_ChannelSelectorType>( | 
| 121             yChannelSelector, scale, dst, displ, src, bounds); | 121             yChannelSelector, scale, dst, displ, src, bounds); | 
| 122         break; | 122         break; | 
| 123       case SkDisplacementMapEffect::kUnknown_ChannelSelectorType: | 123       case SkDisplacementMapEffect::kUnknown_ChannelSelectorType: | 
| 124       default: | 124       default: | 
| 125         SkDEBUGFAIL("Unknown X channel selector"); | 125         SkDEBUGFAIL("Unknown X channel selector"); | 
| 126     } | 126     } | 
| 127 } | 127 } | 
| 128 | 128 | 
|  | 129 bool ChannelSelectorTypeIsValid(SkDisplacementMapEffect::ChannelSelectorType cha
     nnelSelector) { | 
|  | 130     switch (channelSelector) { | 
|  | 131     case SkDisplacementMapEffect::kUnknown_ChannelSelectorType: | 
|  | 132     case SkDisplacementMapEffect::kR_ChannelSelectorType: | 
|  | 133     case SkDisplacementMapEffect::kG_ChannelSelectorType: | 
|  | 134     case SkDisplacementMapEffect::kB_ChannelSelectorType: | 
|  | 135     case SkDisplacementMapEffect::kA_ChannelSelectorType: | 
|  | 136         return true; | 
|  | 137     default: | 
|  | 138         break; | 
|  | 139     } | 
|  | 140     return false; | 
|  | 141 } | 
|  | 142 | 
| 129 } // end namespace | 143 } // end namespace | 
| 130 | 144 | 
| 131 /////////////////////////////////////////////////////////////////////////////// | 145 /////////////////////////////////////////////////////////////////////////////// | 
| 132 | 146 | 
| 133 SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel
     ector, | 147 SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel
     ector, | 
| 134                                                  ChannelSelectorType yChannelSel
     ector, | 148                                                  ChannelSelectorType yChannelSel
     ector, | 
| 135                                                  SkScalar scale, | 149                                                  SkScalar scale, | 
| 136                                                  SkImageFilter* displacement, | 150                                                  SkImageFilter* displacement, | 
| 137                                                  SkImageFilter* color, | 151                                                  SkImageFilter* color, | 
| 138                                                  const CropRect* cropRect) | 152                                                  const CropRect* cropRect) | 
| 139   : INHERITED(displacement, color, cropRect) | 153   : INHERITED(displacement, color, cropRect) | 
| 140   , fXChannelSelector(xChannelSelector) | 154   , fXChannelSelector(xChannelSelector) | 
| 141   , fYChannelSelector(yChannelSelector) | 155   , fYChannelSelector(yChannelSelector) | 
| 142   , fScale(scale) | 156   , fScale(scale) | 
| 143 { | 157 { | 
| 144 } | 158 } | 
| 145 | 159 | 
| 146 SkDisplacementMapEffect::~SkDisplacementMapEffect() { | 160 SkDisplacementMapEffect::~SkDisplacementMapEffect() { | 
| 147 } | 161 } | 
| 148 | 162 | 
| 149 SkDisplacementMapEffect::SkDisplacementMapEffect(SkFlattenableReadBuffer& buffer
     ) | 163 SkDisplacementMapEffect::SkDisplacementMapEffect(SkFlattenableReadBuffer& buffer
     ) | 
| 150   : INHERITED(buffer) | 164   : INHERITED(buffer) | 
| 151 { | 165 { | 
| 152     fXChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re
     adInt(); | 166     fXChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re
     adInt(); | 
| 153     fYChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re
     adInt(); | 167     fYChannelSelector = (SkDisplacementMapEffect::ChannelSelectorType) buffer.re
     adInt(); | 
| 154     fScale            = buffer.readScalar(); | 168     fScale            = buffer.readScalar(); | 
|  | 169     buffer.validate(ChannelSelectorTypeIsValid(fXChannelSelector) && | 
|  | 170                     ChannelSelectorTypeIsValid(fYChannelSelector) && | 
|  | 171                     SkScalarIsFinite(fScale)); | 
| 155 } | 172 } | 
| 156 | 173 | 
| 157 void SkDisplacementMapEffect::flatten(SkFlattenableWriteBuffer& buffer) const { | 174 void SkDisplacementMapEffect::flatten(SkFlattenableWriteBuffer& buffer) const { | 
| 158     this->INHERITED::flatten(buffer); | 175     this->INHERITED::flatten(buffer); | 
| 159     buffer.writeInt((int) fXChannelSelector); | 176     buffer.writeInt((int) fXChannelSelector); | 
| 160     buffer.writeInt((int) fYChannelSelector); | 177     buffer.writeInt((int) fYChannelSelector); | 
| 161     buffer.writeScalar(fScale); | 178     buffer.writeScalar(fScale); | 
| 162 } | 179 } | 
| 163 | 180 | 
| 164 bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy, | 181 bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy, | 
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 506                                                         const GrGLCaps&) { | 523                                                         const GrGLCaps&) { | 
| 507     const GrDisplacementMapEffect& displacementMap = | 524     const GrDisplacementMapEffect& displacementMap = | 
| 508         drawEffect.castEffect<GrDisplacementMapEffect>(); | 525         drawEffect.castEffect<GrDisplacementMapEffect>(); | 
| 509 | 526 | 
| 510     EffectKey xKey = displacementMap.xChannelSelector(); | 527     EffectKey xKey = displacementMap.xChannelSelector(); | 
| 511     EffectKey yKey = displacementMap.yChannelSelector() << SkDisplacementMapEffe
     ct::kKeyBits; | 528     EffectKey yKey = displacementMap.yChannelSelector() << SkDisplacementMapEffe
     ct::kKeyBits; | 
| 512 | 529 | 
| 513     return xKey | yKey; | 530     return xKey | yKey; | 
| 514 } | 531 } | 
| 515 #endif | 532 #endif | 
| OLD | NEW | 
|---|