Update after rethinking my approach:
In the end, it made more sense for me to just maintain the Canvas myself, as I’m not planning to do anything further with the Image
:
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, canvas.width, canvas.height,
0, gl.RGBA, gl.UNSIGNED_BYTE, canvas);
The issue I was having with transparency involved Lime not re-premultiplying alpha when the Canvas was updated. That was just a matter of using:
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
So I’m all set for now!
Though I still think my first comment at the top of my last post may still be an even better way forward in the future?