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

Side by Side Diff: include/effects/SkKernel33MaskFilter.h

Issue 173633003: Factory methods for heap-allocated SkMaskFilter objects. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Add SkTableMaskFilter::Create(table) and remove deprecated SkEmbossMaskFilter constructor. 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
« no previous file with comments | « include/effects/SkEmbossMaskFilter.h ('k') | include/effects/SkStippleMaskFilter.h » ('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 2008 The Android Open Source Project 2 * Copyright 2008 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 #ifndef SkKernel33MaskFilter_DEFINED 8 #ifndef SkKernel33MaskFilter_DEFINED
9 #define SkKernel33MaskFilter_DEFINED 9 #define SkKernel33MaskFilter_DEFINED
10 10
11 #include "SkMaskFilter.h" 11 #include "SkMaskFilter.h"
12 12
13 class SK_API SkKernel33ProcMaskFilter : public SkMaskFilter { 13 class SK_API SkKernel33ProcMaskFilter : public SkMaskFilter {
14 public: 14 public:
15 SkKernel33ProcMaskFilter(unsigned percent256 = 256)
16 : fPercent256(percent256) {}
17
18 virtual uint8_t computeValue(uint8_t* const* srcRows) const = 0; 15 virtual uint8_t computeValue(uint8_t* const* srcRows) const = 0;
19 16
20 virtual SkMask::Format getFormat() const SK_OVERRIDE; 17 virtual SkMask::Format getFormat() const SK_OVERRIDE;
21 virtual bool filterMask(SkMask*, const SkMask&, const SkMatrix&, 18 virtual bool filterMask(SkMask*, const SkMask&, const SkMatrix&,
22 SkIPoint*) const SK_OVERRIDE; 19 SkIPoint*) const SK_OVERRIDE;
23 20
24 SkDEVCODE(virtual void toString(SkString* str) const SK_OVERRIDE;) 21 SkDEVCODE(virtual void toString(SkString* str) const SK_OVERRIDE;)
25 22
26 protected: 23 protected:
24 SkKernel33ProcMaskFilter(unsigned percent256 = 256)
25 : fPercent256(percent256) {}
27 SkKernel33ProcMaskFilter(SkReadBuffer& rb); 26 SkKernel33ProcMaskFilter(SkReadBuffer& rb);
28 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; 27 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
29 28
30 private: 29 private:
31 int fPercent256; 30 int fPercent256;
32 31
33 typedef SkMaskFilter INHERITED; 32 typedef SkMaskFilter INHERITED;
34 }; 33 };
35 34
36 /////////////////////////////////////////////////////////////////////////////// 35 ///////////////////////////////////////////////////////////////////////////////
37 36
38 class SK_API SkKernel33MaskFilter : public SkKernel33ProcMaskFilter { 37 class SK_API SkKernel33MaskFilter : public SkKernel33ProcMaskFilter {
39 public: 38 public:
40 SkKernel33MaskFilter(const int coeff[3][3], int shift, int percent256 = 256) 39 static SkKernel33MaskFilter* Create(const int coeff[3][3], int shift, int pe rcent256 = 256) {
41 : SkKernel33ProcMaskFilter(percent256) { 40 return SkNEW_ARGS(SkKernel33MaskFilter, (coeff, shift, percent256));
42 memcpy(fKernel, coeff, 9 * sizeof(int));
43 fShift = shift;
44 } 41 }
45 42
46 // override from SkKernel33ProcMaskFilter 43 // override from SkKernel33ProcMaskFilter
47 virtual uint8_t computeValue(uint8_t* const* srcRows) const SK_OVERRIDE; 44 virtual uint8_t computeValue(uint8_t* const* srcRows) const SK_OVERRIDE;
48 45
49 SkDEVCODE(virtual void toString(SkString* str) const SK_OVERRIDE;) 46 SkDEVCODE(virtual void toString(SkString* str) const SK_OVERRIDE;)
50 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkKernel33MaskFilter) 47 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkKernel33MaskFilter)
51 48
49 protected:
50 #ifdef SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS
51 public:
52 #endif
53 SkKernel33MaskFilter(const int coeff[3][3], int shift, int percent256 = 256)
54 : SkKernel33ProcMaskFilter(percent256) {
55 memcpy(fKernel, coeff, 9 * sizeof(int));
56 fShift = shift;
57 }
58
52 private: 59 private:
53 int fKernel[3][3]; 60 int fKernel[3][3];
54 int fShift; 61 int fShift;
55 62
56 SkKernel33MaskFilter(SkReadBuffer& rb); 63 SkKernel33MaskFilter(SkReadBuffer& rb);
57 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; 64 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
58 65
59 typedef SkKernel33ProcMaskFilter INHERITED; 66 typedef SkKernel33ProcMaskFilter INHERITED;
60 }; 67 };
61 68
62 #endif 69 #endif
OLDNEW
« no previous file with comments | « include/effects/SkEmbossMaskFilter.h ('k') | include/effects/SkStippleMaskFilter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698