aboutsummaryrefslogtreecommitdiff
path: root/src/shader/display_fragment.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader/display_fragment.glsl')
-rw-r--r--src/shader/display_fragment.glsl25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/shader/display_fragment.glsl b/src/shader/display_fragment.glsl
index 03986a0..b731ebe 100644
--- a/src/shader/display_fragment.glsl
+++ b/src/shader/display_fragment.glsl
@@ -4,27 +4,12 @@ static const std::string DISPLAY_FRAGMENT_SHADER_CODE = R"(
out vec4 FragColor;
in vec2 TexCoords;
-uniform sampler2D screen_texture_0;
-uniform sampler2D screen_texture_1;
-uniform sampler2D screen_texture_2;
-uniform sampler2D screen_texture_3;
-uniform sampler2D screen_texture_4;
-uniform sampler2D screen_texture_5;
-uniform sampler2D screen_texture_6;
-uniform sampler2D screen_texture_7;
-uniform sampler2D screen_texture_8;
-uniform sampler2D screen_texture_9;
+uniform sampler2D screen_textures[64];
+uniform int screen_textures_size;
void main() {
- FragColor = texture(screen_texture_0, TexCoords)
- + 0.9 * texture(screen_texture_1, TexCoords)
- + 0.8 * texture(screen_texture_2, TexCoords)
- + 0.7 * texture(screen_texture_3, TexCoords)
- + 0.6 * texture(screen_texture_4, TexCoords)
- + 0.5 * texture(screen_texture_5, TexCoords)
- + 0.4 * texture(screen_texture_6, TexCoords)
- + 0.3 * texture(screen_texture_7, TexCoords)
- + 0.2 * texture(screen_texture_8, TexCoords)
- + 0.1 * texture(screen_texture_9, TexCoords);
+ for ( int i = 0; i < screen_textures_size; ++i ) {
+ FragColor += (1.0 - i*1.0/screen_textures_size) * texture(screen_textures[i], TexCoords);
+ }
}
)";