66 lines
1.9 KiB
HLSL
66 lines
1.9 KiB
HLSL
cbuffer cbuffer_time : register(b0, space0) {
|
|
uint4 time[1];
|
|
};
|
|
cbuffer cbuffer_uniforms : register(b1, space0) {
|
|
uint4 uniforms[2];
|
|
};
|
|
|
|
struct VertexOutput {
|
|
float4 Position;
|
|
float4 v_color;
|
|
};
|
|
struct tint_symbol_1 {
|
|
float4 position : TEXCOORD0;
|
|
float4 color : TEXCOORD1;
|
|
};
|
|
struct tint_symbol_2 {
|
|
float4 v_color : TEXCOORD0;
|
|
float4 Position : SV_Position;
|
|
};
|
|
|
|
VertexOutput vert_main_inner(float4 position, float4 color) {
|
|
float fade = ((asfloat(uniforms[1].x) + ((asfloat(time[0].x) * asfloat(uniforms[0].w)) / 10.0f)) % 1.0f);
|
|
if ((fade < 0.5f)) {
|
|
fade = (fade * 2.0f);
|
|
} else {
|
|
fade = ((1.0f - fade) * 2.0f);
|
|
}
|
|
float xpos = (position.x * asfloat(uniforms[0].x));
|
|
float ypos = (position.y * asfloat(uniforms[0].x));
|
|
float angle = ((3.141590118f * 2.0f) * fade);
|
|
float xrot = ((xpos * cos(angle)) - (ypos * sin(angle)));
|
|
float yrot = ((xpos * sin(angle)) + (ypos * cos(angle)));
|
|
xpos = (xrot + asfloat(uniforms[0].y));
|
|
ypos = (yrot + asfloat(uniforms[0].z));
|
|
VertexOutput output = (VertexOutput)0;
|
|
output.v_color = (float4(fade, (1.0f - fade), 0.0f, 1.0f) + color);
|
|
output.Position = float4(xpos, ypos, 0.0f, 1.0f);
|
|
return output;
|
|
}
|
|
|
|
tint_symbol_2 vert_main(tint_symbol_1 tint_symbol) {
|
|
const VertexOutput inner_result = vert_main_inner(tint_symbol.position, tint_symbol.color);
|
|
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
|
|
wrapper_result.Position = inner_result.Position;
|
|
wrapper_result.v_color = inner_result.v_color;
|
|
return wrapper_result;
|
|
}
|
|
|
|
struct tint_symbol_4 {
|
|
float4 v_color : TEXCOORD0;
|
|
};
|
|
struct tint_symbol_5 {
|
|
float4 value : SV_Target0;
|
|
};
|
|
|
|
float4 frag_main_inner(float4 v_color) {
|
|
return v_color;
|
|
}
|
|
|
|
tint_symbol_5 frag_main(tint_symbol_4 tint_symbol_3) {
|
|
const float4 inner_result_1 = frag_main_inner(tint_symbol_3.v_color);
|
|
tint_symbol_5 wrapper_result_1 = (tint_symbol_5)0;
|
|
wrapper_result_1.value = inner_result_1;
|
|
return wrapper_result_1;
|
|
}
|