aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/shadereffects/content/shaders/+hlsl/genie.vert
blob: 40876e79960afa68b47ee729cd1a90f77822c4b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
cbuffer ConstantBuffer : register(b0)
{
    float4x4 qt_Matrix;
    float qt_Opacity;
    float bend;
    float minimize;
    float side;
    float width;
    float height;
};

struct PSInput
{
    float4 position : SV_POSITION;
    float2 coord : TEXCOORD0;
};

PSInput main(float4 position : POSITION, float2 coord : TEXCOORD0)
{
    PSInput result;
    result.coord = coord;

    float4 pos = position;
    pos.y = lerp(position.y, height, minimize);
    float t = pos.y / height;
    t = (3.0 - 2.0 * t) * t * t;
    pos.x = lerp(position.x, side * width, t * bend);
    result.position = mul(qt_Matrix, pos);

    return result;
}