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
|
[require]
GLSL >= 1.10
[vertex shader]
varying float y;
void main()
{
gl_Position = gl_Vertex;
y = gl_Vertex.y;
}
[fragment shader]
varying float y;
void main()
{
const float x = 1.57;
float retVal = tan(x);
// expected result, calculated by C program
const float tolerance = 0.001;
const vec2 expVal = vec2(1255.765592 - tolerance,
1255.848311 + tolerance);
// Top half of the window should be 0.5 gray, and the bottom half
// should be green.
if (y > 0.0)
gl_FragColor = vec4(vec2(retVal / (2.0 * expVal)).xyy, 1.0);
else
gl_FragColor = ((retVal >= expVal.x) && (retVal <= expVal.y))
? vec4(0.0, 1.0, 0.0, 1.0) // green
: vec4(1.0, 0.0, 0.0, 1.0); // red
}
[test]
draw rect -1 -1 2 2
relative probe rgb (0.1, 0.6) (0.5, 0.5, 0.5)
relative probe rgb (0.1, 0.1) (0.0, 1.0, 0.0)
|