Binds a shader program.
If there was a different program already bound it will force a pipeline flush first.
If the same program given to this method is already set as the current program, no change
will take place and this method will return
The program that needs to be bound.
true if the given program was bound, otherwise