#version 440 #if defined(TABLE) layout(location = 0) in vec2 tt; #endif #if defined(SPRITE) layout(location = 1) in vec4 fTexS; #elif defined(DEFORM) layout(location = 1) in vec2 fTex; #endif #if defined(COLOR) layout(location = 2) in vec4 fColor; #else layout(location = 2) in float fFade; #endif layout(location = 0) out vec4 fragColor; layout(std140, binding = 0) uniform buf { mat4 matrix; float opacity; float entry; float timestamp; float sizetable[64]; float opacitytable[64]; } ubuf; layout(binding = 1) uniform sampler2D _qt_texture; #if defined(TABLE) || defined(SPRITE) layout(binding = 2) uniform sampler2D colortable; #endif void main() { #if defined(SPRITE) fragColor = mix(texture(_qt_texture, fTexS.xy), texture(_qt_texture, fTexS.zw), tt.y) * fColor * texture(colortable, tt) * ubuf.opacity; #elif defined(TABLE) fragColor = texture(_qt_texture, fTex) * fColor * texture(colortable, tt) * ubuf.opacity; #elif defined(DEFORM) fragColor = texture(_qt_texture, fTex) * fColor * ubuf.opacity; #elif defined(COLOR) fragColor = texture(_qt_texture, gl_PointCoord) * fColor * ubuf.opacity; #else fragColor = texture(_qt_texture, gl_PointCoord) * fFade * ubuf.opacity; #endif }