Files
CodenameEngine/assets/shaders/engine/editorWaveforms.frag
T
2024-03-20 03:20:03 -07:00

44 lines
1.2 KiB
GLSL

#pragma header
#extension GL_EXT_gpu_shader4 : enable
// Used in charter by waveforms -lunar
uniform vec2 textureRes;
uniform sampler2D waveformTexture;
uniform ivec2 waveformSize;
float getAmplitude(vec2 pixel) {
float amplitudeRet = 0.; // look in charter for more how it works -lunar
float pixelID = floor(pixel.y/3.);
vec2 wavePixel = vec2(mod(pixelID, waveformSize.x), floor(pixelID/waveformSize.x));
vec4 waveData = texture2D(waveformTexture, wavePixel / waveformSize);
switch (int(round(mod(wavePixel.x, 3.)))) {
case 0: amplitudeRet = waveData.r; break;
case 1: amplitudeRet = waveData.g; break;
case 2: amplitudeRet = waveData.b; break;
}
return amplitudeRet;
}
void main()
{
vec2 pixel = openfl_TextureCoordv * textureRes;
float amplitude = getAmplitude(pixel);
float ampwidth = (1.-amplitude) * textureRes.x;
gl_FragColor = vec4(0.); // transprenty
if (pixel.x > (ampwidth/2.) && pixel.x < (textureRes.x-(ampwidth/2.))) {
vec3 waveColor = vec3(0.);
float outline = 2.;
if (pixel.x > ((ampwidth-outline)/2.) && pixel.x < (textureRes.x-((ampwidth-outline)/2.)))
waveColor = vec3(openfl_TextureCoordv.x);
gl_FragColor = vec4(waveColor, 1.);
}
}