• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2   "MaxCount": 4096,
3   "Duration": 1,
4   "Rate": 1000,
5   "Drawable": {
6      "Type": "SkCircleDrawable",
7      "Radius": 1
8   },
9   "Code": [
10      "// float rand; Every read returns a random float [0 .. 1)",
11      "layout(ctype=float) in uniform float dt;",
12      "layout(ctype=float) in uniform float effectAge;",
13      "",
14      "struct Particle {",
15      "  float  age;",
16      "  float  lifetime;",
17      "  float2 pos;",
18      "  float2 dir;",
19      "  float  scale;",
20      "  float2 vel;",
21      "  float  spin;",
22      "  float4 color;",
23      "  float  frame;",
24      "};",
25      "",
26      "void spawn(inout Particle p) {",
27      "  p.lifetime = mix(1, 3, rand);",
28      "  float a = radians(mix(250, 290, rand));",
29      "  float s = mix(10, 30, rand);",
30      "  p.vel.x = cos(a) * s;",
31      "  p.vel.y = sin(a) * s;",
32      "  p.pos = text(rand).xy;",
33      "}",
34      "",
35      "void update(inout Particle p) {",
36      "  float4 startColor = float4(1, 0.196, 0.078, 1);",
37      "  float4 endColor   = float4(1, 0.784, 0.078, 1);",
38      "  p.color = mix(startColor, endColor, p.age);",
39      "}",
40      ""
41   ],
42   "Bindings": [
43      {
44         "Type": "SkTextBinding",
45         "Name": "text",
46         "Text": "SKIA",
47         "FontSize": 96
48      }
49   ]
50}