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

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

Issue 15697012: Add printing of SkColorFilter-derived classes to debugger (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Remove unnecessary macros Created 7 years, 7 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/core/SkPaint.cpp ('k') | src/effects/SkColorMatrixFilter.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 16
16 #define ILLEGAL_XFERMODE_MODE ((SkXfermode::Mode)-1) 17 #define ILLEGAL_XFERMODE_MODE ((SkXfermode::Mode)-1)
17 18
18 // baseclass for filters that store a color and mode 19 // baseclass for filters that store a color and mode
19 class SkModeColorFilter : public SkColorFilter { 20 class SkModeColorFilter : public SkColorFilter {
20 public: 21 public:
21 SkModeColorFilter(SkColor color) { 22 SkModeColorFilter(SkColor color) {
22 fColor = color; 23 fColor = color;
23 fMode = ILLEGAL_XFERMODE_MODE; 24 fMode = ILLEGAL_XFERMODE_MODE;
24 this->updateCache(); 25 this->updateCache();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 SkASSERT(this->getFlags() & kHasFilter16_Flag); 69 SkASSERT(this->getFlags() & kHasFilter16_Flag);
69 70
70 SkPMColor color = fPMColor; 71 SkPMColor color = fPMColor;
71 SkXfermodeProc16 proc16 = fProc16; 72 SkXfermodeProc16 proc16 = fProc16;
72 73
73 for (int i = 0; i < count; i++) { 74 for (int i = 0; i < count; i++) {
74 result[i] = proc16(color, shader[i]); 75 result[i] = proc16(color, shader[i]);
75 } 76 }
76 } 77 }
77 78
79 #ifdef SK_DEVELOPER
80 virtual void toString(SkString* str) const SK_OVERRIDE {
81 str->append("SkModeColorFilter: color: 0x");
82 str->appendHex(fColor);
83 str->append(" mode: ");
84 str->append(SkXfermode::ModeName(fMode));
85 }
86 #endif
87
78 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter) 88 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter)
79 89
80 protected: 90 protected:
81 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE { 91 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE {
82 this->INHERITED::flatten(buffer); 92 this->INHERITED::flatten(buffer);
83 buffer.writeColor(fColor); 93 buffer.writeColor(fColor);
84 buffer.writeUInt(fMode); 94 buffer.writeUInt(fMode);
85 } 95 }
86 96
87 SkModeColorFilter(SkFlattenableReadBuffer& buffer) { 97 SkModeColorFilter(SkFlattenableReadBuffer& buffer) {
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 unsigned scaleA = SkAlpha255To256(a); 263 unsigned scaleA = SkAlpha255To256(a);
254 unsigned r = pin(SkAlphaMul(SkGetPackedR32(c), scaleR) + SkAlpha Mul(addR, scaleA), a); 264 unsigned r = pin(SkAlphaMul(SkGetPackedR32(c), scaleR) + SkAlpha Mul(addR, scaleA), a);
255 unsigned g = pin(SkAlphaMul(SkGetPackedG32(c), scaleG) + SkAlpha Mul(addG, scaleA), a); 265 unsigned g = pin(SkAlphaMul(SkGetPackedG32(c), scaleG) + SkAlpha Mul(addG, scaleA), a);
256 unsigned b = pin(SkAlphaMul(SkGetPackedB32(c), scaleB) + SkAlpha Mul(addB, scaleA), a); 266 unsigned b = pin(SkAlphaMul(SkGetPackedB32(c), scaleB) + SkAlpha Mul(addB, scaleA), a);
257 c = SkPackARGB32(a, r, g, b); 267 c = SkPackARGB32(a, r, g, b);
258 } 268 }
259 result[i] = c; 269 result[i] = c;
260 } 270 }
261 } 271 }
262 272
273 #ifdef SK_DEVELOPER
274 virtual void toString(SkString* str) const SK_OVERRIDE {
275 str->append("SkLightingColorFilter: mul: 0x");
276 str->appendHex(fMul);
277 str->append(" add: 0x");
278 str->appendHex(fAdd);
279 }
280 #endif
281
263 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter) 282 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter)
264 283
265 protected: 284 protected:
266 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE { 285 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE {
267 this->INHERITED::flatten(buffer); 286 this->INHERITED::flatten(buffer);
268 buffer.writeColor(fMul); 287 buffer.writeColor(fMul);
269 buffer.writeColor(fAdd); 288 buffer.writeColor(fAdd);
270 } 289 }
271 290
272 SkLightingColorFilter(SkFlattenableReadBuffer& buffer) { 291 SkLightingColorFilter(SkFlattenableReadBuffer& buffer) {
(...skipping 25 matching lines...) Expand all
298 unsigned scaleA = SkAlpha255To256(a); 317 unsigned scaleA = SkAlpha255To256(a);
299 unsigned r = pin(SkGetPackedR32(c) + SkAlphaMul(addR, scaleA), a ); 318 unsigned r = pin(SkGetPackedR32(c) + SkAlphaMul(addR, scaleA), a );
300 unsigned g = pin(SkGetPackedG32(c) + SkAlphaMul(addG, scaleA), a ); 319 unsigned g = pin(SkGetPackedG32(c) + SkAlphaMul(addG, scaleA), a );
301 unsigned b = pin(SkGetPackedB32(c) + SkAlphaMul(addB, scaleA), a ); 320 unsigned b = pin(SkGetPackedB32(c) + SkAlphaMul(addB, scaleA), a );
302 c = SkPackARGB32(a, r, g, b); 321 c = SkPackARGB32(a, r, g, b);
303 } 322 }
304 result[i] = c; 323 result[i] = c;
305 } 324 }
306 } 325 }
307 326
327 #ifdef SK_DEVELOPER
328 virtual void toString(SkString* str) const SK_OVERRIDE {
329 str->append("SkLightingColorFilter_JustAdd: add: 0x");
330 str->appendHex(fAdd);
331 }
332 #endif
333
308 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stAdd) 334 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stAdd)
309 335
310 protected: 336 protected:
311 SkLightingColorFilter_JustAdd(SkFlattenableReadBuffer& buffer) 337 SkLightingColorFilter_JustAdd(SkFlattenableReadBuffer& buffer)
312 : INHERITED(buffer) {} 338 : INHERITED(buffer) {}
313 339
314 private: 340 private:
315 typedef SkLightingColorFilter INHERITED; 341 typedef SkLightingColorFilter INHERITED;
316 }; 342 };
317 343
(...skipping 14 matching lines...) Expand all
332 unsigned a = SkGetPackedA32(c); 358 unsigned a = SkGetPackedA32(c);
333 unsigned r = SkAlphaMul(SkGetPackedR32(c), scaleR); 359 unsigned r = SkAlphaMul(SkGetPackedR32(c), scaleR);
334 unsigned g = SkAlphaMul(SkGetPackedG32(c), scaleG); 360 unsigned g = SkAlphaMul(SkGetPackedG32(c), scaleG);
335 unsigned b = SkAlphaMul(SkGetPackedB32(c), scaleB); 361 unsigned b = SkAlphaMul(SkGetPackedB32(c), scaleB);
336 c = SkPackARGB32(a, r, g, b); 362 c = SkPackARGB32(a, r, g, b);
337 } 363 }
338 result[i] = c; 364 result[i] = c;
339 } 365 }
340 } 366 }
341 367
368 #ifdef SK_DEVELOPER
369 virtual void toString(SkString* str) const SK_OVERRIDE {
370 str->append("SkLightingColorFilter_JustMul: mul: 0x");
371 str->appendHex(fMul);
372 }
373 #endif
374
342 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stMul) 375 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Ju stMul)
343 376
344 protected: 377 protected:
345 SkLightingColorFilter_JustMul(SkFlattenableReadBuffer& buffer) 378 SkLightingColorFilter_JustMul(SkFlattenableReadBuffer& buffer)
346 : INHERITED(buffer) {} 379 : INHERITED(buffer) {}
347 380
348 private: 381 private:
349 typedef SkLightingColorFilter INHERITED; 382 typedef SkLightingColorFilter INHERITED;
350 }; 383 };
351 384
(...skipping 17 matching lines...) Expand all
369 // all mul components are the same 402 // all mul components are the same
370 unsigned scale = SkAlpha255To256(SkColorGetR(fMul)); 403 unsigned scale = SkAlpha255To256(SkColorGetR(fMul));
371 404
372 if (count > 0) { 405 if (count > 0) {
373 do { 406 do {
374 *result++ = SkAlphaMulRGB16(*shader++, scale); 407 *result++ = SkAlphaMulRGB16(*shader++, scale);
375 } while (--count > 0); 408 } while (--count > 0);
376 } 409 }
377 } 410 }
378 411
412 #ifdef SK_DEVELOPER
413 virtual void toString(SkString* str) const SK_OVERRIDE {
414 str->append("SkLightingColorFilter_SingleMul: mul: 0x");
415 str->appendHex(fMul);
416 }
417 #endif
418
379 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Si ngleMul) 419 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_Si ngleMul)
380 420
381 protected: 421 protected:
382 SkLightingColorFilter_SingleMul(SkFlattenableReadBuffer& buffer) 422 SkLightingColorFilter_SingleMul(SkFlattenableReadBuffer& buffer)
383 : INHERITED(buffer) {} 423 : INHERITED(buffer) {}
384 424
385 private: 425 private:
386 typedef SkLightingColorFilter INHERITED; 426 typedef SkLightingColorFilter INHERITED;
387 }; 427 };
388 428
(...skipping 19 matching lines...) Expand all
408 unsigned scaleA = SkAlpha255To256(a); 448 unsigned scaleA = SkAlpha255To256(a);
409 unsigned r = SkAlphaMul(SkGetPackedR32(c), scaleR) + SkAlphaMul( addR, scaleA); 449 unsigned r = SkAlphaMul(SkGetPackedR32(c), scaleR) + SkAlphaMul( addR, scaleA);
410 unsigned g = SkAlphaMul(SkGetPackedG32(c), scaleG) + SkAlphaMul( addG, scaleA); 450 unsigned g = SkAlphaMul(SkGetPackedG32(c), scaleG) + SkAlphaMul( addG, scaleA);
411 unsigned b = SkAlphaMul(SkGetPackedB32(c), scaleB) + SkAlphaMul( addB, scaleA); 451 unsigned b = SkAlphaMul(SkGetPackedB32(c), scaleB) + SkAlphaMul( addB, scaleA);
412 c = SkPackARGB32(a, r, g, b); 452 c = SkPackARGB32(a, r, g, b);
413 } 453 }
414 result[i] = c; 454 result[i] = c;
415 } 455 }
416 } 456 }
417 457
458 #ifdef SK_DEVELOPER
459 virtual void toString(SkString* str) const SK_OVERRIDE {
460 str->append("SkLightingColorFilter_NoPin: mul: 0x");
461 str->appendHex(fMul);
462 str->append(" add: 0x");
463 str->appendHex(fAdd);
464 }
465 #endif
466
418 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_No Pin) 467 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_No Pin)
419 468
420 protected: 469 protected:
421 SkLightingColorFilter_NoPin(SkFlattenableReadBuffer& buffer) 470 SkLightingColorFilter_NoPin(SkFlattenableReadBuffer& buffer)
422 : INHERITED(buffer) {} 471 : INHERITED(buffer) {}
423 472
424 private: 473 private:
425 typedef SkLightingColorFilter INHERITED; 474 typedef SkLightingColorFilter INHERITED;
426 }; 475 };
427 476
428 /////////////////////////////////////////////////////////////////////////////// 477 ///////////////////////////////////////////////////////////////////////////////
429 478
430 class SkSimpleColorFilter : public SkColorFilter { 479 class SkSimpleColorFilter : public SkColorFilter {
431 public: 480 public:
432 static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { 481 static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
433 return SkNEW(SkSimpleColorFilter); 482 return SkNEW(SkSimpleColorFilter);
434 } 483 }
435 484
485 #ifdef SK_DEVELOPER
486 virtual void toString(SkString* str) const SK_OVERRIDE {
487 str->append("SkSimpleColorFilter");
488 }
489 #endif
490
436 protected: 491 protected:
437 void filterSpan(const SkPMColor src[], int count, SkPMColor 492 void filterSpan(const SkPMColor src[], int count, SkPMColor
438 result[]) const SK_OVERRIDE { 493 result[]) const SK_OVERRIDE {
439 if (result != src) { 494 if (result != src) {
440 memcpy(result, src, count * sizeof(SkPMColor)); 495 memcpy(result, src, count * sizeof(SkPMColor));
441 } 496 }
442 } 497 }
443 498
444 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE {} 499 virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE {}
445 500
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkModeColorFilter) 538 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkModeColorFilter)
484 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(Src_SkModeColorFilter) 539 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(Src_SkModeColorFilter)
485 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SrcOver_SkModeColorFilter) 540 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SrcOver_SkModeColorFilter)
486 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter) 541 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter)
487 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustAdd) 542 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustAdd)
488 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustMul) 543 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_JustMul)
489 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_SingleMul) 544 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_SingleMul)
490 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_NoPin) 545 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingColorFilter_NoPin)
491 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSimpleColorFilter) 546 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSimpleColorFilter)
492 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 547 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « src/core/SkPaint.cpp ('k') | src/effects/SkColorMatrixFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698