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

Side by Side Diff: skia/effects/SkKernel33MaskFilter.cpp

Issue 93093: Implement canvas's globalCompositeOperation lighter properly.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « skia/effects/SkEmbossMaskFilter.cpp ('k') | skia/effects/SkLayerRasterizer.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 #include "SkKernel33MaskFilter.h" 1 #include "SkKernel33MaskFilter.h"
2 #include "SkColorPriv.h" 2 #include "SkColorPriv.h"
3 3
4 SkMask::Format SkKernel33ProcMaskFilter::getFormat() 4 SkMask::Format SkKernel33ProcMaskFilter::getFormat()
5 { 5 {
6 return SkMask::kA8_Format; 6 return SkMask::kA8_Format;
7 } 7 }
8 8
9 bool SkKernel33ProcMaskFilter::filterMask(SkMask* dst, const SkMask& src, const SkMatrix&, SkIPoint* margin) 9 bool SkKernel33ProcMaskFilter::filterMask(SkMask* dst, const SkMask& src, const SkMatrix&, SkIPoint* margin)
10 { 10 {
11 // margin??? 11 // margin???
12 dst->fImage = NULL; 12 dst->fImage = NULL;
13 dst->fBounds = src.fBounds; 13 dst->fBounds = src.fBounds;
14 dst->fBounds.inset(-1, -1); 14 dst->fBounds.inset(-1, -1);
15 dst->fFormat = SkMask::kA8_Format; 15 dst->fFormat = SkMask::kA8_Format;
16 16
17 if (NULL == src.fImage) 17 if (NULL == src.fImage)
18 return true; 18 return true;
19 19
20 dst->fRowBytes = dst->fBounds.width(); 20 dst->fRowBytes = dst->fBounds.width();
21 size_t size = dst->computeImageSize(); 21 size_t size = dst->computeImageSize();
22 if (0 == size) {
23 return false; // too big to allocate, abort
24 }
22 dst->fImage = SkMask::AllocImage(size); 25 dst->fImage = SkMask::AllocImage(size);
23 26
24 const int h = src.fBounds.height(); 27 const int h = src.fBounds.height();
25 const int w = src.fBounds.width(); 28 const int w = src.fBounds.width();
26 const int srcRB = src.fRowBytes; 29 const int srcRB = src.fRowBytes;
27 const uint8_t* srcImage = src.fImage; 30 const uint8_t* srcImage = src.fImage;
28 uint8_t* dstImage = dst->fImage; 31 uint8_t* dstImage = dst->fImage;
29 32
30 uint8_t* srcRows[3]; 33 uint8_t* srcRows[3];
31 uint8_t storage[3][3]; 34 uint8_t storage[3][3];
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 return new SkKernel33MaskFilter(rb); 116 return new SkKernel33MaskFilter(rb);
114 } 117 }
115 118
116 SkKernel33MaskFilter::SkKernel33MaskFilter(SkFlattenableReadBuffer& rb) 119 SkKernel33MaskFilter::SkKernel33MaskFilter(SkFlattenableReadBuffer& rb)
117 : SkKernel33ProcMaskFilter(rb) 120 : SkKernel33ProcMaskFilter(rb)
118 { 121 {
119 rb.read(fKernel, 9 * sizeof(int)); 122 rb.read(fKernel, 9 * sizeof(int));
120 fShift = rb.readS32(); 123 fShift = rb.readS32();
121 } 124 }
122 125
OLDNEW
« no previous file with comments | « skia/effects/SkEmbossMaskFilter.cpp ('k') | skia/effects/SkLayerRasterizer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698