Files
JGL/assets/shader_programs/test_fragment.glsl
Redacted 02370c6bfa
All checks were successful
Run ReCI Build Test / Explore-Gitea-Actions (push) Successful in 2m59s
work on the default shader.
2025-04-17 13:33:08 -04:00

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();
}