Each time we render, we translate around n points of a circle of radius 0.5 - the center of which is the actual position. We render into an 8-bit framebuffer (or into a single channel on an RGBA8888 framebuffer) which has previously been cleared to zero.
Rendering to the mask would be done by setting an the alpha value of the fragment to 1/n and rendering n times with addative blending enabled. At larger font sizes, the glyphs are converted into vector paths and rendered using the same code path as every other complex vector path. This lets us use font-hinting - which gives much better quality than regular anti-aliasing. For small font sizes we generally use a software font engine to generate glyphs which are cached in a texture and blended when rendering. We need a solution for vector graphics in general.