Files
libretro/bios/Other/epsxe/shaders/super-eagle/gpuCore.slv
T

45 lines
1.2 KiB
Plaintext

struct inputdata
{
vec2 video_size;
vec2 texture_size;
vec2 output_size;
float frame_count;
float frame_direction;
float frame_rotation;
};
attribute vec4 a_position;
attribute vec2 a_texCoord;
varying vec4 TexCoord[8];
varying vec2 v_texCoord;
uniform inputdata IN;
void main()
{
gl_Position = a_position;
vec2 ps = vec2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y);
float dx = ps.x;
float dy = ps.y;
v_texCoord = a_texCoord;
TexCoord[0].xy = a_texCoord + vec2(-dx,-dy);
TexCoord[0].zw = a_texCoord + vec2(-dx, 0);
TexCoord[1].xy = a_texCoord + vec2(+dx,-dy);
TexCoord[1].zw = a_texCoord + vec2(+dx+dx,-dy);
TexCoord[2].xy = a_texCoord + vec2(-dx, 0);
TexCoord[2].zw = a_texCoord + vec2(+dx, 0);
TexCoord[3].xy = a_texCoord + vec2(+dx+dx, 0);
TexCoord[3].zw = a_texCoord + vec2(-dx,+dy);
TexCoord[4].xy = a_texCoord + vec2( 0,+dy);
TexCoord[4].zw = a_texCoord + vec2(+dx,+dy);
TexCoord[5].xy = a_texCoord + vec2(+dx+dx,+dy);
TexCoord[5].zw = a_texCoord + vec2(-dx,+dy+dy);
TexCoord[6].xy = a_texCoord + vec2( 0,+dy+dy);
TexCoord[6].zw = a_texCoord + vec2(+dx,+dy+dy);
TexCoord[7].xy = a_texCoord + vec2(+dx+dx,+dy+dy);
}