Among our tests with OpenFL we are porting a framework that allows us a quick workflow based on assets swf created in the Animate CC environment. Among other things it allows screen transitions (specified in the Animate library with their class names).
We have a very simple test with two screens (1280x720). In both there is a button to move to the other by a slide from right to left, both are moving at the same time. What we do internally is to convert both 1280x720 screens to bitmap at runtime (bitmapdata.draw), we hide the original movieclips (with some text and “vectors”) of the animate library, and then we move both “bitmap screens” to obtain the smoothest possible sliding movement. This technique works perfect in Adobe AIR applications (desktop & Android) and also in any OpenFL output that is not html5 (windows, android app, etc, in all those other versions it’s all super smooth)
However, if we compile the OpenFL project in html5 with WebGL (by default), in some “low” powered devices (motog5 as an example), we have realized that this mode is slower than if we compile it with <window hardware = "false “if =” html5 "/>
The movement of the two screen bitmaps (only 1280x720 each) is rough (stutters…). It does not do it at 60fps, in fact we have checked it and the fps oscillate (go down) much more in the webGL version every time there is a screen transition …
Keep in mind that on that mobile, any other version is perfect. Totally smooth, so it’s not a matter of hardware. And as far as I know, it perfectly supports webGL.
Is it possible that webGL can be slower than canvas in some situations? Is there any reason for something so simple can seem to stutter in webGL and not in “normal” canvas?
And another question: Has anyone had problems with flickering in moving canvas elements on some devices? (including artifacts on the screen when you are entering the web). It’s happening to us in Chrome Android (from 63 or 64 onwards), just in a somewhat old low-performance tablet with a Mali 450 gpu (I do not know if this can give any clue).
We have not yet found a solution and we have seen that it also happens in other frameworks based on html5 canvas …