[[vertex]]

#define PI 3.1415926535897932384626433832795
#define TWO_PI 6.283185307179586476925286766559

uniform mat4 mvp;

in vec4 pos;
in vec2 uvs;
out vec2 uv;

void main()
{
    uv = (vec2(1.0) - uvs + vec2(0.25,0.0)) * vec2(TWO_PI, PI);
    gl_Position = mvp * vec4(pos.xyz, 1.0);
}

[[fragment]]

uniform samplerCube tex;

in highp vec2 uv;
out highp vec4 frag;

void main()
{
    highp float anglex = uv.x;
    highp float angley = uv.y;
    highp float sx = sin(anglex);
    highp float cx = cos(anglex);
    highp vec3 dir = vec3(0.0, 0.0, 0.0);
    dir.x = sin(angley) * cx;
    dir.y = cos(angley);
    dir.z = sin(angley) * sx;
    frag = texture(tex, dir);
}
