Use ARGB_PIXEL not ARGB_STORE for glTexSubImage2D.  Put some code in got pre-multiplied alpha on update (not fully tested)