Tient, dans le genre "Mais que font-ils la dessous ?", en voici une autre:
J'étais complétement intrigué par un artefact de l'opengl ES 1 (en hard) des différentes implémentation que j'ai vu sur plusieurs device Androids:
C'est du OpenGL classique, un GlClear, du dessin, puis un swap pour afficher.
Dans ma fonction de dessin, je dessine un arrière plan opaque et ensuite quelques sprites avec des quads devant, sans ZBuffer, rien de compliqué.
Quand mon rendu "scrolle", j'ai droit à ce truc hallucinant: l'arrière plan bouge "plus vite" que les petits sprites qui sont devant, ceux-ci sont ralentis comme un effet de rémanence. Quand le scroll se termine, les sprites "rattrappent" l'arrière plan très vite.
Je comprenait pas comment le GL réussissait ce coup là; puis je me suis rendu compte que j'ai un GlDisable(GL_BLEND) pour le fond et un GlEnable(GL_BLEND) pour les sprites:
Ben, à tout les coup, l'implémentation GL doit "overlayeriser" mon rendu en session opaque et session transparentes, et dessiner les 2 parallélement ! ( ce serait pas étonnant car les interfaces android sont basé sur des SurfaceView qui fonctionnent comme des overlay, c'est d'ailleurs très mal foutu.)