!!cvarf ffov
!!samps reflectcube
#include "sys/defs.h"


//fisheye view rendering, for silly fovs that are still playable.

layout(location=0) varying vec2 texcoord;
#ifdef VERTEX_SHADER
void main()
{
	texcoord = v_texcoord.xy;
	gl_Position = ftetransform();
}
#endif
#ifdef FRAGMENT_SHADER
void main()
{
	vec3 tc;	
	vec2 d;	
	vec2 ang;	
	d = texcoord;	
	ang.x = sqrt(d.x*d.x+d.y*d.y)*radians(cvar_ffov);	
	ang.y = -atan(d.y, d.x);	
	tc.x = sin(ang.x) * cos(ang.y);	
	tc.y = sin(ang.x) * sin(ang.y);	
	tc.z = cos(ang.x);	
	gl_FragColor = textureCube(s_reflectcube, tc);
}
#endif
