1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2022 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #include "gm/gm.h" 9*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkCanvas.h" 10*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkPaint.h" 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkGradientShader.h" 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker DEF_SIMPLE_GM(drawlines_with_local_matrix, canvas, 500, 500) { 14*c8dee2aaSAndroid Build Coastguard Worker canvas->clipRect({0,0,500,500}); 15*c8dee2aaSAndroid Build Coastguard Worker SkPaint grad; 16*c8dee2aaSAndroid Build Coastguard Worker grad.setAntiAlias(true); 17*c8dee2aaSAndroid Build Coastguard Worker grad.setStrokeCap(SkPaint::kSquare_Cap); 18*c8dee2aaSAndroid Build Coastguard Worker float pos[6] = {0, 2/6.f, 3/6.f, 4/6.f, 5/6.f, 1}; 19*c8dee2aaSAndroid Build Coastguard Worker constexpr SkColor indigo = SkColorSetARGB(0xFF, 0x4b, 0x00, 0x82); 20*c8dee2aaSAndroid Build Coastguard Worker constexpr SkColor violet = SkColorSetARGB(0xFF, 0xee, 0x82, 0xee); 21*c8dee2aaSAndroid Build Coastguard Worker SkColor colors[6] = {SK_ColorRED, SK_ColorYELLOW, SK_ColorGREEN, SK_ColorBLUE, indigo, violet}; 22*c8dee2aaSAndroid Build Coastguard Worker grad.setShader(SkGradientShader::MakeRadial({250,250}, 280, colors, pos, 6,SkTileMode::kClamp)); 23*c8dee2aaSAndroid Build Coastguard Worker canvas->drawPaint(grad); 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker SkPaint white; 26*c8dee2aaSAndroid Build Coastguard Worker white.setAntiAlias(true); 27*c8dee2aaSAndroid Build Coastguard Worker white.setStrokeCap(SkPaint::kSquare_Cap); 28*c8dee2aaSAndroid Build Coastguard Worker white.setColor(SK_ColorWHITE); 29*c8dee2aaSAndroid Build Coastguard Worker __anonc7af0b340102(float x0, float y0, float x1, float y1, float w) 30*c8dee2aaSAndroid Build Coastguard Worker auto drawLine = [&](float x0, float y0, float x1, float y1, float w) { 31*c8dee2aaSAndroid Build Coastguard Worker SkPoint p[2] = {{x0, y0}, {x1, y1}}; 32*c8dee2aaSAndroid Build Coastguard Worker white.setStrokeWidth(w); 33*c8dee2aaSAndroid Build Coastguard Worker canvas->drawPoints(SkCanvas::kLines_PointMode, 2, p, white); 34*c8dee2aaSAndroid Build Coastguard Worker grad.setStrokeWidth(w - 4); 35*c8dee2aaSAndroid Build Coastguard Worker canvas->drawPoints(SkCanvas::kLines_PointMode, 2, p, grad); 36*c8dee2aaSAndroid Build Coastguard Worker }; 37*c8dee2aaSAndroid Build Coastguard Worker 38*c8dee2aaSAndroid Build Coastguard Worker drawLine(20, 20, 200, 120, 20); 39*c8dee2aaSAndroid Build Coastguard Worker drawLine(20, 200, 20, 100, 20); 40*c8dee2aaSAndroid Build Coastguard Worker drawLine(480, 20, 400, 400, 20); 41*c8dee2aaSAndroid Build Coastguard Worker drawLine(50, 480, 260, 100, 20); 42*c8dee2aaSAndroid Build Coastguard Worker drawLine(270, 20, 380, 210, 20); 43*c8dee2aaSAndroid Build Coastguard Worker drawLine(280, 280, 400, 480, 20); 44*c8dee2aaSAndroid Build Coastguard Worker drawLine(160, 375, 280, 375, 20); 45*c8dee2aaSAndroid Build Coastguard Worker drawLine(220, 410, 220, 470, 20); 46*c8dee2aaSAndroid Build Coastguard Worker drawLine(250, 250, 250, 250, 20); 47*c8dee2aaSAndroid Build Coastguard Worker } 48