For example, you state you had problems with the 32-bit version but it would help to know the OS (Windows, MacOS, Linux) and widgetset you used.
With the 32-bit I meant
32-bit fonttexture iow turning off
TEX8BIT_NOT32. But the behaviour is the same on windows win32 and win64 bit. It just seems to plot all pixels that are not 0 in the sdf.
2) My original code did do the font scaling in the shader instead of when generating the outlines. That is a valid approach. However, this required multiple draw calls (with uniforms changed for each call) when you were displaying different font sizes. The approach I ended up with allows all the text to be created with a single draw call, which is nice when you have static text in an opengl scene.
I also have only draw call, so I have two scaling mechanism. One "relative" size per character so that each string can have its own size, and one zoom factor that sets the absolute size (usually linear with 1/zoom of the rest of the scene).
This way, the texts are attached to the same position of the rest of the scene (same ModelViewProjectionMatrix) when zooming, but the size can change. To achieve that, I store the distance to the topleft corner of the first character of each string in each character.
To avoid bloating the per character record, I only add what I need and calculate the rest in the geometry shader, and I don't support rotating (since that would require a length and an angle, and I rarely use it).
The geometry shader also implements a layer system, so you can reduce detail without reuploading. (in case there are too many primitives if you are zoomed out and it becomes a soup).
I got supersampling working today, and it looks nice (remarkable improvement for small texts), but I still have a small problem in my coordinate systems (x,y too large). Something for tomorrow.