add glprogram wrapper for shader