File: ex_shader_palette_pixel.glsl

package info (click to toggle)
allegro5 2%3A5.2.10.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,820 kB
  • sloc: ansic: 109,795; cpp: 12,976; objc: 4,592; java: 2,845; python: 2,595; javascript: 1,238; sh: 1,008; makefile: 40; xml: 27; pascal: 24
file content (23 lines) | stat: -rw-r--r-- 646 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifdef GL_ES
precision mediump float;
#endif

uniform sampler2D al_tex;
uniform sampler2D pal_tex;
uniform float pal_set_1;
uniform float pal_set_2;
uniform float pal_interp;
varying vec4 varying_color;
varying vec2 varying_texcoord;

void main()
{
  float index = texture2D(al_tex, varying_texcoord).r;
  if (index == 0.0) discard;

  // Although the palette texture was defined to be 7 pixels tall,
  // allegro forces textures to be at least 16.
  vec4 col_1 = texture2D(pal_tex, vec2(index, pal_set_1 / 15.0));
  vec4 col_2 = texture2D(pal_tex, vec2(index, pal_set_2 / 15.0));
  gl_FragColor = vec4(mix(col_1, col_2, pal_interp).rgb, 1.0);
}