I'm currently implementing an OpenGL ES 2.0 rendering back-end for Qt's QPainter vector graphics API. The problem is Anti-Aliasing.

Ideally we'd like to use pixel-coverage rather than multisampling, but this has been removed from the OpenGL ES 2.0 API. So we're tuck with 4x multisampling. For text rendering, this simply is not goot enough. 4-level multisampling vs 256-level pixel coverage. We have thought up several solutions, but none are ideal.

The first is rendering the shape 32 times into a 4x multisampled mask with slightly different offsets and 1/32 for alpha. The second is tesselating the path into trapazoids on CPU & doing coverage calculation in a shader, passing in the slope values of the trap as uniforms). This is probably going to be slow due to the CPU-bound path tesselation.

Does anyone know of a better solution?