forked from 12to11/12to11
134 lines
2.5 KiB
GLSL
134 lines
2.5 KiB
GLSL
// -*- glsl -*-
|
|
|
|
// File containing GLSL shaders used to generate shaders.h.
|
|
|
|
// At the start of each shader, write // followed by two equals signs,
|
|
// followed by a space, the name of the shader and a newline.
|
|
// Following that, write the shader code.
|
|
|
|
// To terminate a shader, write // followed by another two equals
|
|
// signs, this time without a trailing name or whitespace.
|
|
|
|
//== Clear Rectangle Vertex Shader
|
|
attribute vec2 pos;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
gl_Position = vec4 (pos.x, pos.y, 1.0, 1.0);
|
|
}
|
|
//==
|
|
|
|
//== Clear Rectangle Fragment Shader
|
|
void
|
|
main (void)
|
|
{
|
|
gl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);
|
|
}
|
|
//==
|
|
|
|
//== Composite Rectangle Vertex Shader
|
|
precision mediump float;
|
|
attribute vec2 pos;
|
|
attribute vec2 texcoord;
|
|
varying vec2 v_texcoord;
|
|
uniform mat3 source;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
gl_Position = vec4 (pos.x, pos.y, 1.0, 1.0);
|
|
v_texcoord = (source * vec3 (texcoord, 1.0)).xy;
|
|
}
|
|
//==
|
|
|
|
//== Composite Rectangle Fragment Shader RGBA
|
|
precision mediump float;
|
|
uniform sampler2D texture;
|
|
uniform bool invert_y;
|
|
varying vec2 v_texcoord;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
vec2 texcoord;
|
|
|
|
texcoord = v_texcoord;
|
|
|
|
if (invert_y)
|
|
texcoord = vec2 (texcoord.x, 1.0 - texcoord.y);
|
|
|
|
gl_FragColor = texture2D (texture, texcoord);
|
|
}
|
|
//==
|
|
|
|
//== Composite Rectangle Fragment Shader RGBX
|
|
precision mediump float;
|
|
uniform sampler2D texture;
|
|
uniform mat3 source;
|
|
uniform bool invert_y;
|
|
varying vec2 v_texcoord;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
vec2 texcoord;
|
|
|
|
texcoord = v_texcoord;
|
|
|
|
if (invert_y)
|
|
texcoord = vec2 (texcoord.x, 1.0 - texcoord.y);
|
|
|
|
gl_FragColor = vec4 (texture2D (texture, texcoord).rgb, 1.0);
|
|
}
|
|
//==
|
|
|
|
//== Composite Rectangle Fragment Shader External
|
|
#extension GL_OES_EGL_image_external : require
|
|
|
|
precision mediump float;
|
|
uniform samplerExternalOES texture;
|
|
uniform mat3 source;
|
|
uniform bool invert_y;
|
|
varying vec2 v_texcoord;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
vec2 texcoord;
|
|
|
|
texcoord = v_texcoord;
|
|
|
|
if (invert_y)
|
|
texcoord = vec2 (texcoord.x, 1.0 - texcoord.y);
|
|
|
|
gl_FragColor = texture2D (texture, texcoord);
|
|
}
|
|
//==
|
|
|
|
//== Composite Rectangle Fragment Shader Single Pixel
|
|
#extension GL_OES_EGL_image_external : require
|
|
|
|
precision mediump float;
|
|
uniform vec4 source_color;
|
|
uniform mat3 source;
|
|
uniform bool invert_y;
|
|
varying vec2 v_texcoord;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
vec2 texcoord;
|
|
|
|
texcoord = v_texcoord;
|
|
|
|
if (invert_y)
|
|
texcoord = vec2 (texcoord.x, 1.0 - texcoord.y);
|
|
|
|
if (texcoord.x < 0.0 || texcoord.y < 0.0
|
|
|| texcoord.x > 1.0 || texcoord.y > 1.0)
|
|
gl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);
|
|
else
|
|
gl_FragColor = source_color;
|
|
}
|
|
//==
|