diff --git a/assets/shaders/engine/editorWaveforms.frag b/assets/shaders/engine/editorWaveforms.frag index b90ea5ea..530f78df 100644 --- a/assets/shaders/engine/editorWaveforms.frag +++ b/assets/shaders/engine/editorWaveforms.frag @@ -22,7 +22,8 @@ float getAmplitude(vec2 pixel) { float pixelID = floor((pixel.y+pixelOffset)/3.0); // TODO: INVESTIGATE THE 1.+ AND WHY IT WORKS (SRSLY I GOT NO CLUE) -lunar - vec2 wavePixel = vec2(mod(pixelID, waveformSize.x), 1.0+floor(pixelID/waveformSize.x)); + // Somehow using 0.999 instead of 1.0 fixes weird glitches on some systems -Ne_Eo + vec2 wavePixel = vec2(mod(pixelID, waveformSize.x), 0.999+floor(pixelID/waveformSize.x)); vec4 waveData = texture2D(waveformTexture, wavePixel / waveformSize); int id = int(mod(wavePixel.x, 3.0)); diff --git a/source/funkin/editors/charter/CharterWaveformHandler.hx b/source/funkin/editors/charter/CharterWaveformHandler.hx index f6c5ba28..573ed0b4 100644 --- a/source/funkin/editors/charter/CharterWaveformHandler.hx +++ b/source/funkin/editors/charter/CharterWaveformHandler.hx @@ -5,6 +5,7 @@ import flixel.util.FlxColor; import funkin.backend.shaders.CustomShader; import funkin.backend.system.Conductor; import openfl.display.BitmapData; +import openfl.display.ShaderInput; class CharterWaveformHandler extends FlxBasic { public var ampsNeeded:Float = 0; @@ -69,7 +70,9 @@ class CharterWaveformHandler extends FlxBasic { var waveShader:CustomShader = new CustomShader("engine/editorWaveforms"); waveShader.data.waveformSize.value = [waveData.width, waveData.height]; - waveShader.data.waveformTexture.input = waveData; + var waveformInput:ShaderInput = cast waveShader.data.waveformTexture; + waveformInput.input = waveData; + waveformInput.filter = NEAREST; // force it to be nearest, incase someone changed it waveShader.data.textureRes.value = [0, 0]; waveShader.data.pixelOffset.value = [0]; waveShader.data.lowDetail.value = [Options.charterLowDetailWaveforms];