aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/shadereffects/content/shaders/+hlsl/genie.vert
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quick/shadereffects/content/shaders/+hlsl/genie.vert')
-rw-r--r--examples/quick/shadereffects/content/shaders/+hlsl/genie.vert31
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/quick/shadereffects/content/shaders/+hlsl/genie.vert b/examples/quick/shadereffects/content/shaders/+hlsl/genie.vert
new file mode 100644
index 0000000000..40876e7996
--- /dev/null
+++ b/examples/quick/shadereffects/content/shaders/+hlsl/genie.vert
@@ -0,0 +1,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;
+}