transitions: extended transition logic

General code and functionality improvements. Moved more code out of the
OpenGL backend for portability. Implemented audio transitions.
Implemented basic transition animation curve settings.
This commit is contained in:
itsmattkc
2020-07-16 00:36:21 +10:00
parent de74adeb5e
commit 662d66ad10
10 changed files with 224 additions and 52 deletions
+17 -2
View File
@@ -1,9 +1,14 @@
#version 150
#define LINEAR_CURVE 0
#define EXPONENTIAL_CURVE 1
#define LOGARITHMIC_CURVE 2
uniform sampler2D out_block_in;
uniform sampler2D in_block_in;
uniform bool out_block_in_enabled;
uniform bool in_block_in_enabled;
uniform int curve_in;
uniform float ove_tprog_all;
@@ -11,15 +16,25 @@ in vec2 ove_texcoord;
out vec4 fragColor;
float TransformCurve(float linear) {
if (curve_in == EXPONENTIAL_CURVE) {
return linear * linear;
} else if (curve_in == LOGARITHMIC_CURVE) {
return sqrt(linear);
} else {
return linear;
}
}
void main(void) {
vec4 composite = vec4(0.0);
if (out_block_in_enabled) {
composite += texture(out_block_in, ove_texcoord) * (1.0 - ove_tprog_all);
composite += texture(out_block_in, ove_texcoord) * TransformCurve(1.0 - ove_tprog_all);
}
if (in_block_in_enabled) {
composite += texture(in_block_in, ove_texcoord) * ove_tprog_all;
composite += texture(in_block_in, ove_texcoord) * TransformCurve(ove_tprog_all);
}
fragColor = composite;