#version 330 core out vec4 FragColor; in vec2 TexCoord; uniform sampler2D inputImageTexture; uniform sampler2D inputImageTexture2; uniform float mixturePercent; uniform int directionType; // Both clips stay put; a hard edge sweeps across the screen revealing the // incoming clip behind it. directionType convention same as transition_slide.fs. void main() { if (directionType == 2) { FragColor = (TexCoord.y > mixturePercent) ? texture(inputImageTexture, TexCoord) : texture(inputImageTexture2, TexCoord); } else if (directionType == 1) { FragColor = (TexCoord.x > mixturePercent) ? texture(inputImageTexture, TexCoord) : texture(inputImageTexture2, TexCoord); } else if (directionType == 0) { FragColor = (TexCoord.y < (1.0 - mixturePercent)) ? texture(inputImageTexture, TexCoord) : texture(inputImageTexture2, TexCoord); } else if (directionType == 3) { FragColor = (TexCoord.x < (1.0 - mixturePercent)) ? texture(inputImageTexture, TexCoord) : texture(inputImageTexture2, TexCoord); } else { vec4 a = texture(inputImageTexture, TexCoord); vec4 b = texture(inputImageTexture2, TexCoord); FragColor = mix(a, b, mixturePercent); } }