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

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

Issue 134163010: Refactor read and write buffers. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: original write flags were fine Created 6 years, 10 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 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkBlurMaskFilter.h" 9 #include "SkBlurMaskFilter.h"
10 #include "SkBlurMask.h" 10 #include "SkBlurMask.h"
11 #include "SkGpuBlurUtils.h" 11 #include "SkGpuBlurUtils.h"
12 #include "SkFlattenableBuffers.h" 12 #include "SkReadBuffer.h"
13 #include "SkWriteBuffer.h"
13 #include "SkMaskFilter.h" 14 #include "SkMaskFilter.h"
14 #include "SkRRect.h" 15 #include "SkRRect.h"
15 #include "SkRTConf.h" 16 #include "SkRTConf.h"
16 #include "SkStringUtils.h" 17 #include "SkStringUtils.h"
17 #include "SkStrokeRec.h" 18 #include "SkStrokeRec.h"
18 19
19 #if SK_SUPPORT_GPU 20 #if SK_SUPPORT_GPU
20 #include "GrContext.h" 21 #include "GrContext.h"
21 #include "GrTexture.h" 22 #include "GrTexture.h"
22 #include "effects/GrSimpleTextureEffect.h" 23 #include "effects/GrSimpleTextureEffect.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 private: 65 private:
65 // To avoid unseemly allocation requests (esp. for finite platforms like 66 // To avoid unseemly allocation requests (esp. for finite platforms like
66 // handset) we limit the radius so something manageable. (as opposed to 67 // handset) we limit the radius so something manageable. (as opposed to
67 // a request like 10,000) 68 // a request like 10,000)
68 static const SkScalar kMAX_BLUR_SIGMA; 69 static const SkScalar kMAX_BLUR_SIGMA;
69 70
70 SkScalar fSigma; 71 SkScalar fSigma;
71 SkBlurMaskFilter::BlurStyle fBlurStyle; 72 SkBlurMaskFilter::BlurStyle fBlurStyle;
72 uint32_t fBlurFlags; 73 uint32_t fBlurFlags;
73 74
74 SkBlurMaskFilterImpl(SkFlattenableReadBuffer&); 75 SkBlurMaskFilterImpl(SkReadBuffer&);
75 virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; 76 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
76 77
77 SkScalar computeXformedSigma(const SkMatrix& ctm) const { 78 SkScalar computeXformedSigma(const SkMatrix& ctm) const {
78 bool ignoreTransform = SkToBool(fBlurFlags & SkBlurMaskFilter::kIgnoreTr ansform_BlurFlag); 79 bool ignoreTransform = SkToBool(fBlurFlags & SkBlurMaskFilter::kIgnoreTr ansform_BlurFlag);
79 80
80 SkScalar xformedSigma = ignoreTransform ? fSigma : ctm.mapRadius(fSigma) ; 81 SkScalar xformedSigma = ignoreTransform ? fSigma : ctm.mapRadius(fSigma) ;
81 return SkMinScalar(xformedSigma, kMAX_BLUR_SIGMA); 82 return SkMinScalar(xformedSigma, kMAX_BLUR_SIGMA);
82 } 83 }
83 84
84 typedef SkMaskFilter INHERITED; 85 typedef SkMaskFilter INHERITED;
85 }; 86 };
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 } 476 }
476 477
477 void SkBlurMaskFilterImpl::computeFastBounds(const SkRect& src, 478 void SkBlurMaskFilterImpl::computeFastBounds(const SkRect& src,
478 SkRect* dst) const { 479 SkRect* dst) const {
479 SkScalar pad = 3.0f * fSigma; 480 SkScalar pad = 3.0f * fSigma;
480 481
481 dst->set(src.fLeft - pad, src.fTop - pad, 482 dst->set(src.fLeft - pad, src.fTop - pad,
482 src.fRight + pad, src.fBottom + pad); 483 src.fRight + pad, src.fBottom + pad);
483 } 484 }
484 485
485 SkBlurMaskFilterImpl::SkBlurMaskFilterImpl(SkFlattenableReadBuffer& buffer) 486 SkBlurMaskFilterImpl::SkBlurMaskFilterImpl(SkReadBuffer& buffer)
486 : SkMaskFilter(buffer) { 487 : SkMaskFilter(buffer) {
487 fSigma = buffer.readScalar(); 488 fSigma = buffer.readScalar();
488 fBlurStyle = (SkBlurMaskFilter::BlurStyle)buffer.readInt(); 489 fBlurStyle = (SkBlurMaskFilter::BlurStyle)buffer.readInt();
489 fBlurFlags = buffer.readUInt() & SkBlurMaskFilter::kAll_BlurFlag; 490 fBlurFlags = buffer.readUInt() & SkBlurMaskFilter::kAll_BlurFlag;
490 SkASSERT(fSigma >= 0); 491 SkASSERT(fSigma >= 0);
491 SkASSERT((unsigned)fBlurStyle < SkBlurMaskFilter::kBlurStyleCount); 492 SkASSERT((unsigned)fBlurStyle < SkBlurMaskFilter::kBlurStyleCount);
492 } 493 }
493 494
494 void SkBlurMaskFilterImpl::flatten(SkFlattenableWriteBuffer& buffer) const { 495 void SkBlurMaskFilterImpl::flatten(SkWriteBuffer& buffer) const {
495 this->INHERITED::flatten(buffer); 496 this->INHERITED::flatten(buffer);
496 buffer.writeScalar(fSigma); 497 buffer.writeScalar(fSigma);
497 buffer.writeInt(fBlurStyle); 498 buffer.writeInt(fBlurStyle);
498 buffer.writeUInt(fBlurFlags); 499 buffer.writeUInt(fBlurFlags);
499 } 500 }
500 501
501 #if SK_SUPPORT_GPU 502 #if SK_SUPPORT_GPU
502 503
503 bool SkBlurMaskFilterImpl::canFilterMaskGPU(const SkRect& srcBounds, 504 bool SkBlurMaskFilterImpl::canFilterMaskGPU(const SkRect& srcBounds,
504 const SkIRect& clipBounds, 505 const SkIRect& clipBounds,
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 } else { 615 } else {
615 str->append("None"); 616 str->append("None");
616 } 617 }
617 str->append("))"); 618 str->append("))");
618 } 619 }
619 #endif 620 #endif
620 621
621 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkBlurMaskFilter) 622 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkBlurMaskFilter)
622 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurMaskFilterImpl) 623 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurMaskFilterImpl)
623 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 624 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698