1 %if args.builtin_variable:
2 # Test proper interpolation of ${args.vs_variable}
4 # Test proper interpolation of a non-built-in variable
6 %if args.interpolation_qualifier:
7 # When qualified with ${args.interpolation_qualifier}
9 # When no interpolation qualifier present
11 # And ShadeModel is ${args.shade_model}
12 %if args.clipping == 'fixed':
13 # And clipping via fixed planes
14 %elif args.clipping == 'vertex':
15 # And clipping via gl_ClipVertex
16 %elif args.clipping == 'distance':
17 # And clipping via gl_ClipDistance
21 GLSL >= ${args.glsl_version}
24 ${args.vs_input} vec4 vertex;
25 ${args.vs_input} vec4 input_data;
26 % if args.interpolation_qualifier or not args.builtin_variable:
27 ${args.interpolation_qualifier} ${args.vs_output} vec4 ${args.vs_variable};
32 gl_Position = gl_ModelViewProjectionMatrix * vertex;
33 ${args.vs_variable} = input_data;
34 %if args.clipping == 'distance':
35 gl_ClipDistance[0] = -1.75 - vertex.z;
36 %elif args.clipping == 'vertex':
37 gl_ClipVertex = vertex;
42 % if args.interpolation_qualifier or not args.builtin_variable:
43 ${args.interpolation_qualifier} ${args.fs_input} vec4 ${args.fs_variable};
48 gl_FragColor = ${args.fs_variable};
52 % for v in args.vertex_data():
57 frustum -${args.frustum_near} ${args.frustum_near} -${args.frustum_near} ${args.frustum_near} ${args.frustum_near} ${args.frustum_far}
58 clear color 0.0 0.0 0.0 0.0
60 enable GL_VERTEX_PROGRAM_TWO_SIDE
61 shade model ${args.shade_model}
63 % if args.clipping == 'distance':
65 % elif args.clipping == 'vertex':
67 clip plane 0 0.0 0.0 -1.0 -1.75
70 draw arrays GL_TRIANGLES 0 3
72 % for x, y, r, g, b, a in args.probe_data():
73 relative probe rgba (${x}, ${y}) (${r}, ${g}, ${b}, ${a})