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

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

Issue 25430005: Fix for potential typedef issue Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 2 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 | « src/effects/SkBlurMaskFilter.cpp ('k') | src/effects/SkLightingImageFilter.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 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 9
10 #include "SkBlitRow.h" 10 #include "SkBlitRow.h"
11 #include "SkColorFilter.h" 11 #include "SkColorFilter.h"
12 #include "SkColorPriv.h" 12 #include "SkColorPriv.h"
13 #include "SkFlattenableBuffers.h" 13 #include "SkFlattenableBuffers.h"
14 #include "SkUtils.h" 14 #include "SkUtils.h"
15 #include "SkString.h" 15 #include "SkString.h"
16 16
17 #define ILLEGAL_XFERMODE_MODE ((SkXfermode::Mode)-1) 17 #define ILLEGAL_XFERMODE_MODE ((SkXfermode::Mode)-1)
18 18
19 // baseclass for filters that store a color and mode 19 // baseclass for filters that store a color and mode
20 class SkModeColorFilter : public SkColorFilter { 20 class SkModeColorFilter : public SkColorFilter {
21 typedef SkColorFilter INHERITED;
22
21 public: 23 public:
22 SkModeColorFilter(SkColor color) { 24 SkModeColorFilter(SkColor color) {
23 fColor = color; 25 fColor = color;
24 fMode = ILLEGAL_XFERMODE_MODE; 26 fMode = ILLEGAL_XFERMODE_MODE;
25 this->updateCache(); 27 this->updateCache();
26 } 28 }
27 29
28 SkModeColorFilter(SkColor color, SkXfermode::Mode mode) { 30 SkModeColorFilter(SkColor color, SkXfermode::Mode mode) {
29 fColor = color; 31 fColor = color;
30 fMode = mode; 32 fMode = mode;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 // cache 108 // cache
107 SkPMColor fPMColor; 109 SkPMColor fPMColor;
108 SkXfermodeProc fProc; 110 SkXfermodeProc fProc;
109 SkXfermodeProc16 fProc16; 111 SkXfermodeProc16 fProc16;
110 112
111 void updateCache() { 113 void updateCache() {
112 fPMColor = SkPreMultiplyColor(fColor); 114 fPMColor = SkPreMultiplyColor(fColor);
113 fProc = SkXfermode::GetProc(fMode); 115 fProc = SkXfermode::GetProc(fMode);
114 fProc16 = SkXfermode::GetProc16(fMode, fColor); 116 fProc16 = SkXfermode::GetProc16(fMode, fColor);
115 } 117 }
116
117 typedef SkColorFilter INHERITED;
118 }; 118 };
119 119
120 class Src_SkModeColorFilter : public SkModeColorFilter { 120 class Src_SkModeColorFilter : public SkModeColorFilter {
121 typedef SkModeColorFilter INHERITED;
122
121 public: 123 public:
122 Src_SkModeColorFilter(SkColor color) : INHERITED(color, SkXfermode::kSrc_Mod e) {} 124 Src_SkModeColorFilter(SkColor color) : INHERITED(color, SkXfermode::kSrc_Mod e) {}
123 125
124 virtual uint32_t getFlags() const SK_OVERRIDE { 126 virtual uint32_t getFlags() const SK_OVERRIDE {
125 if (SkGetPackedA32(this->getPMColor()) == 0xFF) { 127 if (SkGetPackedA32(this->getPMColor()) == 0xFF) {
126 return kAlphaUnchanged_Flag | kHasFilter16_Flag; 128 return kAlphaUnchanged_Flag | kHasFilter16_Flag;
127 } else { 129 } else {
128 return 0; 130 return 0;
129 } 131 }
130 } 132 }
131 133
132 virtual void filterSpan(const SkPMColor shader[], int count, 134 virtual void filterSpan(const SkPMColor shader[], int count,
133 SkPMColor result[]) const SK_OVERRIDE { 135 SkPMColor result[]) const SK_OVERRIDE {
134 sk_memset32(result, this->getPMColor(), count); 136 sk_memset32(result, this->getPMColor(), count);
135 } 137 }
136 138
137 virtual void filterSpan16(const uint16_t shader[], int count, 139 virtual void filterSpan16(const uint16_t shader[], int count,
138 uint16_t result[]) const SK_OVERRIDE { 140 uint16_t result[]) const SK_OVERRIDE {
139 SkASSERT(this->getFlags() & kHasFilter16_Flag); 141 SkASSERT(this->getFlags() & kHasFilter16_Flag);
140 sk_memset16(result, SkPixel32ToPixel16(this->getPMColor()), count); 142 sk_memset16(result, SkPixel32ToPixel16(this->getPMColor()), count);
141 } 143 }
142 144
143 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Src_SkModeColorFilter) 145 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Src_SkModeColorFilter)
144 146
145 protected: 147 protected:
146 Src_SkModeColorFilter(SkFlattenableReadBuffer& buffer) 148 Src_SkModeColorFilter(SkFlattenableReadBuffer& buffer)
147 : INHERITED(buffer) {} 149 : INHERITED(buffer) {}
148
149 private:
150 typedef SkModeColorFilter INHERITED;
151 }; 150 };
152 151
153 class SrcOver_SkModeColorFilter : public SkModeColorFilter { 152 class SrcOver_SkModeColorFilter : public SkModeColorFilter {
153 typedef SkModeColorFilter INHERITED;
154
154 public: 155 public:
155 SrcOver_SkModeColorFilter(SkColor color) 156 SrcOver_SkModeColorFilter(SkColor color)
156 : INHERITED(color, SkXfermode::kSrcOver_Mode) { 157 : INHERITED(color, SkXfermode::kSrcOver_Mode) {
157 fColor32Proc = SkBlitRow::ColorProcFactory(); 158 fColor32Proc = SkBlitRow::ColorProcFactory();
158 } 159 }
159 160
160 virtual uint32_t getFlags() const SK_OVERRIDE { 161 virtual uint32_t getFlags() const SK_OVERRIDE {
161 if (SkGetPackedA32(this->getPMColor()) == 0xFF) { 162 if (SkGetPackedA32(this->getPMColor()) == 0xFF) {
162 return kAlphaUnchanged_Flag | kHasFilter16_Flag; 163 return kAlphaUnchanged_Flag | kHasFilter16_Flag;
163 } else { 164 } else {
(...skipping 16 matching lines...) Expand all
180 181
181 protected: 182 protected:
182 SrcOver_SkModeColorFilter(SkFlattenableReadBuffer& buffer) 183 SrcOver_SkModeColorFilter(SkFlattenableReadBuffer& buffer)
183 : INHERITED(buffer) { 184 : INHERITED(buffer) {
184 fColor32Proc = SkBlitRow::ColorProcFactory(); 185 fColor32Proc = SkBlitRow::ColorProcFactory();
185 } 186 }
186 187
187 private: 188 private:
188 189
189 SkBlitRow::ColorProc fColor32Proc; 190 SkBlitRow::ColorProc fColor32Proc;
190
191 typedef SkModeColorFilter INHERITED;
192 }; 191 };
193 192
194 /////////////////////////////////////////////////////////////////////////////// 193 ///////////////////////////////////////////////////////////////////////////////
195 194
196 SkColorFilter* SkColorFilter::CreateModeFilter(SkColor color, 195 SkColorFilter* SkColorFilter::CreateModeFilter(SkColor color,
197 SkXfermode::Mode mode) { 196 SkXfermode::Mode mode) {
198 unsigned alpha = SkColorGetA(color); 197 unsigned alpha = SkColorGetA(color);
199 198
200 // first collaps some modes if possible 199 // first collaps some modes if possible
201 200
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 /////////////////////////////////////////////////////////////////////////////// 235 ///////////////////////////////////////////////////////////////////////////////
237 236
238 static inline unsigned pin(unsigned value, unsigned max) { 237 static inline unsigned pin(unsigned value, unsigned max) {
239 if (value > max) { 238 if (value > max) {
240 value = max; 239 value = max;
241 } 240 }
242 return value; 241 return value;
243 } 242 }
244 243
245 class SkLightingColorFilter : public SkColorFilter { 244 class SkLightingColorFilter : public SkColorFilter {
245 typedef SkColorFilter INHERITED;
246
246 public: 247 public:
247 SkLightingColorFilter(SkColor mul, SkColor add) : fMul(mul), fAdd(add) {} 248 SkLightingColorFilter(SkColor mul, SkColor add) : fMul(mul), fAdd(add) {}
248 249
249 virtual void filterSpan(const SkPMColor shader[], int count, 250 virtual void filterSpan(const SkPMColor shader[], int count,
250 SkPMColor result[]) const SK_OVERRIDE { 251 SkPMColor result[]) const SK_OVERRIDE {
251 unsigned scaleR = SkAlpha255To256(SkColorGetR(fMul)); 252 unsigned scaleR = SkAlpha255To256(SkColorGetR(fMul));
252 unsigned scaleG = SkAlpha255To256(SkColorGetG(fMul)); 253 unsigned scaleG = SkAlpha255To256(SkColorGetG(fMul));
253 unsigned scaleB = SkAlpha255To256(SkColorGetB(fMul)); 254 unsigned scaleB = SkAlpha255To256(SkColorGetB(fMul));
254 255
255 unsigned addR = SkColorGetR(fAdd); 256 unsigned addR = SkColorGetR(fAdd);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 buffer.writeColor(fMul); 288 buffer.writeColor(fMul);
288 buffer.writeColor(fAdd); 289 buffer.writeColor(fAdd);
289 } 290 }
290 291
291 SkLightingColorFilter(SkFlattenableReadBuffer& buffer) { 292 SkLightingColorFilter(SkFlattenableReadBuffer& buffer) {
292 fMul = buffer.readColor(); 293 fMul = buffer.readColor();
293 fAdd = buffer.readColor(); 294 fAdd = buffer.readColor();
294 } 295 }
295 296
296 SkColor fMul, fAdd; 297 SkColor fMul, fAdd;
297
298 private:
299 typedef SkColorFilter INHERITED;
300 }; 298 };
301 299
302 class SkLightingColorFilter_JustAdd : public SkLightingColorFilter { 300 class SkLightingColorFilter_JustAdd : public SkLightingColorFilter {
301 typedef SkLightingColorFilter INHERITED;
302
303 public: 303 public:
304 SkLightingColorFilter_JustAdd(SkColor mul, SkColor add) 304 SkLightingColorFilter_JustAdd(SkColor mul, SkColor add)
305 : INHERITED(mul, add) {} 305 : INHERITED(mul, add) {}
306 306
307 virtual void filterSpan(const SkPMColor shader[], int count, 307 virtual void filterSpan(const SkPMColor shader[], int count,
308 SkPMColor result[]) const SK_OVERRIDE { 308 SkPMColor result[]) const SK_OVERRIDE {
309 unsigned addR = SkColorGetR(fAdd); 309 unsigned addR = SkColorGetR(fAdd);
310 unsigned addG = SkColorGetG(fAdd); 310 unsigned addG = SkColorGetG(fAdd);
311 unsigned addB = SkColorGetB(fAdd); 311 unsigned addB = SkColorGetB(fAdd);
312 312
(...skipping 16 matching lines...) Expand all
329 str->append("SkLightingColorFilter_JustAdd: add: 0x"); 329 str->append("SkLightingColorFilter_JustAdd: add: 0x");
330 str->appendHex(fAdd); 330 str->appendHex(fAdd);
331 } 331 }
332 #endif 332 #endif
333 333
334 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stAdd) 334 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stAdd)
335 335
336 protected: 336 protected:
337 SkLightingColorFilter_JustAdd(SkFlattenableReadBuffer& buffer) 337 SkLightingColorFilter_JustAdd(SkFlattenableReadBuffer& buffer)
338 : INHERITED(buffer) {} 338 : INHERITED(buffer) {}
339
340 private:
341 typedef SkLightingColorFilter INHERITED;
342 }; 339 };
343 340
344 class SkLightingColorFilter_JustMul : public SkLightingColorFilter { 341 class SkLightingColorFilter_JustMul : public SkLightingColorFilter {
342 typedef SkLightingColorFilter INHERITED;
343
345 public: 344 public:
346 SkLightingColorFilter_JustMul(SkColor mul, SkColor add) 345 SkLightingColorFilter_JustMul(SkColor mul, SkColor add)
347 : INHERITED(mul, add) {} 346 : INHERITED(mul, add) {}
348 347
349 virtual void filterSpan(const SkPMColor shader[], int count, 348 virtual void filterSpan(const SkPMColor shader[], int count,
350 SkPMColor result[]) const SK_OVERRIDE { 349 SkPMColor result[]) const SK_OVERRIDE {
351 unsigned scaleR = SkAlpha255To256(SkColorGetR(fMul)); 350 unsigned scaleR = SkAlpha255To256(SkColorGetR(fMul));
352 unsigned scaleG = SkAlpha255To256(SkColorGetG(fMul)); 351 unsigned scaleG = SkAlpha255To256(SkColorGetG(fMul));
353 unsigned scaleB = SkAlpha255To256(SkColorGetB(fMul)); 352 unsigned scaleB = SkAlpha255To256(SkColorGetB(fMul));
354 353
(...skipping 15 matching lines...) Expand all
370 str->append("SkLightingColorFilter_JustMul: mul: 0x"); 369 str->append("SkLightingColorFilter_JustMul: mul: 0x");
371 str->appendHex(fMul); 370 str->appendHex(fMul);
372 } 371 }
373 #endif 372 #endif
374 373
375 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stMul) 374 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stMul)
376 375
377 protected: 376 protected:
378 SkLightingColorFilter_JustMul(SkFlattenableReadBuffer& buffer) 377 SkLightingColorFilter_JustMul(SkFlattenableReadBuffer& buffer)
379 : INHERITED(buffer) {} 378 : INHERITED(buffer) {}
380
381 private:
382 typedef SkLightingColorFilter INHERITED;
383 }; 379 };
384 380
385 class SkLightingColorFilter_SingleMul : public SkLightingColorFilter { 381 class SkLightingColorFilter_SingleMul : public SkLightingColorFilter {
382 typedef SkLightingColorFilter INHERITED;
383
386 public: 384 public:
387 SkLightingColorFilter_SingleMul(SkColor mul, SkColor add) 385 SkLightingColorFilter_SingleMul(SkColor mul, SkColor add)
388 : INHERITED(mul, add) { 386 : INHERITED(mul, add) {
389 SkASSERT(SkColorGetR(add) == 0); 387 SkASSERT(SkColorGetR(add) == 0);
390 SkASSERT(SkColorGetG(add) == 0); 388 SkASSERT(SkColorGetG(add) == 0);
391 SkASSERT(SkColorGetB(add) == 0); 389 SkASSERT(SkColorGetB(add) == 0);
392 SkASSERT(SkColorGetR(mul) == SkColorGetG(mul)); 390 SkASSERT(SkColorGetR(mul) == SkColorGetG(mul));
393 SkASSERT(SkColorGetR(mul) == SkColorGetB(mul)); 391 SkASSERT(SkColorGetR(mul) == SkColorGetB(mul));
394 } 392 }
395 393
(...skipping 18 matching lines...) Expand all
414 str->append("SkLightingColorFilter_SingleMul: mul: 0x"); 412 str->append("SkLightingColorFilter_SingleMul: mul: 0x");
415 str->appendHex(fMul); 413 str->appendHex(fMul);
416 } 414 }
417 #endif 415 #endif
418 416
419 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Si ngleMul) 417 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Si ngleMul)
420 418
421 protected: 419 protected:
422 SkLightingColorFilter_SingleMul(SkFlattenableReadBuffer& buffer) 420 SkLightingColorFilter_SingleMul(SkFlattenableReadBuffer& buffer)
423 : INHERITED(buffer) {} 421 : INHERITED(buffer) {}
424
425 private:
426 typedef SkLightingColorFilter INHERITED;
427 }; 422 };
428 423
429 class SkLightingColorFilter_NoPin : public SkLightingColorFilter { 424 class SkLightingColorFilter_NoPin : public SkLightingColorFilter {
425 typedef SkLightingColorFilter INHERITED;
426
430 public: 427 public:
431 SkLightingColorFilter_NoPin(SkColor mul, SkColor add) 428 SkLightingColorFilter_NoPin(SkColor mul, SkColor add)
432 : INHERITED(mul, add) {} 429 : INHERITED(mul, add) {}
433 430
434 virtual void filterSpan(const SkPMColor shader[], int count, 431 virtual void filterSpan(const SkPMColor shader[], int count,
435 SkPMColor result[]) const SK_OVERRIDE { 432 SkPMColor result[]) const SK_OVERRIDE {
436 unsigned scaleR = SkAlpha255To256(SkColorGetR(fMul)); 433 unsigned scaleR = SkAlpha255To256(SkColorGetR(fMul));
437 unsigned scaleG = SkAlpha255To256(SkColorGetG(fMul)); 434 unsigned scaleG = SkAlpha255To256(SkColorGetG(fMul));
438 unsigned scaleB = SkAlpha255To256(SkColorGetB(fMul)); 435 unsigned scaleB = SkAlpha255To256(SkColorGetB(fMul));
439 436
(...skipping 22 matching lines...) Expand all
462 str->append(" add: 0x"); 459 str->append(" add: 0x");
463 str->appendHex(fAdd); 460 str->appendHex(fAdd);
464 } 461 }
465 #endif 462 #endif
466 463
467 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_No Pin) 464 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_No Pin)
468 465
469 protected: 466 protected:
470 SkLightingColorFilter_NoPin(SkFlattenableReadBuffer& buffer) 467 SkLightingColorFilter_NoPin(SkFlattenableReadBuffer& buffer)
471 : INHERITED(buffer) {} 468 : INHERITED(buffer) {}
472
473 private:
474 typedef SkLightingColorFilter INHERITED;
475 }; 469 };
476 470
477 /////////////////////////////////////////////////////////////////////////////// 471 ///////////////////////////////////////////////////////////////////////////////
478 472
479 class SkSimpleColorFilter : public SkColorFilter { 473 class SkSimpleColorFilter : public SkColorFilter {
480 public: 474 public:
481 static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { 475 static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
482 return SkNEW(SkSimpleColorFilter); 476 return SkNEW(SkSimpleColorFilter);
483 } 477 }
484 478
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkModeColorFilter) 532 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkModeColorFilter)
539 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(Src_SkModeColorFilter) 533 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(Src_SkModeColorFilter)
540 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SrcOver_SkModeColorFilter) 534 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SrcOver_SkModeColorFilter)
541 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter) 535 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter)
542 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustAdd) 536 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustAdd)
543 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustMul) 537 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustMul)
544 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_SingleMul) 538 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_SingleMul)
545 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_NoPin) 539 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_NoPin)
546 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSimpleColorFilter) 540 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSimpleColorFilter)
547 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 541 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « src/effects/SkBlurMaskFilter.cpp ('k') | src/effects/SkLightingImageFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698