Platform/GFX/GLLayersOnMobile

Current Status

GL Layers on Mobile are not yet ready to be enabled by default. Some patches on bugzilla get us a little farther. Even so, there are many visual glitches, and GL errors at least on Android. We have yet to run the reftests, and assess performance.

Patches

I've put my patch queue there, look at the series file. XXX integrate this nicely into bugzilla and this wiki page XXX

Open bugs

-> heeen: please describe your issue with panning here

Design changes needed

Right now TextureImage is little more than a wrapper for a opengl texture id. You get the id if you want to render it or if you want to attach it as a framebuffer target and do the rendering outside. There are problems with this if TI is to abstract away that we have limited texture sizes on GLES. You don't have one texture id anymore, but many, each covering a different part of the image. Right now I added iterating functions to the TI interface, so all users of TI can at least iterate over all sub-textures and work with that. Also, some textures can not be attached as a plain framebuffer texture, but have to be attached as a render buffer object through their underlying egl image. These combinations quickly make every interaction with TI very complicated.

Instead we should have texture images make more clever and integrate common usepatterns into them.

They should get a render function which automatically draws all tiles in a given rect or region with a given scale.

They should have an abstract BlitFrom or BlitTo interface in which they can decide on the method on how to get the data from one image to the other: software blit for eglImages that can't be bound to any fbo through egl lock or map, attachement as a fbo texture or renderbuffer target.

Another issue is component alpha, where we have a texture for color and another for alpha, multiplied by tiling. currently each tile binds both the texture for color and aplha and renders this tile with a given program. Maybe we also should abstract this into a multi-channel texture class. --Heeen 05:52, 3 May 2011 (PDT)