optimize the opengl framework
add shader class