1[shaders]
2vertex =
3    uniform highp mat4 u_modelMatrix;
4    uniform highp mat4 u_viewMatrix;
5    uniform highp mat4 u_projectionMatrix;
6
7    attribute highp vec4 a_vertex;
8    attribute lowp vec4 a_color;
9    varying lowp vec4 v_color;
10    void main()
11    {
12        gl_Position = u_projectionMatrix * u_viewMatrix * u_modelMatrix * a_vertex;
13        v_color = a_color;
14    }
15
16fragment =
17    uniform lowp vec4 u_color;
18    varying lowp vec4 v_color;
19
20    void main()
21    {
22        if(v_color != vec4(0.0, 0.0, 0.0, 1.0))
23        {
24            gl_FragColor = v_color;
25        }
26        else
27        {
28            gl_FragColor = u_color;
29        }
30    }
31
32vertex41core =
33    #version 410
34    uniform highp mat4 u_modelMatrix;
35    uniform highp mat4 u_viewMatrix;
36    uniform highp mat4 u_projectionMatrix;
37
38    in highp vec4 a_vertex;
39    in lowp vec4 a_color;
40    out lowp vec4 v_color;
41    void main()
42    {
43        gl_Position = u_projectionMatrix * u_viewMatrix * u_modelMatrix * a_vertex;
44        v_color = a_color;
45    }
46
47fragment41core =
48    #version 410
49    uniform lowp vec4 u_color;
50    in lowp vec4 v_color;
51    out vec4 frag_color;
52
53    void main()
54    {
55        if(v_color != vec4(0.0, 0.0, 0.0, 1.0))
56        {
57            frag_color = v_color;
58        }
59        else
60        {
61            frag_color = u_color;
62        }
63    }
64
65[defaults]
66u_color = [0.5, 0.5, 0.5, 1.0]
67
68[bindings]
69u_modelMatrix = model_matrix
70u_viewMatrix = view_matrix
71u_projectionMatrix = projection_matrix
72
73[attributes]
74a_vertex = vertex
75a_color = color
76