1
2/*
3Copyright (c) 2019 The Khronos Group Inc.
4Use of this source code is governed by an MIT-style license that can be
5found in the LICENSE.txt file.
6*/
7
8
9attribute vec4 gtf_Vertex;
10attribute vec4 gtf_Color;
11uniform mat4 gtf_ModelViewProjectionMatrix;
12varying vec4 color;
13
14void main (void)
15{
16	const float M_PI = 3.14159265358979323846;
17	float x = 2.0 * (gtf_Color.g - 0.5);
18	float y = 2.0 * (gtf_Color.b - 0.5);
19	const float epsilon = 1.0e-4;
20	color = vec4(0.0, 0.0, 0.0, 1.0);
21
22	// Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent
23	if(x > epsilon || abs(y) > epsilon)
24	{
25		color = vec4(atan(y, x) / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0);
26	}
27
28	gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex;
29}
30