| Index: gm/surface.cpp
|
| diff --git a/gm/surface.cpp b/gm/surface.cpp
|
| index 901e324397ef2af08a3618efcad01a453e6bb075..e104cb5ecf619040a463766310bbef75ae8eefd0 100644
|
| --- a/gm/surface.cpp
|
| +++ b/gm/surface.cpp
|
| @@ -22,7 +22,7 @@ static sk_sp<SkShader> make_shader() {
|
| }
|
|
|
| static sk_sp<SkSurface> make_surface(GrContext* ctx, const SkImageInfo& info, SkPixelGeometry geo,
|
| - int disallowAA, int disallowDither) {
|
| + int disallowAA, int disallowDither, bool allowSRGBInputs) {
|
| uint32_t flags = 0;
|
| if (disallowAA) {
|
| flags |= SkSurfaceProps::kDisallowAntiAlias_Flag;
|
| @@ -30,6 +30,9 @@ static sk_sp<SkSurface> make_surface(GrContext* ctx, const SkImageInfo& info, Sk
|
| if (disallowDither) {
|
| flags |= SkSurfaceProps::kDisallowDither_Flag;
|
| }
|
| + if (allowSRGBInputs) {
|
| + flags |= SkSurfaceProps::kAllowSRGBInputs_Flag;
|
| + }
|
|
|
| SkSurfaceProps props(flags, geo);
|
| if (ctx) {
|
| @@ -74,7 +77,10 @@ protected:
|
| GrContext* ctx = canvas->getGrContext();
|
|
|
| // must be opaque to have a hope of testing LCD text
|
| - const SkImageInfo info = SkImageInfo::MakeN32(W, H, kOpaque_SkAlphaType);
|
| + const SkImageInfo info = SkImageInfo::MakeN32(W, H, kOpaque_SkAlphaType,
|
| + canvas->imageInfo().profileType());
|
| + SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType);
|
| + bool allowSRGBInputs = canvas->getProps(&canvasProps) && canvasProps.allowSRGBInputs();
|
|
|
| const struct {
|
| SkPixelGeometry fGeo;
|
| @@ -92,7 +98,8 @@ protected:
|
| for (int disallowDither = 0; disallowDither <= 1; ++disallowDither) {
|
| SkScalar y = 0;
|
| for (size_t i = 0; i < SK_ARRAY_COUNT(rec); ++i) {
|
| - auto surface(make_surface(ctx, info, rec[i].fGeo, disallowAA, disallowDither));
|
| + auto surface(make_surface(ctx, info, rec[i].fGeo, disallowAA, disallowDither,
|
| + allowSRGBInputs));
|
| test_draw(surface->getCanvas(), rec[i].fLabel);
|
| surface->draw(canvas, x, y, nullptr);
|
| y += H;
|
|
|