By using a set of simple scripts, you can easily create two types of shockwaves on any surfaces, sprites or on fullscreen, and customize its appearance & behavior without interact with shader uniforms by yourself.
How to use
1) First of all, you'll need to run the initialization script [ sw_init() ] once, and this can be done from anywhere of your codes.
2) Then, you decide a target to apply the shader to - using [ sw_start() ]. The target can be either a sprite, surface or just fullscreen.
draw_surface(surf_main, 0, 0);
Notice that you'll have to put a [ sw_end() ] at the end. For a more detailed explanation, see in the [ sw_start() ] script.
3) To this part, all the preparations are completed. Now you can just use [ sw_linear_create() ] or [ sw_sphere_create() ] at anytime you want, from anywhere of your codes, to create a shockwave!
See in the script for its detailed explanation.