Use compositing example from MDN
Add setter/getter for globalCompositeOperation
Fix color lost issue
Set OpenGL blending functions after "prepare" method to support some composite operations. Since some compositing operations are not possible made with blending functions, so this feature is not fully supported. (implementations from Ejecta)