al_destroy_shader man page
al_destroy_shader — Allegro 5 API
#include <allegro5/allegro.h> void al_destroy_shader(ALLEGRO_SHADER *shader)
Destroy a shader. Any bitmaps which currently use the shader will implicitly stop using the shader. In multi-threaded programs, be careful that no such bitmaps are being accessed by other threads at the time.
As a convenience, if the target bitmap of the calling thread is using the shader then the shader is implicitly unused before being destroyed.
This function does nothing if the shader argument is NULL.