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
|
[require]
GLSL >= 1.00 es
GL >= 2.0 es
[vertex shader]
attribute vec4 vertex;
mat4 proj = mat4(
2.0/250.0, 0.0, 0.0, -1.0,
0.0, 2.0/250.0, 0.0, -1.0,
0.0, 0.0, -1.0, 0.0,
0.0, 0.0, 0.0, 1.0);
void main() { gl_Position = vertex;
gl_Position *= proj; }
[fragment shader]
uniform vec4 c;
uniform vec4 r;
uniform mat4 expected;
void main() {
mat4 result = outerProduct(c, r);
gl_FragColor = (result == expected) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);
}
[test]
clear color 0.5 0.5 0.5 0.0
clear
uniform vec4 c 2 3 4 5
uniform vec4 r 6 7 8 9
uniform mat4x4 expected 12 18 24 30 14 21 28 35 16 24 32 40 18 27 36 45
draw rect 10 10 10 10
probe rgb 15 15 0.0 1.0 0.0
uniform vec4 c 3 4 5 6
uniform vec4 r 7 8 9 10
uniform mat4x4 expected 21 28 35 42 24 32 40 48 27 36 45 54 30 40 50 60
draw rect 30 10 10 10
probe rgb 35 15 0.0 1.0 0.0
uniform vec4 c 4 5 6 7
uniform vec4 r 8 9 10 11
uniform mat4x4 expected 32 40 48 56 36 45 54 63 40 50 60 70 44 55 66 77
draw rect 50 10 10 10
probe rgb 55 15 0.0 1.0 0.0
uniform vec4 c 5 6 7 8
uniform vec4 r 9 10 11 12
uniform mat4x4 expected 45 54 63 72 50 60 70 80 55 66 77 88 60 72 84 96
draw rect 70 10 10 10
probe rgb 75 15 0.0 1.0 0.0
|