1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
"use strict"
define.class('$ui/view', function($ui$, label){
this.passes = 1
define.class(this, "pass0", this.RenderPass, function() {
this.usefloat = true
this.doublebuffer = true
this.isAlive = function(pos) {
return this.pass0.pixel(pos).r >= 0.7
}
this.color = function(){
var time = view.time
var x = mesh.x * view.layout.width
var y = mesh.y * view.layout.height
x *= this.pass0.ratio
y *= this.pass0.ratio
if (this.drawcount == 1.) {
return this.framebuffer.pixel(vec2(x,y))
return vec4(noise.cheapnoise(mesh.xy))
}
var neighbors = 0
if (this.isAlive(vec2(x - 1, y - 1))) neighbors++
if (this.isAlive(vec2(x - 1, y))) neighbors++
if (this.isAlive(vec2(x - 1, y + 1))) neighbors++
if (this.isAlive(vec2(x, y - 1))) neighbors++
if (this.isAlive(vec2(x, y + 1))) neighbors++
if (this.isAlive(vec2(x + 1, y - 1))) neighbors++
if (this.isAlive(vec2(x + 1, y))) neighbors++
if (this.isAlive(vec2(x + 1, y + 1))) neighbors++
var color = this.pass0.pixel2(x, y)
if (color.r >= 0.7) {
color = 'white'
if (neighbors < 2) {
color = vec4(.59,0,1.,1.)
} else if (neighbors > 3) {
color = vec4(.59,0,1.,1.)
}
} else {
if (neighbors == 3) {
color = 'white'
}
}
if (color.g > .001) {
color.g -= .004;
}
if (color.b > .001) {
color.b -= .002;
}
if (color.r > .001 && color.r < .7) {
color.r -= .002;
}
return color
}
})
var lifeview = this.constructor;
this.constructor.examples = {
Usage: function () {
return [
lifeview({
width:300,
height:200,
flexdirection:"column"
},
label({flex:1, fontsize:20, text:"Dreem GL IS ALIVE!!!"}),
label({flex:1, fontsize:20, text:"Dreem GL IS ALIVE!!!"}),
label({flex:1, fontsize:20, text:"Dreem GL IS ALIVE!!!"}),
label({flex:1, fontsize:20, text:"Dreem GL IS ALIVE!!!"}),
label({flex:1, fontsize:20, text:"Dreem GL IS ALIVE!!!"})
)
]
}
}
})
|