blob: 896a735e0b3cc0cb28b368bfeb1dde7144c9d17a [file] [log] [blame]
Hal Canary87515122019-03-15 14:22:51 -04001#if 0 // Disabled until updated to use current API.
2// Copyright 2019 Google LLC.
3// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
Mike Kleinc0bd9f92019-04-23 12:05:21 -05004#include "tools/fiddle/examples.h"
Hal Canary87515122019-03-15 14:22:51 -04005// HASH=fe3c5a755d3dde29bba058a583f18901
Hal Canarya7181e7c2019-03-18 16:06:34 -04006REG_FIDDLE(ImageInfo_makeColorSpace, 256, 224, false, 0) {
Hal Canary87515122019-03-15 14:22:51 -04007void draw(SkCanvas* canvas) {
8 const int width = 256;
9 const int height = 64;
10 auto drawLabel = [=](const char* what, bool closeToSRGB) -> void {
11 SkString string;
12 string.printf("%s gamma is %s" "close to sRGB", what, closeToSRGB ? "" : "not ");
13 SkPaint paint;
14 paint.setAntiAlias(true);
15 canvas->drawString(string, 20, 56, paint);
16 };
17 SkColor gradColors[] = { 0xFFFF7F00, 0xFF00FF7F, 0xFF0000FF, 0xFF7F7FFF };
18 SkPoint gradPoints[] = { { 0, 0 }, { width, 0 }, { width * 2, 0 }, { width * 3, 0 } };
19 SkPaint gradPaint;
20 gradPaint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,
21 SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));
22 canvas->drawRect(SkRect::MakeWH(width, height), gradPaint);
23 drawLabel("canvas", canvas->imageInfo().gammaCloseToSRGB());
24 SkBitmap bitmap;
25 SkImageInfo offscreenInfo = SkImageInfo::MakeS32(width, height, kPremul_SkAlphaType);
26 bitmap.allocPixels(offscreenInfo);
27 SkCanvas sRGBOffscreen(bitmap);
28 sRGBOffscreen.drawRect(SkRect::MakeWH(width, height), gradPaint);
29 canvas->translate(0, 80);
30 canvas->drawBitmap(bitmap, 0, 0);
31 drawLabel("offscreen", offscreenInfo.gammaCloseToSRGB());
32 SkImageInfo linearGamma =
33 offscreenInfo.makeColorSpace(offscreenInfo.colorSpace()->makeLinearGamma());
34 bitmap.allocPixels(linearGamma);
35 SkCanvas lgOffscreen(bitmap);
36 lgOffscreen.drawRect(SkRect::MakeWH(width, height), gradPaint);
37 canvas->translate(0, 80);
38 canvas->drawBitmap(bitmap, 0, 0);
39 drawLabel("linear", linearGamma.gammaCloseToSRGB());
40}
41} // END FIDDLE
42#endif // Disabled until updated to use current API.