1cb93a386Sopenharmony_ci// Copyright 2020 Google LLC. 2cb93a386Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 3cb93a386Sopenharmony_ci#include "tools/fiddle/examples.h" 4cb93a386Sopenharmony_ciREG_FIDDLE_SRGB(50_percent_srgb, 256, 256, false, 0, 0, false) { 5cb93a386Sopenharmony_cistatic sk_sp<SkShader> make() { 6cb93a386Sopenharmony_ci auto surf = SkSurface::MakeRasterN32Premul(2, 2); 7cb93a386Sopenharmony_ci surf->getCanvas()->drawColor(SK_ColorWHITE); 8cb93a386Sopenharmony_ci surf->getCanvas()->drawRect({0, 0, 1, 1}, SkPaint()); 9cb93a386Sopenharmony_ci surf->getCanvas()->drawRect({1, 1, 2, 2}, SkPaint()); 10cb93a386Sopenharmony_ci return surf->makeImageSnapshot()->makeShader(SkTileMode::kRepeat, 11cb93a386Sopenharmony_ci SkTileMode::kRepeat, 12cb93a386Sopenharmony_ci SkSamplingOptions(SkFilterMode::kLinear)); 13cb93a386Sopenharmony_ci} 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_civoid draw(SkCanvas* canvas) { 16cb93a386Sopenharmony_ci canvas->drawColor(SK_ColorWHITE); 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_ci const SkRect r = { 0, 0, 100, 100 }; 19cb93a386Sopenharmony_ci SkPaint p; 20cb93a386Sopenharmony_ci p.setShader(make()); 21cb93a386Sopenharmony_ci // this is a dither 22cb93a386Sopenharmony_ci canvas->drawRect({0, 0, 50, 50}, p); 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_ci canvas->scale(0.5, 0.5); 25cb93a386Sopenharmony_ci canvas->translate(100, 0); 26cb93a386Sopenharmony_ci canvas->drawRect(r, p); 27cb93a386Sopenharmony_ci p.setShader(nullptr); 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ci p.setColor(0xFF808080); 30cb93a386Sopenharmony_ci canvas->translate(100, 0); 31cb93a386Sopenharmony_ci canvas->drawRect(r, p); 32cb93a386Sopenharmony_ci 33cb93a386Sopenharmony_ci p.setColor(0x80000000); 34cb93a386Sopenharmony_ci canvas->translate(100, 0); 35cb93a386Sopenharmony_ci canvas->drawRect(r, p); 36cb93a386Sopenharmony_ci} 37cb93a386Sopenharmony_ci} // END FIDDLE 38