All checks were successful
Run ReCI Build Test / Explore-Gitea-Actions (push) Successful in 2m59s
55 lines
1.4 KiB
GLSL
55 lines
1.4 KiB
GLSL
#version 120
|
|
|
|
// The color manually set with glColor4f, glColor4ubv etc.
|
|
varying vec4 v_color;
|
|
|
|
// The number of texture units that have been set.
|
|
uniform int TEXTURE_UNIT_SET_COUNT;
|
|
|
|
// True if we should perform the alpha mask operation.
|
|
uniform bool ALPHA_MASK;
|
|
|
|
// True if we're rendering text.
|
|
uniform bool TEXT;
|
|
|
|
// Texture unit 0 - 7 (8 - 31 will come later).
|
|
uniform sampler2D GL_TEXTURE0;
|
|
uniform sampler2D GL_TEXTURE1;
|
|
uniform sampler2D GL_TEXTURE2;
|
|
uniform sampler2D GL_TEXTURE3;
|
|
uniform sampler2D GL_TEXTURE4;
|
|
uniform sampler2D GL_TEXTURE5;
|
|
uniform sampler2D GL_TEXTURE6;
|
|
uniform sampler2D GL_TEXTURE7;
|
|
|
|
// Texture coordinates.
|
|
varying vec2 GL_TEXTURE0_COORD;
|
|
varying vec2 GL_TEXTURE1_COORD;
|
|
varying vec2 GL_TEXTURE2_COORD;
|
|
varying vec2 GL_TEXTURE3_COORD;
|
|
varying vec2 GL_TEXTURE4_COORD;
|
|
varying vec2 GL_TEXTURE5_COORD;
|
|
varying vec2 GL_TEXTURE6_COORD;
|
|
varying vec2 GL_TEXTURE7_COORD;
|
|
|
|
void DrawColorOnly() {
|
|
gl_FragColor = v_color;
|
|
}
|
|
|
|
// TODO fix positive alpha mask.
|
|
void SampleTextureUnits() {
|
|
if (TEXT)
|
|
gl_FragColor = vec4(v_color.rgb, v_color.a * texture2D(GL_TEXTURE0, GL_TEXTURE0_COORD).a);
|
|
|
|
// Draw sprite, partial sprite, mirror sprite, render target, partial render target.
|
|
else if (TEXTURE_UNIT_SET_COUNT == 1)
|
|
gl_FragColor = v_color * texture2D(GL_TEXTURE0, GL_TEXTURE0_COORD);
|
|
}
|
|
|
|
void main() {
|
|
if (TEXTURE_UNIT_SET_COUNT == 0) {
|
|
DrawColorOnly(); return;
|
|
}
|
|
|
|
SampleTextureUnits();
|
|
} |