Hi Bernhard,
I use both 8-bit and 16-bit gray images (up to 4K x 5K size), which need processing with lookup tables, (and as they are tiled, de-tiling). I currently do this in a custom imagining chain compiled with emscripten, combined with BitmapData in StageXL, with the standard 2D context. Going to WebGL in StageXL, without re-coding the emscripten piece to WebGL would gain nothing in performance.
I did a prototype WebGL imaging chain in three.js many years ago. It worked, but I noticed a few things that were not optimum:
* I need precision of highp in all shaders, and WebGL doesn't guarantee that. WebGL2 does
* There was no high-bit gray texture format in WebGL, but there is in WebGL2 (making shaders easier and faster. It isn't texture-filterable, but that is fine for the start of the chain).
* Uniform Buffer Objects seem like a performance win.
* Some limitations on non-power-of-2 textures (though I may not hit those).
So, I don't need any extra built-in functionality in StageXL. If I need anything, I'll add it myself. I just need StageXL to support the WebGL2 context -- and if it can gain some performance benefits, that's good too.
It seems like you could just have an alternate engine for WebGL2, and have an option for choosing which one prefers. For myself, I would probably need to know if WebGL2 was supported before I even ran any StageXL code, as I would need to swap in a different imaging chain entirely for Context2D.
I can do this myself, I just thought it would be best to synchronize with your implementation, if you were going to support WebGL2. There have been a number of times that I've made changes to my version of StageXL, only to find that you made similar changes, but in a different way later.
Thanks!