1cb93a386Sopenharmony_ci{
2cb93a386Sopenharmony_ci   "MaxCount": 4000,
3cb93a386Sopenharmony_ci   "Drawable": {
4cb93a386Sopenharmony_ci      "Type": "SkCircleDrawable",
5cb93a386Sopenharmony_ci      "Radius": 2
6cb93a386Sopenharmony_ci   },
7cb93a386Sopenharmony_ci   "Code": [
8cb93a386Sopenharmony_ci      "void effectSpawn(inout Effect effect) {",
9cb93a386Sopenharmony_ci      "  effect.lifetime = 4;",
10cb93a386Sopenharmony_ci      "}",
11cb93a386Sopenharmony_ci      "",
12cb93a386Sopenharmony_ci      "void effectUpdate(inout Effect effect) {",
13cb93a386Sopenharmony_ci      "  effect.color.r = 0;",
14cb93a386Sopenharmony_ci      "  effect.color.g = 1 - effect.age;",
15cb93a386Sopenharmony_ci      "  effect.color.b = effect.age;",
16cb93a386Sopenharmony_ci      "",
17cb93a386Sopenharmony_ci      "  effect.rate = effect.age < 0.75 ? 800 : 0;",
18cb93a386Sopenharmony_ci      "}",
19cb93a386Sopenharmony_ci      "",
20cb93a386Sopenharmony_ci      "uniform float2 mouse_pos;",
21cb93a386Sopenharmony_ci      "",
22cb93a386Sopenharmony_ci      "void spawn(inout Particle p) {",
23cb93a386Sopenharmony_ci      "  p.lifetime = 4;",
24cb93a386Sopenharmony_ci      "  p.pos = mouse_pos;",
25cb93a386Sopenharmony_ci      "  p.frame = effect.age / 0.75 + mix(-0.05, 0.05, rand(p.seed));",
26cb93a386Sopenharmony_ci      "}",
27cb93a386Sopenharmony_ci      "",
28cb93a386Sopenharmony_ci      "void update(inout Particle p) {",
29cb93a386Sopenharmony_ci      "  p.pos = mix(p.pos, text(p.frame).xy, 0.05);",
30cb93a386Sopenharmony_ci      "}",
31cb93a386Sopenharmony_ci      ""
32cb93a386Sopenharmony_ci   ],
33cb93a386Sopenharmony_ci   "Bindings": [
34cb93a386Sopenharmony_ci      {
35cb93a386Sopenharmony_ci         "Type": "SkTextBinding",
36cb93a386Sopenharmony_ci         "Name": "text",
37cb93a386Sopenharmony_ci         "Text": "HELLO WORLD",
38cb93a386Sopenharmony_ci         "FontSize": 96
39cb93a386Sopenharmony_ci      }
40cb93a386Sopenharmony_ci   ]
41cb93a386Sopenharmony_ci}