fixed shader_hooks to use canvas