1
2/*
3** Copyright (c) 2012 The Khronos Group Inc.
4**
5** Permission is hereby granted, free of charge, to any person obtaining a
6** copy of this software and/or associated documentation files (the
7** "Materials"), to deal in the Materials without restriction, including
8** without limitation the rights to use, copy, modify, merge, publish,
9** distribute, sublicense, and/or sell copies of the Materials, and to
10** permit persons to whom the Materials are furnished to do so, subject to
11** the following conditions:
12**
13** The above copyright notice and this permission notice shall be included
14** in all copies or substantial portions of the Materials.
15**
16** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
23*/
24
25
26attribute vec4 gtf_Vertex;
27uniform mat4 gtf_ModelViewProjectionMatrix;
28varying vec4 color;
29
30// Function declaration.
31bool function(bool par);
32
33void main (void)
34{
35	bool par = true;
36	bool ret = false;
37
38	float gray = 0.0;
39
40	ret = function(par);
41
42	// The parameter should remain unchanged by the function and the function should return true.
43	if(par && ret)
44	{
45		gray = 1.0;
46	}
47
48	color = vec4(gray, gray, gray, 1.0);
49	gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex;
50}
51
52// Function definition.
53bool function(bool par)
54{
55	// Return the value of the parameter.
56	if(par)
57	{
58		// Test parameter qualifier (default is "in").
59		par = false;
60
61		return true;
62	}
63	else
64		return false;
65}
66