diff options
author | Ayose <ayosec@gmail.com> | 2021-03-10 20:21:36 +0000 |
---|---|---|
committer | betaboon <betaboon@0x80.ninja> | 2021-08-17 15:44:40 +0200 |
commit | 0fd3793a963015e8f91021e35dbb2169d15c3211 (patch) | |
tree | a83c1f53a123f84376a58cf2a5114ad581092e0a /alacritty/res/graphics.f.glsl | |
parent | c24d7dfd0d2d8849f0398d7cb1a65d6562ee7a0d (diff) | |
download | r-alacritty-0fd3793a963015e8f91021e35dbb2169d15c3211.tar.gz r-alacritty-0fd3793a963015e8f91021e35dbb2169d15c3211.tar.bz2 r-alacritty-0fd3793a963015e8f91021e35dbb2169d15c3211.zip |
Add Sixel support
Fixes #910
Diffstat (limited to 'alacritty/res/graphics.f.glsl')
-rw-r--r-- | alacritty/res/graphics.f.glsl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/alacritty/res/graphics.f.glsl b/alacritty/res/graphics.f.glsl new file mode 100644 index 00000000..28da2a68 --- /dev/null +++ b/alacritty/res/graphics.f.glsl @@ -0,0 +1,40 @@ +#version 330 core + +// Index in the textures[] uniform. +flat in int texId; + +// Texture coordinates. +in vec2 texCoords; + +// Array with graphics data. +uniform sampler2D textures[16]; + +// Computed color. +out vec4 color; + +void main() { + // The expression `textures[texId]` can't be used in OpenGL 3.3. + // If we try to use it, the compiler throws this error: + // + // sampler arrays indexed with non-constant expressions + // are forbidden in GLSL 1.30 and later + // + // To overcome this limitation we use a switch for every valid + // value of `texId`. + // + // The first expression (`textures[texId]`) works with OpenGL 4.0 + // or later (using `#version 400 core`). If Alacritty drops support + // for OpenGL 3.3, this switch block can be replaced with it. + + +#define TEX(N) case N: color = texture(textures[N], texCoords); break; + + switch(texId) { + TEX( 0) TEX( 1) TEX( 2) TEX( 3) + TEX( 4) TEX( 5) TEX( 6) TEX( 7) + TEX( 8) TEX( 9) TEX(10) TEX(11) + TEX(12) TEX(13) TEX(14) TEX(15) + default: + discard; + } +} |