| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2012 The Android Open Source Project | 2  * Copyright 2012 The Android Open Source Project | 
| 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 "SkBitmap.h" | 8 #include "SkBitmap.h" | 
| 9 #include "SkMagnifierImageFilter.h" | 9 #include "SkMagnifierImageFilter.h" | 
| 10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" | 
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 225 } | 225 } | 
| 226 | 226 | 
| 227 void GrMagnifierEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const
      { | 227 void GrMagnifierEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const
      { | 
| 228     this->updateInvariantOutputForModulation(inout); | 228     this->updateInvariantOutputForModulation(inout); | 
| 229 } | 229 } | 
| 230 | 230 | 
| 231 #endif | 231 #endif | 
| 232 | 232 | 
| 233 //////////////////////////////////////////////////////////////////////////////// | 233 //////////////////////////////////////////////////////////////////////////////// | 
| 234 | 234 | 
| 235 SkImageFilter* SkMagnifierImageFilter::Create(const SkRect& srcRect, SkScalar in
     set, | 235 sk_sp<SkImageFilter> SkMagnifierImageFilter::Make(const SkRect& srcRect, SkScala
     r inset, | 
| 236                                               SkImageFilter* input) { | 236                                                   sk_sp<SkImageFilter> input) { | 
| 237 | 237 | 
| 238     if (!SkScalarIsFinite(inset) || !SkIsValidRect(srcRect)) { | 238     if (!SkScalarIsFinite(inset) || !SkIsValidRect(srcRect)) { | 
| 239         return nullptr; | 239         return nullptr; | 
| 240     } | 240     } | 
| 241     // Negative numbers in src rect are not supported | 241     // Negative numbers in src rect are not supported | 
| 242     if (srcRect.fLeft < 0 || srcRect.fTop < 0) { | 242     if (srcRect.fLeft < 0 || srcRect.fTop < 0) { | 
| 243         return nullptr; | 243         return nullptr; | 
| 244     } | 244     } | 
| 245     return new SkMagnifierImageFilter(srcRect, inset, input); | 245     return sk_sp<SkImageFilter>(new SkMagnifierImageFilter(srcRect, inset, std::
     move(input))); | 
| 246 } | 246 } | 
| 247 | 247 | 
| 248 | 248 | 
| 249 SkMagnifierImageFilter::SkMagnifierImageFilter(const SkRect& srcRect, SkScalar i
     nset, | 249 SkMagnifierImageFilter::SkMagnifierImageFilter(const SkRect& srcRect, SkScalar i
     nset, | 
| 250                                                SkImageFilter* input) | 250                                                sk_sp<SkImageFilter> input) | 
| 251     : INHERITED(1, &input), fSrcRect(srcRect), fInset(inset) { | 251     : INHERITED(&input, 1, nullptr) | 
|  | 252     , fSrcRect(srcRect) | 
|  | 253     , fInset(inset) { | 
| 252     SkASSERT(srcRect.x() >= 0 && srcRect.y() >= 0 && inset >= 0); | 254     SkASSERT(srcRect.x() >= 0 && srcRect.y() >= 0 && inset >= 0); | 
| 253 } | 255 } | 
| 254 | 256 | 
| 255 #if SK_SUPPORT_GPU | 257 #if SK_SUPPORT_GPU | 
| 256 bool SkMagnifierImageFilter::asFragmentProcessor(GrFragmentProcessor** fp, | 258 bool SkMagnifierImageFilter::asFragmentProcessor(GrFragmentProcessor** fp, | 
| 257                                                  GrTexture* texture, const SkMat
     rix&, | 259                                                  GrTexture* texture, const SkMat
     rix&, | 
| 258                                                  const SkIRect&bounds) const { | 260                                                  const SkIRect&bounds) const { | 
| 259     if (fp) { | 261     if (fp) { | 
| 260         SkScalar yOffset = texture->origin() == kTopLeft_GrSurfaceOrigin ? fSrcR
     ect.y() : | 262         SkScalar yOffset = texture->origin() == kTopLeft_GrSurfaceOrigin ? fSrcR
     ect.y() : | 
| 261            texture->height() - fSrcRect.height() * texture->height() / bounds.he
     ight() | 263            texture->height() - fSrcRect.height() * texture->height() / bounds.he
     ight() | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 278                                         bounds.height() * invInset); | 280                                         bounds.height() * invInset); | 
| 279     } | 281     } | 
| 280     return true; | 282     return true; | 
| 281 } | 283 } | 
| 282 #endif | 284 #endif | 
| 283 | 285 | 
| 284 sk_sp<SkFlattenable> SkMagnifierImageFilter::CreateProc(SkReadBuffer& buffer) { | 286 sk_sp<SkFlattenable> SkMagnifierImageFilter::CreateProc(SkReadBuffer& buffer) { | 
| 285     SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); | 287     SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); | 
| 286     SkRect src; | 288     SkRect src; | 
| 287     buffer.readRect(&src); | 289     buffer.readRect(&src); | 
| 288     return sk_sp<SkFlattenable>(Create(src, buffer.readScalar(), common.getInput
     (0).get())); | 290     return Make(src, buffer.readScalar(), common.getInput(0)); | 
| 289 } | 291 } | 
| 290 | 292 | 
| 291 void SkMagnifierImageFilter::flatten(SkWriteBuffer& buffer) const { | 293 void SkMagnifierImageFilter::flatten(SkWriteBuffer& buffer) const { | 
| 292     this->INHERITED::flatten(buffer); | 294     this->INHERITED::flatten(buffer); | 
| 293     buffer.writeRect(fSrcRect); | 295     buffer.writeRect(fSrcRect); | 
| 294     buffer.writeScalar(fInset); | 296     buffer.writeScalar(fInset); | 
| 295 } | 297 } | 
| 296 | 298 | 
| 297 bool SkMagnifierImageFilter::onFilterImageDeprecated(Proxy* proxy, const SkBitma
     p& src, | 299 bool SkMagnifierImageFilter::onFilterImageDeprecated(Proxy* proxy, const SkBitma
     p& src, | 
| 298                                                      const Context&, SkBitmap* d
     st, | 300                                                      const Context&, SkBitmap* d
     st, | 
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 365 | 367 | 
| 366 #ifndef SK_IGNORE_TO_STRING | 368 #ifndef SK_IGNORE_TO_STRING | 
| 367 void SkMagnifierImageFilter::toString(SkString* str) const { | 369 void SkMagnifierImageFilter::toString(SkString* str) const { | 
| 368     str->appendf("SkMagnifierImageFilter: ("); | 370     str->appendf("SkMagnifierImageFilter: ("); | 
| 369     str->appendf("src: (%f,%f,%f,%f) ", | 371     str->appendf("src: (%f,%f,%f,%f) ", | 
| 370                  fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBotto
     m); | 372                  fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBotto
     m); | 
| 371     str->appendf("inset: %f", fInset); | 373     str->appendf("inset: %f", fInset); | 
| 372     str->append(")"); | 374     str->append(")"); | 
| 373 } | 375 } | 
| 374 #endif | 376 #endif | 
| OLD | NEW | 
|---|