#version 150 in vec2 inPosition; in vec2 inTexCoord; in vec4 inColor; in float inTextureIndex; uniform mat4 projectionTransform; uniform float tintStrength; out vec4 color; out vec3 tint; out vec2 texCoord; out float textureIndex; out float alpha; out float rgb; out float rawColor; void main() { texCoord = inTexCoord; color = inColor; float inverseTintStrength = 1.0 - tintStrength; vec3 redTint = vec3(1.0, inverseTintStrength, inverseTintStrength); vec3 greenTint = vec3(inverseTintStrength, 1.0, inverseTintStrength); vec3 blueTint = vec3(inverseTintStrength, inverseTintStrength, 1.0); rgb = 0.0; if (color.r > 0.0 && color.g > 0.0 && color.b > 0.0) { rgb = 1.0; color = vec4(0.0, 0.0, 0.0, 0.0); } else if (color.r + color.g + color.b > 0.0 && color.a > 0.0) { alpha = 0.0; color.a = 0.0; } else { alpha = 1.0; } tint = redTint * ceil(color.r) + greenTint * ceil(color.g) + blueTint * ceil(color.b) + vec3(ceil(color.a)); rawColor = 0.0; if (inTextureIndex == 0) { tint = vec3(0.0, 0.0, 0.0); rgb = 0.0; rawColor = 1.0; color = inColor; } textureIndex = inTextureIndex; gl_Position = projectionTransform * vec4(inPosition, 0.0, 1.0); }