what is the intended way to use this with room_restart()? I've been destroying the crt instance and then restarting the room. there doesn't seem to be a memory leak with this method. if you don't destroy the instance before restarting the shader seems to preserve the previous image before restarting.
Viewing post in Advanced CRT Shader for GameMaker comments
Copied from another comment: GameMaker has a tendency to resize the display buffers when switching (or restarting) rooms. Calling the included crt.resize_surfaces() method after each room change with a persistent crt object should do the trick, but please let me know if it doesn't, and I can take another look.