hotline-rs 0.3.2

A high-performance, hot-reload graphics engine.
Documentation
struct vs_input {
    float3 position : POSITION; 
    float4 colour : COLOR;
};

struct ps_input {
    float4 position : SV_POSITION;
    float4 uv : TEXCOORD0;
};

Texture2D texture0 : register(t0);
Texture2D texture1 : register(t1);
Texture2D texture2 : register(t2);
Texture2D texture3 : register(t3);

SamplerState sampler0 : register(s0);

ps_input vs_main(vs_input input) {
    ps_input output;
    output.position = float4(input.position, 1.0);
    output.uv = input.colour;
    return output;
}

float4 ps_main(ps_input input) : SV_Target {
    float4 final = float4(0.0, 0.0, 0.0, 1.0);
    float2 uv = input.uv.xy * float2(1.0, -1.0);

    float4 r0 = texture0.Sample(sampler0, uv * 2.0);
    float4 r1 = texture1.Sample(sampler0, uv * 2.0);
    float4 r2 = texture2.Sample(sampler0, uv * 2.0);
    float4 r3 = texture3.Sample(sampler0, uv * 2.0);

    if(input.uv.x < 0.5 && input.uv.y < 0.5)
    {
        final = r0 * r0.a;
    }
    else if(input.uv.x < 0.5 && input.uv.y > 0.5)
    {
        final = r1 * r1.a;
    }
    else if(input.uv.x > 0.5 && input.uv.y > 0.5)
    {
        final = r2 * r2.a;
    }
    else if(input.uv.x > 0.5 && input.uv.y < 0.5)
    {
        final = r3 * r3.a;
    }

    return final;
}