OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
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 #include "SkColorFilter.h" | 8 #include "SkColorFilter.h" |
9 #include "SkDevice.h" | 9 #include "SkDevice.h" |
10 #include "SkDraw.h" | 10 #include "SkDraw.h" |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 if (kUnknown_SkPixelGeometry == fSurfaceProps.pixelGeometry() | 435 if (kUnknown_SkPixelGeometry == fSurfaceProps.pixelGeometry() |
436 || this->onShouldDisableLCD(paint)) { | 436 || this->onShouldDisableLCD(paint)) { |
437 | 437 |
438 flags &= ~SkPaint::kLCDRenderText_Flag; | 438 flags &= ~SkPaint::kLCDRenderText_Flag; |
439 flags |= SkPaint::kGenA8FromLCD_Flag; | 439 flags |= SkPaint::kGenA8FromLCD_Flag; |
440 } | 440 } |
441 | 441 |
442 return flags; | 442 return flags; |
443 } | 443 } |
444 | 444 |
| 445 ////////////////////////////////////////////////////////////////////////////////
////////// |
| 446 |
| 447 void SkBaseDevice::logDrawScaleFactor(const SkMatrix& matrix, SkFilterQuality fi
lterQuality) const { |
| 448 enum ScaleFactor { |
| 449 kUpscale_ScaleFactor, |
| 450 kNoScale_ScaleFactor, |
| 451 kDownscale_ScaleFactor, |
| 452 kLargeDownscale_ScaleFactor, |
| 453 }; |
| 454 |
| 455 SkASSERT(filterQuality != kNone_SkFilterQuality); |
| 456 enum { kScaleFactorCount = kLargeDownscale_ScaleFactor + 1 }; |
| 457 float raw_scale_factor = matrix.getMinScale(); |
| 458 |
| 459 ScaleFactor scale_factor; |
| 460 if (raw_scale_factor < 0.5f) { |
| 461 scale_factor = kLargeDownscale_ScaleFactor; |
| 462 } else if (raw_scale_factor < 1.0f) { |
| 463 scale_factor = kDownscale_ScaleFactor; |
| 464 } else if (raw_scale_factor > 1.0f) { |
| 465 scale_factor = kUpscale_ScaleFactor; |
| 466 } else { |
| 467 scale_factor = kNoScale_ScaleFactor; |
| 468 } |
| 469 |
| 470 switch (filterQuality) { |
| 471 case kNone_SkFilterQuality: |
| 472 SK_HISTOGRAM_ENUMERATION("DrawScaleFactor.NoneFilterQuality", scale_
factor, |
| 473 kScaleFactorCount); |
| 474 break; |
| 475 case kLow_SkFilterQuality: |
| 476 SK_HISTOGRAM_ENUMERATION("DrawScaleFactor.LowFilterQuality", scale_f
actor, |
| 477 kScaleFactorCount); |
| 478 break; |
| 479 case kMedium_SkFilterQuality: |
| 480 SK_HISTOGRAM_ENUMERATION("DrawScaleFactor.MediumFilterQuality", scal
e_factor, |
| 481 kScaleFactorCount); |
| 482 break; |
| 483 case kHigh_SkFilterQuality: |
| 484 SK_HISTOGRAM_ENUMERATION("DrawScaleFactor.HighFilterQuality", scale_
factor, |
| 485 kScaleFactorCount); |
| 486 break; |
| 487 } |
| 488 |
| 489 // Also log filter quality independent scale factor. |
| 490 SK_HISTOGRAM_ENUMERATION("DrawScaleFactor.AnyFilterQuality", scale_factor, k
ScaleFactorCount); |
| 491 |
| 492 // Also log an overall histogram of filter quality. |
| 493 enum { kFilterQualityCount = kHigh_SkFilterQuality + 1 }; |
| 494 SK_HISTOGRAM_ENUMERATION("FilterQuality", filterQuality, kFilterQualityCount
); |
| 495 } |
| 496 |
OLD | NEW |