Thanks! It's doable, but you'd have to make the necessary changes to the shader yourself.
odditica
Creator of
Recent community posts
This is entirely dependent on the order in which your Draw GUI code gets executed, which gets complicated if there are several instances of objects w/ code in that particular event active at once, which is likely why your solution solves the problem - it makes sure the shader application code runs first.
If you have suggestions on what functionality you'd like to see supported by this, don't hesitate to type them here. I may implement custom sprite drawing functions, but the main reason I don't really want to update this is because of how imperfect the existing code is (but I can't change it for compatibility reasons, so...), plus I don't really use GM any more these days.
Hi! You should be able to get somewhat decent results by using the shader w/ standard sprite drawing functions (though you might have to use the provided asset API to set the shader resolution to match the sprite size), provided the sprite resides on its own texture page (you'll get bleed-in from atlas contents otherwise).
Hi, someone's made a filter implementation of this, maybe that's what you're looking for - https://github.com/nkrapivin/bktGlitchFilter.
The shader is only meant to be applied on surfaces, though you might have luck with sprites, assuming they're on their own separate texture page and provided there's enough empty space around them for the various texture shifting effects to be properly rendered. Also, the shader will work just fine with or without standard alpha blending, there aren't any special requirements in regards to that.
Hi. The shader is not really meant to be used to render individual sprites (not counting the obvious texture page issue, it would also require a custom draw_sprite function that would provide a large enough rasterised area for the "offset" effects not to be cut off). It's a full-scale post-processing effect. AFAIK, people usually get around this by using a big surface instead.
As for the resolution problem, by default the size of the application surface is used. If you need a different one, pass it via the arguments of the BktGlitch_activate function.