| Index: gm/gamma.cpp
|
| diff --git a/gm/gamma.cpp b/gm/gamma.cpp
|
| index 5dbfb9425bffb6772c1a73fa9c4fad1abc01e8a6..25608d26b3632c7b70b996265e31a0ded7cdfba8 100644
|
| --- a/gm/gamma.cpp
|
| +++ b/gm/gamma.cpp
|
| @@ -10,7 +10,7 @@
|
| #include "Resources.h"
|
| #include "SkGradientShader.h"
|
|
|
| -DEF_SIMPLE_GM(gamma, canvas, 500, 200) {
|
| +DEF_SIMPLE_GM(gamma, canvas, 560, 200) {
|
| SkPaint p;
|
| const SkScalar sz = 50.0f;
|
| const int szInt = SkScalarTruncToInt(sz);
|
| @@ -34,8 +34,19 @@ DEF_SIMPLE_GM(gamma, canvas, 500, 200) {
|
| SkImageInfo srgbGreyInfo = SkImageInfo::MakeN32(szInt, szInt, kOpaque_SkAlphaType,
|
| kSRGB_SkColorProfileType);
|
| srgbGreyBmp.allocPixels(srgbGreyInfo);
|
| + // 0xBC = 255 * linear_to_srgb(0.5f)
|
| srgbGreyBmp.eraseARGB(0xFF, 0xBC, 0xBC, 0xBC);
|
|
|
| + SkBitmap mipmapBmp;
|
| + SkImageInfo mipmapInfo = SkImageInfo::MakeN32(2, 2, kOpaque_SkAlphaType,
|
| + kSRGB_SkColorProfileType);
|
| + mipmapBmp.allocPixels(mipmapInfo);
|
| + SkPMColor* mipmapPixels = reinterpret_cast<SkPMColor*>(mipmapBmp.getPixels());
|
| + // 0x89 = 255 * linear_to_srgb(0.25f)
|
| + mipmapPixels[0] = mipmapPixels[3] = SkPackARGB32(0xFF, 0x89, 0x89, 0x89);
|
| + // 0xE1 = 255 * linear_to_srgb(0.75f)
|
| + mipmapPixels[1] = mipmapPixels[2] = SkPackARGB32(0xFF, 0xE1, 0xE1, 0xE1);
|
| +
|
| SkPaint textPaint;
|
| textPaint.setColor(SK_ColorWHITE);
|
|
|
| @@ -107,6 +118,12 @@ DEF_SIMPLE_GM(gamma, canvas, 500, 200) {
|
| p.setFilterQuality(SkFilterQuality::kMedium_SkFilterQuality);
|
| nextRect("Dither", "Scale");
|
|
|
| + // 25%/75% dither, scaled down by 2x. Tests ALL aspects of minification. Specifically, are
|
| + // sRGB sources decoded to linear before computing mipmaps?
|
| + p.setShader(SkShader::MakeBitmapShader(mipmapBmp, rpt, rpt, &scaleMatrix));
|
| + p.setFilterQuality(SkFilterQuality::kMedium_SkFilterQuality);
|
| + nextRect("MipMaps", 0);
|
| +
|
| // 50% grey via paint color.
|
| p.setColor(0xff7f7f7f);
|
| nextRect("Color", 0);
|
|
|