The drawing is now completely shader based, which makes away with all usage of the depracted matrix stack. This also allows us to do things like simple translations and texture coordinate translation directly instead of doing everything indirectly through matrices. Fixed vertex attributes ('vertexPointer()' etc) are also replaced with user defined attribute arrays.
23 lines
593 B
GLSL
23 lines
593 B
GLSL
/* Fragment shader dealing with transitions */
|
|
|
|
uniform sampler2D currentScene;
|
|
uniform sampler2D frozenScene;
|
|
uniform sampler2D transMap;
|
|
/* Normalized */
|
|
uniform float prog;
|
|
/* Vague [0, 512] normalized */
|
|
uniform float vague;
|
|
|
|
varying vec2 v_texCoord;
|
|
|
|
void main()
|
|
{
|
|
float transV = texture2D(transMap, v_texCoord).r;
|
|
float cTransV = clamp(transV, prog, prog+vague);
|
|
float alpha = (cTransV - prog) / vague;
|
|
|
|
vec4 newFrag = texture2D(currentScene, v_texCoord);
|
|
vec4 oldFrag = texture2D(frozenScene, v_texCoord);
|
|
|
|
gl_FragColor = mix(newFrag, oldFrag, alpha);
|
|
}
|