Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Functions
SKIA_LOGO_ANIMATE.cpp File Reference
#include "tools/fiddle/examples.h"

Go to the source code of this file.

Functions

 REG_FIDDLE_ANIMATED (SKIA_LOGO_ANIMATE, 816, 464, false, 0, 2)
 

Function Documentation

◆ REG_FIDDLE_ANIMATED()

REG_FIDDLE_ANIMATED ( SKIA_LOGO_ANIMATE  ,
816  ,
464  ,
false  ,
,
 
)

Definition at line 4 of file SKIA_LOGO_ANIMATE.cpp.

4 {
5void draw(SkCanvas* canvas) {
6 canvas->scale(4.0f, 4.0f);
7 const SkColor background = SK_ColorWHITE; // SK_ColorTRANSPARENT;
8 const SkColor lettering = 0xFF292929;
9 const SkColor lineColors[2] = {0x30565656, 0xFF565656};
10 SkPath s, k, a, triangle;
11 SkPaint p;
12 p.setAntiAlias(true);
13
14 canvas->clear(background);
15 canvas->scale(0.363f, 0.363f);
16
17
18 s.moveTo(34.63, 100.63);
19 s.cubicTo(44.38, 88.57, 59.87, 82.86, 74.88, 81.2);
20 s.cubicTo(97.4, 78.5, 120.27, 83.25, 140.87, 92.37);
21 s.lineTo(127.12, 127.14);
22 s.cubicTo(113.55, 121.16, 99.04, 115.9, 83.98, 116.56);
23 s.cubicTo(78.86, 116.75, 72.88, 118.54, 70.71, 123.69);
24 s.cubicTo(68.62, 128.43, 71.52, 133.68, 75.58, 136.27);
25 s.cubicTo(91.49, 146.66, 110.67, 151.38, 125.46, 163.6);
26 s.cubicTo(132.35, 169.11, 137.33, 176.9, 139.36, 185.49);
27 s.cubicTo(142.55, 199.14, 140.94, 214.31, 133.13, 226.17);
28 s.cubicTo(126.23, 236.96, 114.82, 244.16, 102.75, 247.89);
29 s.cubicTo(87.95, 252.51, 72.16, 252.21, 56.88, 250.78);
30 s.cubicTo(45.54, 249.72, 34.64, 246.05, 24.32, 241.36);
31 s.lineTo(24.25, 201.1);
32 s.cubicTo(38.23, 208.15, 53.37, 213.15, 68.98, 214.75);
33 s.cubicTo(75.42, 215.25, 82.17, 215.63, 88.31, 213.27);
34 s.cubicTo(92.84, 211.53, 96.4, 206.93, 95.86, 201.93);
35 s.cubicTo(95.64, 196.77, 91.1, 193.38, 87.03, 190.99);
36 s.cubicTo(71.96, 182.67, 54.94, 177.66, 41.5, 166.57);
37 s.cubicTo(33.19, 159.73, 27.51, 149.8, 26.1, 139.11);
38 s.cubicTo(24.09, 125.88, 25.91, 111.25, 34.63, 100.63);
39 canvas->drawPath(s, p);
40
41 k.moveTo(160.82, 82.85);
42 k.lineTo(206.05, 82.85);
43 k.lineTo(206.05, 155.15);
44 k.lineTo(254.83, 82.84);
45 k.lineTo(304.01, 82.85);
46 k.lineTo(251.52, 157.27);
47 k.lineTo(303.09, 249.42);
48 k.lineTo(252.28, 249.4);
49 k.lineTo(219.18, 185.75);
50 k.lineTo(206.23, 193.45);
51 k.lineTo(206.05, 249.42);
52 k.lineTo(160.82, 249.42);
53 k.lineTo(160.82, 82.85);
54 canvas->drawPath(k, p);
55
56 a.moveTo(426.45, 218.16);
57 a.lineTo(480.705, 218.16);
58 a.lineTo(489.31, 249.4);
59 a.lineTo(538.54, 249.42);
60 a.lineTo(483.56, 82.18);
61 a.lineTo(423.43, 82.17);
62 a.lineTo(369.13, 249.42);
63 a.lineTo(418.5, 249.47);
64 a.lineTo(453.75, 109.83);
65 a.lineTo(471.77, 181.28);
66 a.lineTo(430.5, 181.28);
67 canvas->drawPath(a, p);
68
69 canvas->save();
70
71 float pos = frame > 0.5 ? 1 : frame * 2;
72 canvas->translate((1-pos) * -200.0, 0.0);
73
74 const SkColor rgb[] = {0xFFE94037, 0xFF70BF4F, 0xFF465BA6};
75 const uint8_t alpha = pos*255.999;
76
77 p.setColor(rgb[1]);
78 p.setAlpha(alpha);
79 canvas->drawRect({326.0, 82.25, 343.9, 249.2}, p);
80 p.setColor(rgb[0]);
81 p.setAlpha(alpha);
82 canvas->drawRect({310.2, 82.25, 327.0, 249.2}, p);
83 p.setColor(rgb[2]);
84 p.setAlpha(alpha);
85 canvas->drawRect({342.9, 82.25, 358.87, 249.2}, p);
86
87 p.setColor(lettering);
88 //p.setAlpha(cast_alpha(pos));
89 canvas->drawCircle(335.355, 45.965, 29.25, p);
90
91 triangle.reset();
92 triangle.moveTo(362.64, 257.32);
93 triangle.lineTo(335.292, 293.392);
94 triangle.lineTo(307.8, 257.48);
95 triangle.lineTo(362.64, 257.32);
96 p.setColor(lettering);
97 canvas->drawPath(triangle, p);
98
99 canvas->restore();
100
101 // line
102 const SkPoint pts[2] = {{160, 290}, {341, 290}};
104 pts, lineColors, nullptr, 2, SkTileMode::kClamp));
105 if (true) {
106 SkRRect rrectClip;
107 rrectClip.setRectXY({138, 291, 138 + pos*(341-138), 300}, 25.0, 5.0);
108 canvas->clipRRect(rrectClip, SkClipOp::kIntersect);
110 rrect.setRectXY({138, 291, 341, 300}, 25.0, 5.0);
111 canvas->drawRRect(rrect, p);
112 } else {
113 SkPath path;
114 path.addRoundRect({138, 291, 341, 299.95}, 25.0, 5.0);
115 canvas->drawPath(path, p);
116 }
117}
118} // END FIDDLE
SkPoint pos
uint32_t SkColor
Definition SkColor.h:37
constexpr SkColor SK_ColorWHITE
Definition SkColor.h:122
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition aaclip.cpp:27
void drawRect(const SkRect &rect, const SkPaint &paint)
void restore()
Definition SkCanvas.cpp:465
void translate(SkScalar dx, SkScalar dy)
void clear(SkColor color)
Definition SkCanvas.h:1199
void drawRRect(const SkRRect &rrect, const SkPaint &paint)
int save()
Definition SkCanvas.cpp:451
void drawPath(const SkPath &path, const SkPaint &paint)
void scale(SkScalar sx, SkScalar sy)
void clipRRect(const SkRRect &rrect, SkClipOp op, bool doAntiAlias)
void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint &paint)
static sk_sp< SkShader > MakeLinear(const SkPoint pts[2], const SkColor colors[], const SkScalar pos[], int count, SkTileMode mode, uint32_t flags=0, const SkMatrix *localMatrix=nullptr)
SkPath & moveTo(SkScalar x, SkScalar y)
Definition SkPath.cpp:678
SkPath & lineTo(SkScalar x, SkScalar y)
Definition SkPath.cpp:718
SkPath & reset()
Definition SkPath.cpp:360
void setRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
Definition SkRRect.cpp:52
double frame
Definition examples.cpp:31
struct MyStruct s
struct MyStruct a[10]
SkRRect rrect
Definition SkRecords.h:232
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition switches.h:57