Adding first APK build
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#version 100
|
||||
|
||||
// GLES port of engine/shaders/texture.frag - same logic, plus:
|
||||
// - an explicit precision declaration (required in GLES, invalid in
|
||||
// desktop GLSL).
|
||||
// - the discard at the end, replacing the fixed-function alpha test
|
||||
// (glAlphaFunc(GL_GEQUAL, 0.05f) on desktop - GLES has no fixed-function
|
||||
// pipeline at all, so this is done in the shader instead; see
|
||||
// android/engine-patches/03-android-opengl-es-render.patch's
|
||||
// init_opengl() change, which skips the desktop-only glAlphaFunc/
|
||||
// GL_ALPHA_TEST calls on Android).
|
||||
precision mediump float;
|
||||
|
||||
// The texture alpha value has two separate functions in this shader:
|
||||
// - Pixels with a zero alpha value are transparent.
|
||||
// - Pixels with non-zero alpha are opaque, and the alpha value
|
||||
// defines a minimum light level.
|
||||
|
||||
varying vec2 TexCoords;
|
||||
varying float Light;
|
||||
|
||||
uniform sampler2D tex;
|
||||
uniform bool nightsight;
|
||||
uniform bool mutant;
|
||||
|
||||
void main() {
|
||||
vec4 t = texture2D(tex, TexCoords);
|
||||
|
||||
// Alpha values > 0.5 are emissive
|
||||
float alpha = t.a > 0.5 ? 1.0 : t.a * 2.0;
|
||||
|
||||
if (nightsight) {
|
||||
// approximate the blue tint of palette colors 0xb0..0xbf
|
||||
float gray = 0.40 * t.r + 0.59 * t.g + 0.11 * t.b;
|
||||
float rg = 0.7 * gray;
|
||||
float b = 0.75 * gray + 0.1;
|
||||
gl_FragColor = vec4(rg, rg, b, (mutant ? 0.2 * alpha : alpha));
|
||||
} else {
|
||||
float emissive = t.a > 0.5 ? (t.a - 0.5) * 2.0 : 0.0;
|
||||
float light = max(Light * Light, emissive);
|
||||
if (mutant)
|
||||
gl_FragColor = vec4(0.5 * t.r * light, 0.5 * t.r * light, 0.5 * t.r * light, 0.2 * alpha);
|
||||
else
|
||||
gl_FragColor = vec4(t.r * light, t.g * light, t.b * light, alpha);
|
||||
}
|
||||
|
||||
if (gl_FragColor.a < 0.05)
|
||||
discard;
|
||||
}
|
||||
Reference in New Issue
Block a user