// Copyright (jacekpoz 2024). Licensed under the EUPL-1.2 or later. #version 450 layout(constant_id = 0) const int PTK_COMPONENT_TYPE_ELLIPSE = 0; layout(constant_id = 1) const int PTK_COMPONENT_TYPE_IMAGE = 0; layout(location = 0) in vec3 fragColor; layout(location = 1) flat in int shapeType; layout(location = 2) in vec2 uv; layout(location = 0) out vec4 outColor; layout(binding = 1) uniform sampler2D textureSampler; void main() { if (shapeType == PTK_COMPONENT_TYPE_ELLIPSE) { if (length(uv - vec2(0.5)) > 0.5) { discard; } outColor = vec4(fragColor, 1.0); } else if (shapeType == PTK_COMPONENT_TYPE_IMAGE) { outColor = texture(textureSampler, uv); } else { outColor = vec4(fragColor, 1.0); } }