atagen

monolith

public
Star0
Watch0
14c8fedad3a32c11a254160a2f29996a4d0f802d
1
ssh://brewery@pls.lobotomise.me:33/atagen/monolith.git

Blame: crates/render-vk/shaders/effect.frag

96db497859dcatagen2026-10-16 11:27 UTC1
#version 450
96db497859dcatagen2026-10-16 11:27 UTC2
#extension GL_GOOGLE_include_directive : require
96db497859dcatagen2026-10-16 11:27 UTC3
#include "push.glsl"
96db497859dcatagen2026-10-16 11:27 UTC4
96db497859dcatagen2026-10-16 11:27 UTC5
layout(set = 0, binding = 0) uniform sampler2D tex;
96db497859dcatagen2026-10-16 11:27 UTC6
layout(location = 0) in vec2 v_uv;
96db497859dcatagen2026-10-16 11:27 UTC7
layout(location = 0) out vec4 out_color;
96db497859dcatagen2026-10-16 11:27 UTC8
96db497859dcatagen2026-10-16 11:27 UTC9
const int MOVE = 0;
96db497859dcatagen2026-10-16 11:27 UTC10
const int SPAWN = 1;
96db497859dcatagen2026-10-16 11:27 UTC11
const int CLOSE = 2;
96db497859dcatagen2026-10-16 11:27 UTC12
96db497859dcatagen2026-10-16 11:27 UTC13
// The transition hook. Custom shaders will replace this function.
96db497859dcatagen2026-10-16 11:27 UTC14
vec4 effect(vec4 color, vec2 uv, float progress, int kind) {
96db497859dcatagen2026-10-16 11:27 UTC15
    if (kind == SPAWN) {
96db497859dcatagen2026-10-16 11:27 UTC16
        return color * progress;
96db497859dcatagen2026-10-16 11:27 UTC17
    }
96db497859dcatagen2026-10-16 11:27 UTC18
    if (kind == CLOSE) {
96db497859dcatagen2026-10-16 11:27 UTC19
        return color * (1.0 - progress);
96db497859dcatagen2026-10-16 11:27 UTC20
    }
96db497859dcatagen2026-10-16 11:27 UTC21
    return color;
96db497859dcatagen2026-10-16 11:27 UTC22
}
96db497859dcatagen2026-10-16 11:27 UTC23
96db497859dcatagen2026-10-16 11:27 UTC24
void main() {
96db497859dcatagen2026-10-16 11:27 UTC25
    vec4 color = texture(tex, v_uv) * pc.color.a;
96db497859dcatagen2026-10-16 11:27 UTC26
    out_color = effect(color, v_uv, pc.effect.x, int(pc.effect.y));
96db497859dcatagen2026-10-16 11:27 UTC27
}