Skip to content

Instantly share code, notes, and snippets.

@jonahwilliams
Created November 17, 2022 02:25
Show Gist options
  • Save jonahwilliams/b66b9e7aa3ce72f018a9f464d9ae4352 to your computer and use it in GitHub Desktop.
Save jonahwilliams/b66b9e7aa3ce72f018a9f464d9ae4352 to your computer and use it in GitHub Desktop.
#version 100
precision mediump float;
precision highp int;
struct GradientInfo
{
highp vec2 center;
highp float radius;
highp float tile_mode;
highp float alpha;
highp float colors_length;
highp vec4 colors[16];
};
uniform GradientInfo gradient_info;
varying highp vec2 v_position;
void main()
{
highp float _151 = length(v_position - gradient_info.center) / gradient_info.radius;
highp vec4 param[16] = vec4[](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0));
param[0] = gradient_info.colors[0];
param[1] = gradient_info.colors[1];
param[2] = gradient_info.colors[2];
param[3] = gradient_info.colors[3];
param[4] = gradient_info.colors[4];
param[5] = gradient_info.colors[5];
param[6] = gradient_info.colors[6];
param[7] = gradient_info.colors[7];
param[8] = gradient_info.colors[8];
param[9] = gradient_info.colors[9];
param[10] = gradient_info.colors[10];
param[11] = gradient_info.colors[11];
param[12] = gradient_info.colors[12];
param[13] = gradient_info.colors[13];
param[14] = gradient_info.colors[14];
param[15] = gradient_info.colors[15];
highp vec4 _338 = vec4(0.0);
for (int spvDummy131 = 0; spvDummy131 < 1; spvDummy131++)
{
if (((_151 < 0.0) || (_151 > 1.0)) && (gradient_info.tile_mode == 3.0))
{
_338 = vec4(0.0);
break;
}
highp float _335 = 0.0;
if (gradient_info.tile_mode == 0.0)
{
_335 = clamp(_151, 0.0, 1.0);
}
else
{
highp float _336 = 0.0;
if (gradient_info.tile_mode == 1.0)
{
_336 = fract(_151);
}
else
{
highp float _337 = 0.0;
if (gradient_info.tile_mode == 2.0)
{
highp float _321 = _151 - 1.0;
_337 = abs(((-2.0) * floor(_321 * 0.5) + _321) - 1.0);
}
else
{
_337 = _151;
}
_336 = _337;
}
_335 = _336;
}
if (gradient_info.colors_length == 2.0)
{
_338 = mix(param[0], param[1], vec4(_335));
break;
}
highp float _280 = gradient_info.colors_length * _335;
highp float _282 = floor(_280);
_338 = mix(param[int(_282)], param[int(ceil(_280))], vec4(gradient_info.colors_length * _335 + (-_282)));
break;
}
gl_FragData[0] = _338;
gl_FragData[0] = vec4(gl_FragData[0].xyz * gl_FragData[0].w, gl_FragData[0].w) * gradient_info.alpha;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment